我通过GoogleMap地址编码服务进行城市定位时发现了一个问题,期盼解答中...

通过GM的地理编码服务实现定位功能,这是在GM API2.0以后新发布的功能,实现代码片断如下:

var geocoder = new GClientGeocoder();
function showAddress(address)
{
 if(geocoder == null)
  return;

 geocoder.getLatLng(
  address,
  function(point)
  {
   if(point == null)
   {
    alert("抱歉,您输入的地址没有找到!");
    return;
   }
   var messObj=findObj("mess",document);
   if(messObj){
     messObj.innerHTML =point.toString();
   }
   map.setCenter(point);  
  }
 );
}

从代码我们可以清楚看到,功能核心类就是:GClientGeocoder 。通过其开放的getLatLng()方法执行地址查询并进行回调,回调函数的参数为结果坐标。获得坐标我们就可以对地图进行中心设置,达到定位地图的目的。

由此看来编码工作相对简单,我在我的网站已经实现了这个功能,经过试用,发现了一个奇怪的现象:
试用初期输入我国城市[例如:beijing,shenyang等]的英文进行定位,一点问题都没有,似乎是经过若干次定位后,出现了问题,对我国城市定位无效了,而国外的城市[New york,White house]反复重试都没有发现这个问题。

在网上搜索相关主题,都没有结果,很郁闷!

我的GMap应用网址:http://www.gis9.com/gm_locationinfomap.jsp 大家可以在这里测试一下。

我猜想:由于我使用的Map key是免费的,是不是google对中国地址的搜索次数进行了限制。

是否有人遇到类似的问题?期盼解答中... ...

谢谢!

原文地址:https://www.cnblogs.com/gis9/p/512285.html