【问题标题】:Toggling on/off Markers in Google Maps API v3在 Google Maps API v3 中打开/关闭标记
【发布时间】:2011-02-13 14:38:15
【问题描述】:

我无法获取 setMap(null);每个人似乎都建议工作的功能。

我认为这可能是我实现标记的方式存在问题。

如果有人可以查看并告诉我您是否发现有问题,我将不胜感激。

链接:http://www.dougglover.com/samples/UOITMap/v2/

请注意:上面的旧链接,不会去任何地方。

【问题讨论】:

    标签: api google-maps map toggle google-maps-markers


    【解决方案1】:

    不要使用 setMap(null) 来切换地图上的标记!因此 API 提供了 setVisible 方法,该任务的合适方法是什么。

    【讨论】:

      【解决方案2】:

      基本问题是,如果你想让它工作,你必须下定决心markersTest 对象应该持有什么。您似乎无法决定 markersTest 中的元素是应该是标记还是应该是告诉您将要放置标记的位置的数组。

      引用您的 javascript 文件,以下是您选中/清除复选框时执行的两个函数:

      15  function addTestMarkers(){
      16      for(var i in markersTest) {
      17          var location = new google.maps.LatLng(markersTest[i][1], markersTest[i][2]);
      18          marker = new google.maps.Marker({
      19              position: location,
      20              map: map
      21          });
      22      }
      23  }
      24  
      25  // Removes the overlays from the map, but keeps them in the array
      26  function clearOverlays() {
      27      if (markersTest) {
      28          for (i in markersTest) {
      29              markersTest[i].setMap(null);
      30          }
      31      }
      32  }
      

      要使addTestMarkers 起作用,markersTest 对象需要保存对标记应该去哪里的描述。要使clearOverlays 工作,markersTest 对象需要保存标记。

      这是我的建议:将您在 javascript 文件顶部设置的 markersTest 对象更改为 markerDestinations,并在 javascript 文件顶部将 markersTest 初始化为:

      markersTest = {};
      

      然后,将addTestMarkers修改为:

      function addTestMarkers() {
          for(var i in markerDestinations) {
              var location = new google.maps.LatLng(markersDestinations[i][1], markersDestinations[i][2]);
              markersTest[i] = new google.maps.Marker({
                  position: location,
                  map: map
              });
          }
      }
      

      关键的改变是让addTestMarkers真正将标记放入markersTest对象中。

      【讨论】:

      • 好的,所以不要像初始化一个对象那样初始化一个数组,如果我理解你的意思的话,使用我的数组来创建一个用于显示目的的对象的属性。我会听取你的建议并调查一下。说实话,我这周(星期一)才真正开始看 API,并且觉得尽管有一些硬墙,但我对新版本还是很满意的,而不是选择目前更完整的版本 2任何人。再次感谢,我会按照您的建议考虑更改地图。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 2012-01-25
      • 2012-05-11
      • 2011-09-05
      • 2016-11-06
      • 1970-01-01
      相关资源
      最近更新 更多