Android 如何获取经纬度

移动是手机与手持设备的最大特点,可以通过Eclipse的DDMS视图,模拟设备的位置变化,改变经纬度后,点击send,然后运行程序,在应用程序中,动态的获取设备位置,然后显示当前的位置信息。
  
  获取位置信息分为三步:
  
  1.添加系统权限,来支持对LBS硬件的访问
  
Java代码:

< uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">
< /uses-permission>

  2.得到系统服务的LocationManager对象
  
Java代码:

LocationManager loctionManager;
String contextService=Context.LOCATION_SERVICE;
//通过系统服务,取得LocationManager对象
loctionManager=(LocationManager) getSystemService(contextService);

3. 得到位置提供器,通过位置提供器,得到位置信息,可以指定具体的位置提供器,也可以提供一个标准集合,让系统根据 标准匹配最适合的位置提供器,位置信息是由位置提供其提供的。

  a. 通过GPS位置提供器获得位置(指定具体的位置提供器)

Java代码:

String provider=LocationManager.GPS_PROVIDER;
Location location = loctionManager.getLastKnownLocation(provider);

b. 使用标准集合,让系统自动选择可用的最佳位置提供器,提供位置

Java代码:

Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);//高精度
criteria.setAltitudeRequired(false);//不要求海拔
criteria.setBearingRequired(false);//不要求方位
criteria.setCostAllowed(true);//允许有花费
criteria.setPowerRequirement(Criteria.POWER_LOW);//低功耗
//从可用的位置提供器中,匹配以上标准的最佳提供器
String provider = loctionManager.getBestProvider(criteria, true);
//获得最后一次变化的位置
Location location = loctionManager.getLastKnownLocation(provider);

最后将位置信息显示在TextView中,如图:

监听位置的变化

  //监听位置变化,2秒一次,距离10米以上
Java代码:

loctionManager.requestLocationUpdates(provider, 2000, 10, locationListener);
//位置监听器
private final LocationListener locationListener = new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}

@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
//当位置变化时触发
@Override
public void onLocationChanged(Location location) {
//使用新的location更新TextView显示
updateWithNewLocation(location);
}

};
时间: 2024-11-05 01:01:45

Android 如何获取经纬度的相关文章

Android开发:LocationManager获取经纬度及定位过程(附demo)

在Android开发其中.常常须要用到定位功能,尤其是依赖于地理位置功能的应用.非常多人喜欢使用百度地图,高德地图提供的sdk.开放API,可是在只须要经纬度,或者城市,街道地址等信息.并不须要提供预览地图.地图界面的应用中.这时,不须要使用百度地图.高德地图.这样做只会添加apk的体积.怎么办呢? 事实上LocationManager,Geocoder这些Android API给我们提供的这些类就能够满足了. 以下笔者就来讲讲怎样利用LocationManager获取经纬度,并利用Geocod

Android GPS获取当前经纬度坐标

APP中可能会遇到一种需求,就是将当前所在位置的坐标传到服务器上,今天我提供三种途径去获取经纬度坐标信息,第一种是通过Android API来实现,第二种通过百度地图API来实现,第三种通过天地图API来实现. 第一种方法(Android API实现),废话不多说,上代码. MainActivity代码如下: public class MainActivity extends Activity { private static final String TAG = MainActivity.cl

Android 根据城市获取经纬度 适配Android 7.0 、Android 8.0

今天在开发的过程中遇到了一个很奇葩的问题,就是之前已经写好的代码在Android 7.0 的系统中运行是正常的,但是在Android8.0 的系统中运行就出现了问题.在网上也找了很多资料,经过自己的不断折腾,终于找到了问题.废话不 多说了,直接上代码:public void getLatAndLng(String cityName) {Geocoder geocoder = new Geocoder(this,Locale.CHINA);try {List<Address> addressLi

Android Google Maps API 网络服务用于网络定位、计算路线、获取经纬度、获取详细地址等

---恢复内容开始--- extends:http://blog.csdn.net/h7870181/article/details/12505883 Google Maps API 网络服务 官网地址 : https://developers.google.com/maps/documentation/webservices/?hl=zh-cn 其实就是一些接口,供我们调用,如: 1.根据地址获取经纬度 http://maps.google.com/maps/api/geocode/json?

Android中如何获取经纬度

前几天写代码遇到一个地方需要获取经纬度,不需要百度地图,因为只要拿到当前位置的经纬度就行了,安卓api有内置方法,这里写一下,下面的代码大家可以拿去用,这里简单到,只用复制到自己的代码里,然后调用showLocation()方法就能得到经纬度了,前提是:在这之前jingwd()方法被调用过了,比如放在onCreate()里,因为这里面 是具体的实现,下面是代码:     private LocationManager locationManager;     private String loc

iOS定位服务与地图开发(1)---获取经纬度

定位服务是通过GPS等方式查找定位自己的位置的,再通过地图标注出来. 在iOS中定位服务和地图开发是使用两套API分别完成的. 1.定位服务: iOS系统提供3种不同定位途径: 1>WiFi定位:通过查询一个WiFi路由器的地理位置信息,iPhone.iPod Touch.iPad都可以采用. 2>蜂窝式移动电话基站定位:通过移动运营商基站定位 3>GPS卫星定位:通过3~4颗GPS卫星位置定位,最为准确,但是耗电量大 iOS不像Android系统在定位服务编程时可以指定采用哪种途径进行

获取经纬度之间两点间真实距离(适用于GoogleMap,BaiduMap,Amap等)

如何获取经纬度之间两点间真实距离(适用于GoogleMap,BaiduMap,Amap等) 目标:使用百度定位sdk开发实时移动距离计算功能,根据经纬度的定位,计算行驶公里数并实时刷新界面显示.大家都知道定位有三种方式:GPS .Wifi . 基站 .误差方面的话,使用GPS误差在10左右,Wifi则在20 - 300左右 ,而使用基站则误差在100 - 300左右的样子,因为在室内GPS是定位不到的,必须在室外,而我们项目的需求正好需要使用GPS定位,所以我们这里设置GPS优先.车,不可能在室

Android如何获取SIM卡信息

android 获取sim卡运营商信息 TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TELEPHONY_SERVICE); TelephonyManager 的使用 TelephonyManager 提供设备上获取通讯服务信息的入口,应用程序使用这个类的方法来获取电话的服务商或者状态.程序也可以注册一个监听器来监听电话状态的改变. 不需要直接实例化这个类,使用Context.getSystemS

Android如何获取系统高度、标题栏和状态栏高度

在android应用中,有时需要计算个View的位置,导致需要计算状态栏高度,标题栏高度等信息.为以后方便,在此做个简单记录. 晒代码前先了解一下android屏幕区域的划分,如下图(该图引用自此文http://www.iteye.com/topic/828830 ) 1. 屏幕区域的获取 [java] view plaincopy activity.getWindowManager().getDefaultDisplay(); 2.应用区域的获取 [java] view plaincopy R