Javascript 刷新Google地图会阻止添加标记

Javascript 刷新Google地图会阻止添加标记,javascript,function,Javascript,Function,在“刷新”我的谷歌地图后,我无法自己(单击)放置在标记中。但在刷新我的地图(使用初始化地图)之前,我可以通过单击来放置标记。我可以知道密码有什么问题吗 下面是我的代码 //Initialize the map function initialize() { var myLatlng = new google.maps.LatLng(2,110); var myOptions = { zoom: 3, center: myLatlng,

在“刷新”我的谷歌地图后,我无法自己(单击)放置在标记中。但在刷新我的地图(使用初始化地图)之前,我可以通过单击来放置标记。我可以知道密码有什么问题吗

下面是我的代码

//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);
}

使用
markersArray
您应该能够使用以下方法清除地图:

函数clearOverlays(){ 对于(var i=0;i嗨,科林,但我已经放了一张var图;作为一个全局变量。嗨,埃里克,也许我没有让我的问题听起来更清楚。例如,在初始化地图后,我放置了一些标记。之后,我按下refreshMap()按钮(这将允许我清除所有标记),然后在再次按下marker()函数后,我将能够再次向下放置标记。。。因为对于我现在所做的,在刷新地图后,当我按下添加标记的功能时,我根本无法添加任何标记。。谢谢
function clearOverlays() {
  for (var i = 0; i < markersArray.length; i++ ) {
    markersArray[i].setMap(null);
  }
  markersArray = [];
}