`
LoveZhou
  • 浏览: 270119 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android GPS定位 获取经纬度

阅读更多
移动 是手机与手持设备的最大特点,可以通过Eclipse的DDMS视图,模拟设备的位置变化,改变经纬度后,点击send,然后运行程序,在应用程序中,动态的获取设备位置,然后显示当前的位置信息。

获取位置信息分为三步:
1. 添加系统权限,来支持对LBS硬件的访问
   <uses-permission    android:name="android.permission.ACCESS_FINE_LOCATION">
  </uses-permission>

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

3. 得到位置提供器,通过位置提供器,得到位置信息,可以指定具体的位置提供器,也可以提供一个标准集合,让系统根据 标准匹配最适合的位置提供器,位置信息是由位置提供其提供的。
     a.   通过GPS位置提供器获得位置(指定具体的位置提供器)
        String provider=LocationManager.GPS_PROVIDER;
       Location location = loctionManager.getLastKnownLocation(provider);
       
     b. 使用标准集合,让系统自动选择可用的最佳位置提供器,提供位置
        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米以上
        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);
}
};

通过改变位置经纬度,程序会自动更新TextView显示的位置信息

  • 大小: 17.5 KB
  • 大小: 7.3 KB
  • 大小: 7.8 KB
  • 大小: 17.5 KB
分享到:
评论
32 楼 新乡阿永 2015-08-07  
这个怎么用啊?
31 楼 mvpstevenlin 2013-08-26  
LoveZhou 写道
mvpstevenlin 写道
我在模拟器上运行,没有内容。
请问博主,应该怎么用?

到设置中把gps定位打开试试

谢谢 博主
30 楼 LoveZhou 2013-05-06  
pimkle 写道
2.3.3报错

google 可能已经不支持这种方式定位了,现在我在公司的项目里,用的是百度定位
29 楼 pimkle 2013-05-04  
2.3.3报错
28 楼 czltx224 2013-04-28  
不行啊,獲取不到
27 楼 LoveZhou 2013-03-25  
xiexinjing 写道
附件不是源代码
是源代码,这个demo是很久以前的了,当时测试可以获取,现在google定位可能获取不到位置了,我在公司用百度的开放sdk获取的位置
26 楼 xiexinjing 2013-03-21  
附件不是源代码
25 楼 yaoguanyuan 2013-02-08  
我用这代码得到的数值怎么跟你上面的数据是一模一样的,为什么不是我当地的经纬度值
24 楼 zhaomingshen 2012-12-19  
真个是没得结果,测试环境,三星PAD N8000,Android4.0,开启GPS,开启WLAN,插上手机卡,信号肯定是有的,有朋友晓得是怎么回事不呢?
23 楼 liangzedong 2012-12-17  
获取经纬度两个数字,请问这两个数字有什么用呢?可以怎么用?
22 楼 zhouxiangang123 2012-11-22  
很不错,我的也不能定位~

21 楼 min_you1314 2012-08-23  
很不错,好像 不能定位
20 楼 LoveZhou 2012-05-03  
mvpstevenlin 写道
我在模拟器上运行,没有内容。
请问博主,应该怎么用?

到设置中把gps定位打开试试
19 楼 mvpstevenlin 2012-05-02  
我在模拟器上运行,没有内容。
请问博主,应该怎么用?
18 楼 wf1023 2012-04-05  
感谢分享...
17 楼 LoveZhou 2012-03-16  
han0917 写道
LoveZhou 写道
JACKDG2010 写道
location 在真机上运行是null。

在真机上有可能是null,有获取不到的情况,gps定位不到,需要用network定位,network定位,位置不入gps准确,但是只要手机有信号就能定到,经常是很大一个范围内的手机显示都在同一个位置

那如何实现精确定位啊???另外在室内测试为什么获取不到啊?

在室内有取不到的情况,还不太清楚如何精确定位,看很多软件,定位也都是定大体位置,都不精确
16 楼 han0917 2012-03-15  
LoveZhou 写道
JACKDG2010 写道
location 在真机上运行是null。

在真机上有可能是null,有获取不到的情况,gps定位不到,需要用network定位,network定位,位置不入gps准确,但是只要手机有信号就能定到,经常是很大一个范围内的手机显示都在同一个位置

那如何实现精确定位啊???另外在室内测试为什么获取不到啊?
15 楼 LoveZhou 2012-01-16  
335062868 写道
这个是用百度定位还是Google定位的呢?

google
14 楼 335062868 2012-01-16  
这个是用百度定位还是Google定位的呢?
13 楼 LoveZhou 2012-01-13  
JACKDG2010 写道
location 在真机上运行是null。

在真机上有可能是null,有获取不到的情况,gps定位不到,需要用network定位,network定位,位置不入gps准确,但是只要手机有信号就能定到,经常是很大一个范围内的手机显示都在同一个位置

相关推荐

Global site tag (gtag.js) - Google Analytics