我所拥有的地址是从包含6个数字的数据库中检索到的连接的results[1].formatted_address,例如530456。然后我对它进行了地理编码,并在google地图上放置了一个标记。这部分是成功的。
我现在想要在标记的下面显示完整的地址,results[0].formatted_address,所以我所做的是对标记的latLng进行反向地理编码,以获得完整的地址,但导致整个地图消失。我这样做的方式是:
var address;
var eventwindow;
function codeAddress(postal) {
geocoder.geocode( {'address': postal + ", Singapore"}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
eventwindow = new google.maps.InfoWindow();
var markerE = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
});
address = getMarkerAddress(results[0].geometry.location);
google.maps.event.addListener(marker, 'click', function(){
if(eventwindow)
eventwindow.close();
eventwindow = new google.maps.InfoWindow({
content: address,
});
eventwindow.open(map,marker);
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
function getMarkerAddress(location) {
geocoder.geocode({'latLng': location}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if(results[0])
{
address = results[1].formatted_address.substring(10);
}
}
else {
alert("Geocoder failed due to: " + status);
}
});我不知道我是不是做对了,也不确定我错在哪里。有没有其他方法来解决这个问题?如果是这样的话,是怎么做的?
发布于 2012-07-11 10:37:16
我不知道我是不是做对了,也不确定我哪里错了。有没有其他方法来解决这个问题?如果是这样的话,是怎么做的?
如果你知道“正确”的地址,就使用它。您还没有提供足够的应用程序详细信息,无法就如何做到这一点提出建议。您可以通过将地理编码器返回的坐标与地址一起存储在数据库中来避免地理编码器的不确定性,然后如果发现错误,则可以修复它。
https://stackoverflow.com/questions/11424659
复制相似问题