Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图API按纬度/经度删除标记_Javascript_Google Maps_Marker - Fatal编程技术网

Javascript 谷歌地图API按纬度/经度删除标记

Javascript 谷歌地图API按纬度/经度删除标记,javascript,google-maps,marker,Javascript,Google Maps,Marker,我有一个谷歌地图,我不断用标记更新。如果标记重叠(完全相同的位置),我有一个计数器,它将添加到标记内的数字。问题是每次我添加一个新的标记时,它并不总是将它放在另一个标记的顶部。例如,标记中有数字10。一个新的标记与11一起下降,在动画之后,它隐藏在10后面。有时,在几个标记之后,顶部标记将是正确的数字,比如21而不是10 那么,在添加新标记之前,有没有办法按纬度/经度删除标记?以下是我所拥有的: for (var i=0; i<response.trans.length; i++) {

我有一个谷歌地图,我不断用标记更新。如果标记重叠(完全相同的位置),我有一个计数器,它将添加到标记内的数字。问题是每次我添加一个新的标记时,它并不总是将它放在另一个标记的顶部。例如,标记中有数字10。一个新的标记与11一起下降,在动画之后,它隐藏在10后面。有时,在几个标记之后,顶部标记将是正确的数字,比如21而不是10

那么,在添加新标记之前,有没有办法按纬度/经度删除标记?以下是我所拥有的:

for (var i=0; i<response.trans.length; i++) {
    //add to location 
    location[response.trans[i].location_id] += 1;

    latLng = new google.maps.LatLng(response.trans[i].latitude, response.trans[i].longitude);
    marker = new google.maps.Marker({
         map:map,                                                           
         position: latLng, 
         icon: 'http://chart.apis.google.com/chart?chst=d_map_spin&chld=1|0|FF0000|12|_|'+client[response.trans[i].location_id], 
         animation: google.maps.Animation.DROP
   });
   markers.push(marker);
}

for(var i=0;i我相信您可以在将标记添加到地图之前聚合列表的信息。也就是说

var location = {};

for (var i = 0; i < response.trans.length; i++) {
  location[response.trans[i].location_id] += 1;
}

for (location_id in location) {
  if (location.hasOwnProperty(location_id)) {
    /* add marker */
  }
}
var位置={};
对于(变量i=0;i
我相信在将标记添加到地图之前,您可以聚合列表的信息。也就是说

var location = {};

for (var i = 0; i < response.trans.length; i++) {
  location[response.trans[i].location_id] += 1;
}

for (location_id in location) {
  if (location.hasOwnProperty(location_id)) {
    /* add marker */
  }
}
var位置={};
对于(变量i=0;i
如果它们位于同一确切位置,您可以尝试:

for(i=0; i < markers.length; i++) {
    if(markers[i].getPosition().lat() == response.trans[i].latitude && markers[i].getPosition().lng() == response.trans[i].longitude)
        markers[i].icon = "number11.png"
}
for(i=0;i
如果它们位于同一确切位置,您可以尝试:

for(i=0; i < markers.length; i++) {
    if(markers[i].getPosition().lat() == response.trans[i].latitude && markers[i].getPosition().lng() == response.trans[i].longitude)
        markers[i].icon = "number11.png"
}
for(i=0;i
不要使用未记录的属性(.ib.jb),它们会更改并意外地破坏代码[使用记录的方式访问它们:.lat()和.lng()]。此外,浮点相等不是一个好的测试。谢谢,我正在一个项目中使用它,这将帮助我。这将我推向正确的方向!谢谢!我将用更新的代码更新我的问题。不要使用未记录的属性(.ib.jb),它们将更改,并意外地破坏您的代码[使用有文档记录的方式访问它们:.lat()和.lng()]。此外,浮点相等不是一个好的测试。谢谢,我目前正在一个项目中使用它,这将帮助我。这将我推向正确的方向!谢谢!我将用更新的代码更新我的问题。