【问题标题】:adding markers to Google maps v3向 Google 地图 v3 添加标记
【发布时间】:2013-12-17 23:53:49
【问题描述】:

我正在尝试从预定义变量addrstartnameaddrEndName 向谷歌地图添加标记。它在 v2 中运行良好,但在 v3 中根本不显示。

function addMarker2Map(point,markerID,imageUrl) {
  marker = new google.maps.Marker(point, {
    draggable: false,
    autoPan: false,
    title: (markerID.toLowerCase().indexOf("start") != -1) ? 'Start Point: ' + addrStartName: 'End Point: ' + addrEndName
  });
    marker.id = markerID;
    marker.setMap(map);
    marker.setIcon(imageUrl);
  if (markerID.indexOf("tart") != -1) {
    dirMarkerFrom = marker;
    google.maps.event.addListener(marker, 'dragend', function(point) {
      findAddrLocations(point, geocoderGetLocsFrom, geocoderNotFound);
    });
   } else {
   dirMarkerTo = marker;
     google.maps.event.addListener(marker, 'dragend', function(point) {findAddrLocations(point, geocoderGetLocsTo, geocoderNotFound);});
   }
 google.maps.event.addListener(marker, 'click', function (point) {
   if (this.id.toLowerCase().indexOf("start") != -1) {
       this.openInfoWindow("<div style='width:200px'><img src='images/google_pointer_start.png' alt='Start Address' title='Start Address' align='middle' /> <strong>Start Address:</strong><br />" + addrStartName + "</div>");
       } else {
      this.openInfoWindow("<div style='width:200px'><img src='images/google_pointer_finish.png' alt='End Address' title='End Address' align='middle'/><strong>End Address:</strong><br />" + addrEndName + "</div>");
   }
 });
}

我昨天在marker.setIcon(imageUrl); 上遇到了错误,但是今天它工作正常。

这里也可以看到一个调用这个函数的例子

   google.maps.event.removeListener(mapClick); 
    if (point != undefined){
   addMarker2Map(point,markerID,imageUrl)
                   }

提前感谢您的任何帮助

【问题讨论】:

    标签: javascript google-maps google-maps-api-3


    【解决方案1】:

    google.maps.Marker 的构造函数不正确。

    它只需要一个参数,MarkerOptions object

    marker = new google.maps.Marker(point,{draggable:false, autoPan:false, title:       (markerID.toLowerCase().indexOf("start") != -1)?'Start Point: '+addrStartName:'End Point:     '+addrEndName});
    

    应该是:

    marker = new google.maps.Marker({position: point, draggable:false, autoPan:false, title:       (markerID.toLowerCase().indexOf("start") != -1)?'Start Point: '+addrStartName:'End Point:     '+addrEndName});
    

    【讨论】:

    • 谢谢,我已经实现了,但恐怕没有运气。我在原始帖子中的代码中添加了一个示例,说明何时调用此函数。
    • 然后还有更多的问题(不应该涉及运气)。您需要为我们提供足够的代码来复制问题(或显示问题的 jsfiddle 或出现问题的链接)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    相关资源
    最近更新 更多