关键词:android/GPS/Geocoding API/getLocationFrom()返回null
打算做一个地址位置解析相关的程序,网上大都用的如下方法:
getFromLocation()与getFromLocationName()这两个函数是大家比较喜欢的,也是资料比较丰富的。
详情见如下链接:
http://www.eoeandroid.com/thread-63307-1-1.html
但是,经本人试验发现关键步骤getFromLocation()/getFromLocationName()返回null值,在网上一搜发现很多人也出现相似情况:
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=59961&page=1#pid652205
万念俱灰!!!!!!
后面看文档才发现Google跟我们开了个玩笑:
真够操蛋的还!
于是心灰意冷的我开始另辟蹊径:
http://www.eoeandroid.com/thread-64115-1-1.html
感谢二楼!
于是来到了心中的圣地:
http://code.google.com/intl/zh-CN/apis/maps/documentation/geocoding/
差不多了?
还不够,google map解析出来的字段与上面链接说明的有些不一样,具体地址与各位层级位置的关系如下:
分别是国家/省份/城市/城市中的具体位置;
还有个Accuracy字节代表精度,这就因输入得到的经纬度值不同而不同了;
如:
http://ditu.google.com/maps/geo?q=您的Latitude,您的Longitude&output=xml&oe=utf8&hl=zh-CN&sensor=true&key=您的Map APIkey
其中,hl=zh-CN代表要返回中文,如果此约束会返回英式地址。
还有一些关于用google map解析地址的前提条件:
"如果您超过了 24 小时的限制或者滥用此服务,Google Geocoding API 可能会暂停为您服务。"
不明白这句是什么意思!是开发者使用此服务的总时间不能超过24小时吗?
以上说明来自:http://www.smnirven.com/?p=39
大致意思是一个IP地址不能在短时间内向服务器频繁发送请求,否则应用程序会被禁用解析服务!
但此限制是针对单独一个IP地址而言,所以我们可以通过使用客户端地址解析,可以确保这些限制分别应用到每个用户,而不是针对由所有用户生成的总请求量。若是服务器发送请求的话可以将请求结果缓存在服务器端以响应客户端请求!
http://hi.baidu.com/zdz8207/blog/item/a110830a6850c92ab0351d4a.html