在谷歌地图API V3切换开启/关闭标记 [英] Toggling on/off Markers in Google Maps API v3

查看:275
本文介绍了在谷歌地图API V3切换开启/关闭标记的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在遇到麻烦的setMap(NULL);每个人似乎功能被推荐工作。

I'm having trouble getting the setMap(null); function that everyone seems to be recommending to work.

我相信这可能是我已经实现了标记的方式有问题。

I believe it may be a problem with the way I've implemented the markers.

如果有人可以来看看,让我知道,如果你看到的东西错了,我会非常AP preciate它。

If someone could take a look and let me know if you see something wrong I'd greatly appreciate it.

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

请注意:以上旧的链接,并没有去任何地方。

Please Note: Old link above, doesn't go anywhere.

推荐答案

最根本的问题是,如果你想要这个工作,你得让你的心什么的 markersTest 对象应该持有。你似乎无法决定在 markersTest 元素是否应该标记或应该是数组,告诉你在哪里标记将被放置。

The basic problem is that if you want this to work you've got to make up your mind about what the markersTest object is supposed to hold. You can't seem to decide whether the elements in markersTest should be markers or should be arrays that tell you about where markers are going to be placed.

从你的JavaScript文件引用,这里是得到当您检查/清除该复选框执行两个功能:

Quoting from your javascript file, here are the two functions that get executed when you check/clear the checkbox:

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 对象需要持有标记。

For addTestMarkers to work, the markersTest object needs to hold descriptions of where the markers should go. For clearOverlays to work, the markersTest object needs to hold markers.

下面是我的建议:修改 markersTest 对象,因为你设置它为JavaScript文件的顶部 markerDestinations ,并在javascript文件的顶部有 markersTest 与初始化的:

Here's my suggestion: change the markersTest object as you set it up at the top of the javascript file to markerDestinations, and at the top of the javascript file have markersTest initialized with:

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 V3切换开启/关闭标记的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆