刷新Google地图阻止添加标记的能力
问题描述:
我在'刷新'我的Google地图后遇到问题,我无法单独放置标记(单击)。但在刷新我的地图(初始化之前)之前,我可以通过单击来放置标记。我可以知道代码有什么问题吗?刷新Google地图阻止添加标记的能力
下面是我的代码...
//Initialize the map
function initialize() {
var myLatlng = new google.maps.LatLng(2,110);
var myOptions = {
zoom: 3,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.HYBRID
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
infowindow = new google.maps.InfoWindow({
content: "loading..."
});
}
// Listen for click for markers
function marker()
{
google.maps.event.addListener(map, 'click', function(event) {
addMarker(event.latLng);
});
}
// Place markers in by click
function addMarker(location) {
marker = new google.maps.Marker({
position: location,
map: map,
title:"Specified Location",
icon: 'images/greenPoint.png'
});
markersArray.push(marker);
}
function refreshMap()
{
var myLatlng = new google.maps.LatLng(1.1,107);
var myOptions = {
zoom: 4,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.HYBRID
};
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
}
答
如果我理解你的问题正确的话,你说你叫refreshMap
功能后,您的地图不工作。听起来像一个范围界定问题,其中map
变量第二次处于不同的范围。尝试把这一行:
var map = null;
在文件的最顶端,以确保所有的map
引用的是同一个全局变量map
。
答
为什么要首先创建一个新的google.maps.Map对象?你应该做这样的事情,而不是:
function refreshMap()
{
var myLatlng = new google.maps.LatLng(1.1,107);
var myOptions = {
zoom: 4,
center: myLatlng,
};
map.setOptions(myOptions);
}
+0
嗨,Eric,或许我没有让我的问题听起来更清晰。例如,在我初始化我的地图后,我放下了一些标记。之后,我按下refreshMap()按钮(这将允许我清除所有标记),然后再次按下marker()函数后,我将能够再次放下标记...因为我做了什么现在,刷新我的地图后,当我按下功能添加标记后,我无法添加任何东西。谢谢 – 2010-11-25 01:12:54
答
使用您的markersArray
你应该能够清楚使用方法从这里地图:Google Maps API v3: How to remove all markers?
function clearOverlays() {
for (var i = 0; i < markersArray.length; i++) {
markersArray[i].setMap(null);
}
markersArray = [];
}
嗨科林,但我已经把变种地图;作为一个全球变量。 – 2010-11-25 01:08:30