最近做一个小项目,遇到需要计算当前位置到目标位置的距离,由于项目很小,没有接入百度地图,高德地图,所以要自己写一段代码,现记录如下:
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应用时,有时我们需要实现GPS定位功能,Delphi XE7作为一个强大的跨平台开发工具,可以帮助我们轻松实现这一需求。本示例是关于如何在Delphi XE7环境下,利用百度地图API来实现Android设备上的GPS定位...
在Android开发中,集成百度地图并实现定位打卡功能是一项常见的需求。这涉及到多个技术点,包括Android SDK的使用、百度地图API的集成、位置服务的开启与管理、地图的显示与交互、以及自定义打卡逻辑等。下面我们将...
本开发指南将深入探讨如何使用高德Android定位SDK来获取定位数据,包括初始化设置、请求定位、处理定位结果以及优化定位体验。 首先,我们要了解高德Android定位SDK的基础。它是一个集成在Android应用中的库,提供...
这个压缩包“安卓Android源码——androidGPS及WIFI基站定位坐标源码.zip”提供了一个实践示例,展示了如何在Android平台上实现基于GPS和WIFI的定位功能。下面将详细讲解这两个定位技术及其在源码中的应用。 1. GPS...
**安卓开发**涉及到的知识点广泛,包括Java或Kotlin编程语言、安卓SDK、Android Studio集成开发环境等。在创建一个安卓应用时,我们需要定义Activity(应用界面)、布局文件(XML描述界面元素)、服务(后台运行任务...
在Android开发中,GPS(全球定位系统)和基站定位是两种常见的定位技术,它们用于获取设备的地理位置信息。本文将详细讲解这两种定位方式,并结合Android Studio的开发实践,阐述如何在实际应用中实现它们。 首先,...
Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到...
在Android开发中,集成百度地图并实现定位功能是一项常见的任务,尤其对于开发地理位置相关的应用来说至关重要。本篇文章将深入探讨如何在Android应用中利用百度地图API进行定位。 首先,我们需要在百度地图开放...
以下是关于Android定位权限申请的详细知识: 1. **运行时权限**: - 在Android 6.0及以上版本,用户可以在应用运行时决定是否授予某些敏感权限,如访问位置、联系人、相机等,而不是在安装时全部授权。 - 这种...
3. **多功能地图软件设计**:文献[3]阐述了基于安卓平台的多功能地图软件的开发,该软件集成了定位、导航等多种功能,揭示了安卓系统在地理信息处理上的灵活性。 4. **自动化测试环境研究**:文献[4]探讨了基于安卓...
Android支持地理定位服务的API。该地理定位服务可以用来获取当前设备的地理位置,应用程序可以定时请求更新设备当前的地理位置信息。比如应用程序可以借助一个Intent接收器来实现如下功能: 以经纬度和半径规划一个...
在Android开发中,集成Google Maps SDK和Google Location SDK是实现地图展示、定位功能的重要环节。本文将详细讲解如何使用这两个SDK来实现相应的功能,并提供一些关键知识点。 首先,我们需要在项目中添加Google ...
在Android开发中,集成地图功能是一项常见的需求,而高德地图作为国内主流的地图服务提供商之一,提供了丰富的API供开发者使用。本文将详细讲解如何在Android应用中实现高德地图的定位功能。 首先,要使用高德地图...
在安卓开发中,实现位置服务是一项重要的功能,它允许应用获取用户的实时地理位置信息,从而提供各种基于位置的服务,如导航、周边查询等。本“安卓定位demo”是针对这一需求而设计的一个简单示例,它利用了百度地图...
《Android应用开发范例精解》通过通俗易懂的开发实例及项目案例,详细介绍了Android应用开发的知识体系及实用开发...第3篇为项目案例实战篇,详细介绍了Android地图定位搜索应用及乐乐网上购物商城两个案例的实现过程。
本文主要介绍基于安卓平台的百度地图定位开发,讨论了手机导航的重要性、百度地图的优势、Android 平台的开放性和兼容性,以及百度地图在手机导航定位服务中的应用。 首先,本文指出手机导航已经成为现代社会中不可...
Android开发之原生定位的方法(GPS,网络定位)更多查看我的博客:https://blog.csdn.net/xiayiye5/article/details/83686286