Перемещенный маркер исчезает при использовании Marker Clusterer - PullRequest
2 голосов
/ 02 апреля 2012

У меня есть приложение, которое имеет большое количество маркеров (отсюда и желание использовать Marker Clusterer), но я хочу позволить пользователю перемещать маркер вокруг. К сожалению, маркер исчезает после того, как он был перемещен, и вы увеличиваете / уменьшаете масштаб. Именно эти шаги воспроизводят проблему:

  1. Создайте все маркеры / добавьте их в объект кластеризатора маркеров.
  2. Увеличьте изображение, чтобы увидеть отдельный маркер.
  3. Переместить маркер на новое место.
  4. Уменьшать масштаб, пока не включится кластеризация (и сгруппированный перемещенный маркер не менее чем с одним другим маркером)
  5. Увеличьте масштаб, чтобы увидеть перемещенный маркер.

Я ожидаю, что маркер все еще будет там после увеличения, но это не так. После шага 3 маркер остается видимым - он исчезает только после уменьшения и повторного увеличения. Кластер по-прежнему правильно считает маркер (он отображается в общем количестве кластеров при уменьшении), но маркер больше не появляется снова.

Я пытался использовать последние версии MarkerClusterer и MarkerClustererPlus, и я имею дело с v3 API карт. Кроме того, у меня есть прослушиватель событий, который вызывает repaint в кластере после появления маркера dragend (думая, что repaint приведет к правильному расположению маркера).

[ Редактировать ] Минимальный пример (основанный на примере Marker Clusterer), демонстрирующий проблему, можно найти здесь . Из в этом примере изменились только строки, включающие библиотеки javascript (сделанные абсолютные ссылки) и добавление draggable: true к параметрам маркера. Выполнение вышеуказанных 5 шагов должно воспроизвести проблему.

1 Ответ

1 голос
/ 22 апреля 2012

Это ошибка, о которой было сообщено команде API Google Maps (выпуск № 167).См. здесь

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

...