最近做一个小项目,遇到需要计算当前位置到目标位置的距离,由于项目很小,没有接入百度地图,高德地图,所以要自己写一段代码,现记录如下:
package com.xxxx.xxxx.xxxx.util; import android.content.Context; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.util.Log; import java.math.BigDecimal; public class LocationUtil { private static final String TAG = "LocationUtil"; private static LocationListener locationListener = new LocationListener(){ @Override public void onLocationChanged(Location location) { Log.d(TAG, "坐标位置变动了"); if (location != null) { Log.e("Map", "Location changed : Lat: " + location.getLatitude() + " Lng: " + location.getLongitude()); } } @Override public void onStatusChanged(String s, int i, Bundle bundle) { Log.d(TAG, "Provider的状态切换了"); } @Override public void onProviderEnabled(String s) { Log.d(TAG, "Provider启动了"); } @Override public void onProviderDisabled(String s) { Log.d(TAG, "Provider关闭了"); } }; public static String getDistanceWithkilometre(Location currentLoaction, Location huisuoLocation){ if(currentLoaction!=null && huisuoLocation!=null){ float distance = huisuoLocation.distanceTo(currentLoaction); float kmdistance = distance / 1000; BigDecimal b = new BigDecimal(kmdistance); kmdistance = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue(); return kmdistance + "公里"; }else{ return "无法定位"; } } public static Location getCurrentLocation(Context context){ Location location = null; LocationManager locationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE); if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){ location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); if(location == null){ location = getCurrentLocationWithWifi(locationManager); } }else{ location = getCurrentLocationWithWifi(locationManager); } return location; } private static Location getCurrentLocationWithWifi(LocationManager locationManager){ locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000, 0,locationListener); return locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); }
getCurrentLocation 用来获取当前的坐标,先用GPS,获取不到的话,用wifi.
getDistanceWithkilometre 用来获取与目标坐标之间的公里数。
相关推荐
学习android手机定位开发的基本内容
Android开发之百度地图定位打卡
使用delphi xe7编译,里面的百度地图是以url调用方式
Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到...
Android支持地理定位服务的API。该地理定位服务可以用来获取当前设备的地理位置,应用程序可以定时请求更新设备当前的地理位置信息。比如应用程序可以借助一个Intent接收器来实现如下功能: 以经纬度和半径规划一个...
在网上搜了 许多关于android开发百度地图定位方面的东西,发现不是过时就是用不了,很伤感啊,现在找到了一片简单的定位,希望对需要的人有所帮助
安卓开发实现高德地图定位功能,需要修改AndroidManifest.xml文件中key为您自己的key,UI界面显示图标可以自己更换,具体见源码,文件参考高德开发官方平台
高德 开发 Android 定位SDK 开发指南 获取位置 获取定位数据
《Android应用开发范例精解》通过通俗易懂的开发实例及项目案例,详细介绍了Android应用开发的知识体系及实用开发...第3篇为项目案例实战篇,详细介绍了Android地图定位搜索应用及乐乐网上购物商城两个案例的实现过程。
调用百度地图定位同时获取经纬度,应该要更改成自己的百度地图key值,还有手机别忘了开权限,打开GPS
在6.0之后的权限申请可以使用类库进行,但是依然使用eclipse开发的工作者,在申请权限的时候可以使用上述的代码
Android studio 请使用真机调试,测试地点,最好在室外,基站定位好像不会实时定位,GPS可以2秒刷新一次,前提是可以接收到GPS信号
第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 ...
Android开发之原生定位的方法(GPS,网络定位)更多查看我的博客:https://blog.csdn.net/xiayiye5/article/details/83686286
基于安卓百度地图的定位开发
Android开发安卓大作业基于手机定位的Android考勤系统源码+项目文档 本项目以师生的签到考勤需求为背景,基于Android平台开发服务师生的电子签到系统。该系统基于Android平台的地址服务功能,采用地址聚类算法来实现...
本篇文章主要介绍了Android中高德地图实现定位的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
google地图SKD使用和google定位SDK使用
这个是基于百度地图api开发的定位软件,适合刚开始接触安卓的朋友看