Google Map - добавить маркер между 2 маркерами - PullRequest
0 голосов
/ 15 июля 2011

для моего веб-приложения, мне нужно разрешить добавить маркер между 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 голосов
/ 15 июля 2011

Используйте функции slice и 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);    
0 голосов
/ 15 июля 2011

Я думаю, что вы ищете функцию array.splice () ( пример ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...