【发布时间】:2012-05-09 12:54:54
【问题描述】:
我正在尝试使用地理编码器获取以下地址的坐标:
1945 Barton Street, Hamilton, ON, L8H2Y7
在谷歌地图上搜索地址会找到地址:http://g.co/maps/5axb5。 使用地理编码网址也可以正常返回。 http://maps.googleapis.com/maps/api/geocode/json?address=1945+BARTON+STREET,+HAMILTON,+ON,+L8H2Y7&sensor=false
但是,当我使用 api(我的代码如下)时,它返回 not found。
代码:(这适用于我正在搜索的其他几个地址)
if (geocoder) {
geocoder.geocode( {'address': fullAddress }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert("Geocoding failed: " + status + " " + fullAddress);
}
});
}
“实际”地址是“1945 Barton Street East, Hamilton, ON L8H2Y7, Canada”,但地图和直接 url 仍然可以很好地找到该地点,只是地理编码器没有。
关于为什么会发生这种情况的任何想法?
编辑: 我想到了。这是一个合法找不到的不同地址(不是在谷歌地图上或使用地理编码器),但由于在地理编码器意识到找不到地址时请求是异步完成的,所以循环已经改变地址值到它可以找到的另一个地址。看来我还有一些工作要做..
【问题讨论】:
标签: javascript google-maps google-maps-api-3 google-geocoding-api