在谷歌地图API V3切换开启/关闭标记 [英] Toggling on/off Markers in Google Maps 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屋!