当点击一个标记时,地理编码器返回先前存储的值
geocoder is returning previously stored value when click on a marker
我正在使用谷歌地图api v3(javascript)实现地理编码器。我正在放置多个标记,当我点击标记时,我希望相应的地址出现在信息窗口中。但当我点击标记时,最初地址的默认值(根据代码Geo address Unavailable!)即将到来,当我点击第二个标记时,它具有上次点击的标记的地址。我正在附上这段代码。
var addr=" Geo-Address Unavailable!";
var geocoder = new google.maps.Geocoder();
for(var i = 0; i < latLngs.length-1; i++){ //latLngs is the array of latlongs
marker = new google.maps.Marker({
position: latlng,
id:markerId,
icon: image,
map: map,
animation : google.maps.Animation.DROP,
});
}
markers[markerId] = marker;
var infowindow = new google.maps.InfoWindow({
content: "loading..."
});
google.maps.event.addListener(marker, "click", function () {
geocoder.geocode({'latLng': this.getPosition()}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
addr = results[0].formatted_address;
}
});
infowindow.setContent(addr);
infowindow.open(map, this);
});
地理编码是异步的。您必须在地理编码器的回调中使用返回的值。
正在发生的事情:
- 您向地理编码器发送一个请求
- 显示响应
- 响应从地理编码器返回
- 你向地理编码器发送了另一个请求
- 显示对第一个请求的响应
- 从地理编码器返回对第二个请求的响应
相关文章:
- 地理编码器 - IE8 中的编码问题
- 谷歌地图API地理编码器,受边界限制
- 将地理编码器的位置保存到数组中
- 在一个模式AjAX编码器中显示不同的Gallery
- 当点击一个标记时,地理编码器返回先前存储的值
- 谷歌地理编码器找到佐治亚州,而不是国家
- 如何防止谷歌地理编码器从其他国家/地区返回结果
- 防止在地理编码器谷歌地图API中循环
- 地理编码器仅适用于chrome,不适用于Firefox / IE / android
- 净化编码器中的输出
- 谷歌地理编码器返回错误的地址坐标
- 列出使用 Google 地图地理编码器 API 获取的一组地址
- 地理编码器 API 仅返回街道地址
- 地理编码器不返回城市的值
- 没有从地理编码器中获得正确的返回值
- 谷歌地图地理编码器如何我可以返回值在新的Google .maps. latlng
- 地理编码器没有返回结果
- 返回ZERO_RESULT和QUERY_LIMIT_REACHED的地理编码器
- 谷歌地理编码器从请求值返回不同的纬度和经度
- 谷歌地理编码器服务不返回适当的后期和长值与javascript