Android高德地图实现后台定位
来源:互联网 发布:限电插座淘宝 编辑:程序博客网 时间:2024/04/28 18:41
在项目当中,很多时候都会用到地图,百度地图是我们经常用的,下面我给大家用高德地图实现后台定位,这样可以实现轨迹的路线:
public class LocationService extends Service { //声明mLocationOption对象,定位参数 public AMapLocationClientOption mLocationOption = new AMapLocationClientOption(); //标识,用于判断是否只显示一次定位信息和用户重新定位 private boolean isFirstLoc = true; //声明AMapLocationClient类对象 public AMapLocationClient mLocationClient = null; private AMapLocation amapLocation; private Timer mTimer = null; private TimerTask mTimerTask = null; private boolean isStop = false; public int intTimer=300; public String strIsLogin="1"; @Override public void onCreate() { super.onCreate(); init(); } private void init() { //初始化定位 mLocationClient = new AMapLocationClient(this); //设置定位回调监听 mLocationClient.setLocationListener(mLocationListener); //设置精度模式 mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving); //给定位客户端对象设置定位参数 mLocationClient.setLocationOption(mLocationOption); mLocationOption.setInterval(1000); //设置是否返回地址信息(默认返回地址信息) mLocationOption.setNeedAddress(true); //关闭缓存模式 mLocationOption.setLocationCacheEnable(false);// //启动定位 mLocationClient.startLocation(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { // 触发定时器 if (!isStop) { startTimer(); } return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { super.onDestroy(); if (mLocationClient!=null) { mLocationClient.stopLocation(); } super.onDestroy(); // 停止定时器 if (isStop) { stopTimer(); } } private void startTimer() { isStop = true;//定时器启动后,修改标识,关闭定时器的开关 if (mTimer == null) { mTimer = new Timer(); } if (mTimerTask == null) { mTimerTask = new TimerTask() { @Override public void run() { do { try { if (strIsLogin=="1"){ mLocationClient.startLocation(); } Thread.sleep(1000*intTimer);//3秒后再次执行 } catch (InterruptedException e) { // TODO Auto-generated catch block return; } } while (isStop); } }; } if (mTimer != null && mTimerTask != null) { mTimer.schedule(mTimerTask, 0);//执行定时器中的任务 } } /** * 停止定时器,初始化定时器开关 */ private void stopTimer() { if (mTimer != null) { mTimer.cancel(); mTimer = null; } if (mTimerTask != null) { mTimerTask.cancel(); mTimerTask = null; } isStop = false;//重新打开定时器开关 } @Nullable @Override public IBinder onBind(Intent intent) { return null; } //声明定位回调监听器 public AMapLocationListener mLocationListener = new AMapLocationListener() { @TargetApi(Build.VERSION_CODES.N) @Override public void onLocationChanged(AMapLocation aMapLocation) { if (aMapLocation != null) { if (aMapLocation.getErrorCode() == 0) { //可在其中解析amapLocation获取相应内容。 aMapLocation.getLocationType();//获取当前定位结果来源,如网络定位结果,详见定位类型表 aMapLocation.getLatitude();//获取纬度 aMapLocation.getLongitude();//获取经度 aMapLocation.getAccuracy();//获取精度信息 aMapLocation.getAddress();//地址,如果option中设置isNeedAddress为false,则没有此结果,网络定位结果中会有地址信息,GPS定位不返回地址信息。 aMapLocation.getCountry();//国家信息 aMapLocation.getProvince();//省信息 aMapLocation.getCity();//城市信息 aMapLocation.getDistrict();//城区信息 aMapLocation.getStreet();//街道信息 aMapLocation.getStreetNum();//街道门牌号信息 aMapLocation.getCityCode();//城市编码 aMapLocation.getAdCode();//地区编码 aMapLocation.getAoiName();//获取当前定位点的AOI信息 //这个是请求数据的接口: double lat = aMapLocation.getLatitude(); double lng = aMapLocation.getLongitude(); String gps_url = MyURL.loginUrl+String.format("gps.ashx?userid=%s&x=%s&y=%s&position=%s&company=%s&address=%s&state=%s&remark=%s", MyURL.no,lng,lat,"5",MyURL.company, aMapLocation.getStreet(),"0","0"); String m = MyHttpUtils.getTextFromUrl(gps_url); } // 应该停止客户端再发送定位请求 if (mLocationClient.isStarted()) { mLocationClient.onDestroy(); }在这里我写了一个定时器,通过3秒钟进行一次经纬度的回传,
有不懂得可以直接在评论里写出来 我会给大家进行解答
1 0
- Android高德地图实现后台定位
- 高德地图实战:后台持续定位实现
- Android 使用高德地图简单实现地图定位
- iOS 高德地图 后台定位
- 实现高德地图定位
- 高德地图实现定位
- Android 高德地图定位
- android高德地图定位
- 高德地图 android api 实现自动定位
- Android开发实现高德地图定位详解
- Android开发实现高德地图定位详解
- Android 高德地图定位功能的实现步骤
- android高德地图定位功能的实现
- android studio实现高德地图api定位
- Android实现高德地图定位详细流程
- Android开发之高德地图实现定位
- Android简单实现高德地图显示及定位
- Android开发之高德地图实现定位
- Unity C#调用java
- 事件处理
- 安卓中上传头像的应用
- 模板模式
- server{}块解析
- Android高德地图实现后台定位
- 面向对象(四)——继承多态
- 首尾相连的一维数组中连续子数组最大和
- CGAffineTransform 使用
- DHCP
- java异常处理
- 大连失业金领取办法
- bdqn S1 考试易错题
- ICA:独立成分分析