Javascript Google Map v3中初始化功能后添加和删除标记

Javascript Google Map v3中初始化功能后添加和删除标记,javascript,jquery,maps,Javascript,Jquery,Maps,我想在地图上显示标记。它们必须移动到新的位置 因为我不知道如何移动一个标记,所以我决定删除现有的标记并创建一个新的标记 但是标记不会被删除。相反,具有相同标签的新标记会不断出现在新位置 var markers = []; function addMarker(lat, lon, id, label, speed, course, temp) { var marker = new MarkerWithLabel({ name:id, id

我想在地图上显示标记。它们必须移动到新的位置

因为我不知道如何移动一个标记,所以我决定删除现有的标记并创建一个新的标记

但是标记不会被删除。相反,具有相同标签的新标记会不断出现在新位置

  var markers = [];     


function addMarker(lat, lon, id, label, speed, course, temp) {

    var marker = new MarkerWithLabel({
        name:id,
        id:id,
        position: new google.maps.LatLng(lat, lon),     
        draggable: true,
        optimized:false,
        map: map,
        labelContent: label,
        labelAnchor: new google.maps.Point(22, 0),
        labelClass: "labels",  
        labelStyle: {opacity: 0.75}
    });

    if(temp!=""){
        temptext = "<br />Temprature "+ temp;
    }  else{
        temptext =" ";
    }



    markers[id]=marker;
    console.log(markers);
    iw[id] = new google.maps.InfoWindow({
        content: "<b>"+label+"</b><br />Speed:"+speed+" KM/h "+ "<br />heading "+ course + temptext+"<br />["+id+"]",       
    });
    google.maps.event.addListener(marker, "click", function (e) { iw[id]
        .open(map, marker); });

}


   function clearMarker(id){

    if(typeof markers[id] == 'object'){

        console.log("key exists" +id);  
        delmarker = markers[id]
        delmarker.setMap(null);
         parent.markers.splice(id, 1)  ;
         //console.log(markers);     
    }      else{
        console.log(id+ "key does not exist" );      
    }

}
var标记=[];
功能添加标记(纬度、经度、id、标签、速度、航向、温度){
变量标记=新标记WithLabel({
姓名:id,,
id:id,
位置:新google.maps.LatLng(lat,lon),
真的,
优化:错,
地图:地图,
标签内容:标签,
labelAnchor:新的google.maps.Point(22,0),
labelClass:“标签”,
标签样式:{不透明度:0.75}
});
如果(温度!=“”){
TENTEXT=“
温度”+温度; }否则{ TENTEXT=“”; } 标记器[id]=标记器; 控制台日志(标记); iw[id]=新建google.maps.InfoWindow({ 内容:“+label+”
速度:“+Speed+”KM/h“+”
标题“+course+testext+”
[“+id+”], }); google.maps.event.addListener(标记,“单击”,函数(e){iw[id] .打开(地图、标记);}; } 函数clearMarker(id){ if(标记的类型[id]=“对象”){ console.log(“密钥存在”+id); delmarker=markers[id] delmarker.setMap(空); 父标记拼接(id,1); //控制台日志(标记); }否则{ console.log(id+“密钥不存在”); } }
我猜
标记
是一个数组,因为您在顶部声明了它,但后来您使用
键入对象
方法检查该数组中是否有东西?如果(typeof markers[id]='object'){…}@adeneo我按照您的建议更改了它,您确定它不应该是
。但是标记仍然没有被删除。