как я могу изменить параметры маркера без использования marker = new google.maps.Marker - PullRequest
3 голосов
/ 26 марта 2012

Я нашел функцию ниже, которая создает только один маркер - это то, что я хочу. Но как я могу изменить параметры маркера, например, html - без создания нового?
то есть приведенный ниже код будет перемещать существующий маркер с помощью setPosition, но что, если я также захочу изменить его HTML и заголовок ....

маркер var;

function placeMarker(location) {
if ( marker ) {
marker.setPosition(location);
} else {
marker = new google.maps.Marker({
  position: location,
  map: map
});
}
}

Ответы [ 3 ]

3 голосов
/ 26 марта 2012

HTML - это содержимое информационного окна, связанного с событием щелчка маркера.Существует метод infoWindow.setContent ().Я бы расширил маркер, чтобы он содержал html-контент при его создании, а затем обновил его, где вы сбросите позицию, заголовок и т. Д. Затем вам нужно написать собственный обработчик события 'click', чтобы использовать что-то для одного глобального информационного окна.1001 *

google.maps.event.addListener(marker, 'click', function() {
                infoWindow.setContent(marker.html);
                infowindow.open(map,marker);
            });
1 голос
/ 26 марта 2012

Maker - объект MVCObject, и этот класс имеет set method

marker.set(property, New_Value);

Если вы хотите изменить более одного свойства, вы можете использовать setOptions метод

1 голос
/ 26 марта 2012

свойства объекта-маркера в основном имеют соответствующие методы get и set, , как подробно описано в документации

Например, у Title есть метод get_Title () и метод set_Title (), который вы можете использовать следующим образом ...

myMarker.setTitle('my new title');
...