Android根据经纬度获取地址

本文探讨了在Android地图开发中如何利用Geocoder类进行地理定位,获取用户所在城市及其详细位置信息,并对比了Geocoder与Google Geocoding API的方法与使用体验。分析了API请求中遇到的问题及解决方案,包括读取JSON速度慢和返回英文地址信息等问题,提供了改进措施,如修改请求地址为google.cn并添加language参数以获取中文地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        Android地图开发实际应用中,经常会通过地图定位判断手机用户是哪个城市的,然后根据城市的不同调取不同的数据,或者是地图定位之后,会在手机界面中显示用户的详细位置,如石家庄市中山北国商城。

        那么这些信息如何获得?   详细研究过Android MapView的可能用到Geocoder这个对象。详细代码如下:

       


  1. Geocoder geocoder=new Geocoder(this, Locale.getDefault());  
  2.                 try {  
  3.                     List<Address> addresses=geocoder.getFromLocation(latitude, longitude, 1);  
  4.                     StringBuilder stringBuilder=new StringBuilder();                      
  5.                     if(addresses.size()>0){  
  6.                         Address address=addresses.get(0);  
  7.                         for(int i=0;i<address.getMaxAddressLineIndex();i++){  
  8.                             stringBuilder.append(address.getAddressLine(i)).append("\n");                                                 
  9.                         }  
  10.                         stringBuilder.append(address.getLocality()).append("_");  
  11.                         stringBuilder.append(address.getPostalCode()).append("_");  
  12.                         stringBuilder.append(address.getCountryCode()).append("_");  
  13.                         stringBuilder.append(address.getCountryName()).append("_");  
  14.                         System.out.println(stringBuilder.toString());  
  15.                     }  
  16.                 } catch (IOException e) {  
  17.                     // TODO Auto-generated catch block   
  18.                     Toast.makeText(this"报错", Toast.LENGTH_LONG).show();  
  19.                     e.printStackTrace();  
  20.                 }  

 

坑爹呀,怎么执行都异常 ,真机测试还异常,  有说android 2.xx版本不能用,不管怎么样,这个不好用。

看谷歌另一种方法:

Google Geocoding API

,定会让你眼前一亮。

 

详细地址:http://code.google.com/intl/zh-CN/apis/maps/documentation/geocoding/

 

根据坐标查找详细信息,也就是本篇所说的,请看  反向地址解析(地址查询)

请求地址:http://maps.google.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true  

注意坐标 (纬度,经度)不要传反了

经实例测试,发现两个问题 1,读取json很慢;2,返回地址信息是英文【有时页面直接访问是中文,模拟器中是英文】

解决办法:

1,将请求地址:google.com 改为 google.cn

2,在请求地址后边再加一个参数language=zh-CN  [ 不知道为什么官网不给详细一点 ]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值