通过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对中国地址的搜索次数进行了限制。
是否有人遇到类似的问题?期盼解答中... ...
谢谢!