谷歌地图 - 在2个标记之间添加标记

时间:2011-07-15 09:11:34

标签: javascript google-maps

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

我有一系列标记,当我创建标记时,我会按下标记。

我的问题,我没有到达我的阵列工作。我在地图上添加了正确位置的标记,在前一个和下一个之间,但是,如何在正确的索引中插入我的数组? 我在标记1和2之间添加,因此,新标记必须具有索引2,然后,旧索引2必须具有索引3 ....

` 功能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);

抱歉!

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找array.splice()函数(example)。

答案 1 :(得分:0)

使用数组切片和concat函数拆分数组并重新加入其中的新元素。

使用整数的版本:

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