Javascript Google Maps V3 - 为什么这个清晰的叠加功能不起作用?

时间:2010-08-23 08:49:59

标签: javascript google-maps-api-3

var markersArray = new Array();    
function clearOverlays(){
      if(markersArray){
       for (i in markersArray) {
        markersArray[i].setMap(null);
      }
      }
      }

这几乎是从google maps v3文档中复制出来的......但它不起作用。 :/

这是实现该功能的地方:

 function TCGetLatLong(address){
   var geo = new google.maps.Geocoder;
   var lat;
   var lng;

   geo.geocode({'address':address},function(results, status){
     if (status == google.maps.GeocoderStatus.OK) {
    clearOverlays();
    addMarker(results[0].geometry.location, true, true, 16, "new", 0, "", "");
     } else {
    alert("Geocode was not successful for the following reason: " + status);
     }

    });

  }

这是我在addMarker函数中添加标记的位置:

   marker = new google.maps.Marker({
  position: location,
  draggable: draggable,
  title: "Your new listing",
  map: map
   });

   markersArray.push(marker);

   google.maps.event.addListener(marker, 'dragend', function() {     
  infowindow.open(map,marker);
  document.getElementById('lat').value = marker.position.lat();
  document.getElementById('long').value = marker.position.lng();
   });
   google.maps.event.addListener(marker, 'dragstart', function(){ infowindow.close(); });
   infowindow.open(map,marker);
   google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,marker);
                 });

任何帮助都会非常好......谢谢。

2 个答案:

答案 0 :(得分:0)

遇到类似的问题 - 我认为在我的情况下,在地图加载事件完成之前,markers数组没有完全填充。我抛出一个js警报作为我的脚本中读取数组长度的最后一个命令,它返回为0.但是,如果我添加另一个js警报绑定到我在页面加载后单击的命令按钮,我可以读取1050数组中的记录。

答案 1 :(得分:0)

仍然没有得到答案,但设法绕过它烦人的。