不允许 Google 地图 api 多次放置标记

Not allowing Google Maps api to place a marker more than once

我制作了一个与 javascript 集成的 html 文件,它让我可以检索 XML 文件的数据并将它们的坐标自动绘制到地图上。这样做是因为我在脚本中放置了一个计时器,每 4 秒计时一次,以便地图可以自行刷新。 现在我希望能够不使用 'lastCoordinate' 变量将标记放置在同一个位置两次,但不确定该怎么做,我的第一印象是将其设为全局,然后再参考它。 这是该部分的代码;

var lastCoordinates();
function gotdata()
{

    if (xmlhttp.readyState == 4)
    {
        var y = xmlhttp.responseXML.documentElement.getElementsByTagName("y")[0].innerHTML;
        var x = xmlhttp.responseXML.documentElement.getElementsByTagName("x")[0].innerHTML;

        var myLatlng = new google.maps.LatLng(x,y);
        var marker = new google.maps.Marker({
          position: myLatlng,
          map: map,
          title: 'Hello World!'
      });

    }
}

使用lastCoordinates作为一个对象,在对象中为每个坐标存储一个属性,并根据坐标命名,例如x+'_'+y;

在创建标记之前检查 lastCoordinates 是否已经包含具有特定名称的 属性:

var lastCoordinates={};

function gotdata(){

    if (xmlhttp.readyState == 4){

        var d = xmlhttp.responseXML.documentElement, 
            //innerHTML shouldn't work for XML-Nodes
            y = d.getElementsByTagName("y")[0].textContent,
            x = d.getElementsByTagName("x")[0].textContent,
            h = [x,y].join('_');
        if(lastCoordinates[h]){
          return;
        } 

        lastCoordinates[h]= new google.maps.Marker({
                              //switched x and y
                              //I'm  not sure what x and y are
                              //but a latitude usually is y
                              //and a longitude is x
                              position: new google.maps.LatLng(y,x),
                              map: map,
                              title: 'Hello World!'
                            });

    }
}