mapapi中关于GClientGeocoder.getLatLng的用法
地图api中关于GClientGeocoder.getLatLng的用法本帖最后由 mz02005 于 2011-08-24 16:19:40 编辑这个函数
地图api中关于GClientGeocoder.getLatLng的用法
本帖最后由 mz02005 于 2011-08-24 16:19:40 编辑 这个函数返回的经纬度数据好像不是很准确,比如我搜索上海的某小区,名为‘英伦风尚’,在ditu.google.com上搜索是正确的,但是该返回找不到。搜索有些位置返回的纬度竟然是7.XX。晕啊,跑赤道去了。如果我在所有搜索的位置前加上‘上海’,则搜索总是能够返回结果。但是原先那些找不到的位置返回的结果是相同的。不知道是为什么。
代码基本上是下面的:
var pos = new GClientGeocoder();
pos.getLatLng("英伦风尚", function(result) {
if (result != null) {
......
}else { }
);
此时回调函数result参数就是null
[解决办法]Google API 对这个函数是这样解释的:向 Google 服务器发送请求,对指定的地址进行地址解析。如果地址已成功定位,则用 GLatLng 点调用用户指定的回调函数。否则,向回调函数提供一个 null 点。如果地址不明确,则仅向回调函数传递最匹配的点。
所以出现你这种情况很正常。你要想下,Google地图的数据有多少???你输入的地址只是个小小的小区,搜不到很正常,而且同名的地址不少吧?Google地图是很强悍,但是还没强悍到那种地步。。。
楼主现在还在用Google Map V2,现在Google Map V3已经早出来了,把你地图升升级吧。新的API会返回多个结果。