繁体   English   中英

Google Map - 在 2 个标记之间添加一个标记

[英]Google Map - Add a marker between 2 markers

对于我的 web 应用程序,我需要允许在 2 个标记之间添加一个标记。

我有一组标记,当我创建一个标记时我会推动我的标记。

我的问题,我没有到达让我的阵列工作。 我在 map 和右 position 上添加标记,在前一个和下一个之间,但是,我怎样才能在正确的索引中推入我的数组? 我在标记 1 和 2 之间添加,所以,新标记必须有索引 2,然后,旧索引 2 必须有索引 3....

` function AddMarkerAfter(i) {

  var lat = (markers[i].getPosition().lat() + markers[(i+1)].getPosition().lat()) / 2;

  var lng = (markers[i].getPosition().lng() + markers[(i+1)].getPosition().lng()) / 2;

  var marker = new google.maps.Marker({

     position: new google.maps.LatLng(lat, lng),

     map: map,

     title: 'Number ' + (i+1),

     draggable: true

}); 

    var l = markers.length;
    for (var j=i; j<l; j++)
    {
          markers[j+1] = markers[j];
    }

    markers[i] = marker;
}`    

但是,结果是灾难性的……有办法在数组中“推”吗?

谢谢 !

哦,我的上帝:我用这条简单的线解决了我的问题:

 markers.splice(i, 0, marker);

对不起 !

我认为您正在寻找 array.splice() function (示例)。

使用 arrays 切片和连接函数来拆分数组并重新加入中间的新元素。

使用整数的版本:

var arr = [1,2,4,5,6];
var startarr = arr.slice(0,2);
alert(startarr);
var endarr = arr.slice(2);
alert(endarr);
arr = startarr.concat([3], endarr);
alert(arr);    

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM