Android 学习意外第五季<1>——gps定位经纬度查询地址信息

折腾,一个劲得折腾.....

真是莫名其妙啊,在之前的程序按照android的api中的Geocoder,来获取到地址的详细信息:

Geocoder geo = new Geocoder(this, Locale.getDefault());
			List<Address> adList = null;
			try {
				// 将gps信息类转化成address信息类
				adList = geo.getFromLocation(latitude,longitude, 1);
				showDialog(adList.toString());
			} catch (IOException e) {
				e.printStackTrace();
			}

运行的挺好,没把我给乐的,第二天老板给我要代码看看效果咋样,到他那里一会就和我说,小李啊,你这个不对啊,不能运行啊~快哭了

当时我就要崩溃了,之前不是运行的好好的?还是回自己的机器看看怎样~结果也是运行不了~

断点调试就是   geo.getFromLocation(latitude,longitude, 1);搞的鬼,就是出现null。但是书本上的代码也是一样的遭遇~我泪奔啊~~

网上推荐用http解析,地址如下:http://maps.google.com/maps/api/geocode/json?address=AAA&sensor=false&language=zh-cn  地址中的AAA就是你要查的地址

也可以是如下地址:http://maps.google.com/maps/api/geocode/json?latlng=AAA,BBB&sensor=false&language=zh-cn  AAA,BBB为经纬度值。查询结果就出现地址信息了,但是你要知道这个结果还是一个json的格式~~看起来你也不是太好看,太多了~~~

无奈研究一天终于得到一个还算可以的结果,不过这个还是有缺陷的,毕竟和查询结果的详细程度比有些不全。但是还算好用。

我将经纬度查询地址自己写了一个类 Latlng_address

类层次图如下:

其中的处理就不在说了,自己下代码看去吧,处理的函数就是一个searchCountry(double ,double)的那个。代码样例

使用方法:

Latlng_address translation=new Latlng_address(37.1231,116.123131);
//获得经纬度上的国家名
country=translation.get_country();
//获得省名
admin=translation.get_admin();

非常简单,只要经纬度信息~~缺陷就是信息还不够全面,对于精密定位慎用。

但是希望知道为什么geo.getFromLocation(latitude,longitude, 1);不能够得到地址信息的大牛能给我一点上上一课~以解我多日之忧~


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值