2013-03-11 6 views
0

У меня есть несколько маркеров на карте google api v3, и мне нужно регулярно менять маркеры. Я дал моим маркерам конкретные имена, такие как markerA, markerB, ... markerO.Перемещение маркера Google Maps

им пытаются запустить эту функцию, чтобы получить доступ к правому маркеру, чтобы изменить положение:

function moveMarker(marker,lat,lng) { 
    var newLatLng = new google.maps.LatLng(lat,lng); 
    marker.setPosition(newLatLng); 
} 

маркеры создаются в процессе загрузки вместе с картой.

markerA = new google.maps.Marker({position: new google.maps.LatLng(59.870131, 10.819168), map: map, icon: rodIcon, title: 'Car A'}); 
    markerB = new google.maps.Marker({position: new google.maps.LatLng(59.870131, 10.819168), map: map, icon: rodIcon, title: 'Car B'}); 
    markerC = new google.maps.Marker({position: new google.maps.LatLng(59.870131, 10.819168), map: map, icon: blaIcon, title: 'Car C'}); 

однако, кажется, что моя функция терпит неудачу, и оленья кожа распознает маркер «имя», данное в «маркера» вход функции.

вход функции аналогичен:

moveMarker(markerA,60,10) 

но маркер не двигается вообще ...

я упускаю что-то серьезно основной, или моя идея репозиционирование каждый отдельный маркер на его имя не путь?

я имею в виду, я могу жёстко

markerA.setPosition markerB.setPosition и т.д ... но это кажется слишком сложным?

+0

Использование массивов для ваших маркеров. –

ответ

0

Просто используйте .setPosition() метод. См http://jsfiddle.net/Ln2BM/1/:

google.maps.event.addListener(marker, 'click', function() { 
    var pos = this.getPosition(); 
    this.setPosition(new google.maps.LatLng(pos.lat(), pos.lng() + 1)); 
}); 

Если он не работает, то вы должны сделать другую ошибку. Довольно подозрительно звучит ваше предложение «Моя функция не работает и не распознает имя маркера, указанное в« маркерном »вводе функции«. Вероятно, у вас что-то не так в вызове функции.

Смежные вопросы