Google Maps v3 Изменение карты маркера - PullRequest
0 голосов
/ 16 мая 2011

Я хочу менять карту Маркер на лету.В частности, у меня есть три коллекции разных маркеров, поэтому я строю их все с неопределенной картой, а затем пытаюсь установить их свойство карты при переключении между коллекциями.Он не работает - маркеры отображаются только при передаче карты в конструкторе.

//Build a new marker with no map
var marker = new google.maps.Marker({
    position: pos,
    title: el.name + " #" + el.location_id,
    map: null
});
markers[el.location_id] = marker;

//Later, when displaying
$.each(markers, function(i, marker){
    marker.map = map;
});
//Marker doesn't show up.

Далее, когда я создаю маркер, а затем удаляю его карту, он все равно отображает:

var marker = new google.maps.Marker({
    position: pos,
    title: el.name + " #" + el.location_id,
    map: map
});
marker.map = null;
//Marker is still on the map...

Ответы [ 2 ]

0 голосов
/ 16 мая 2011

Вам необходимо использовать метод Маркера setMap (), так что в вашем случае

marker.setMap(map)

Чтобы удалить маркер:

marker.setMap(null)
0 голосов
/ 16 мая 2011

Вы хотите использовать метод установки карты объекта Маркер, т. Е .:

$.each(markers, function(i, marker){
    marker.setMap(map);
});

Если для карты задано значение NULL, она будет удалена с любой карты, на которой отображается объект Маркер.

См. методы в документации v3.

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