У меня есть приложение с большим количеством маркеров (отсюда и желание использовать Marker Clusterer), но я хочу разрешить пользователю перемещать маркер. К сожалению, маркер исчезает после его перемещения и уменьшения/увеличения масштаба. Именно эти шаги воспроизводят проблему:
- Создайте все маркеры/добавьте их в объект кластеризатора маркеров.
- Увеличьте масштаб, чтобы увидеть отдельный маркер.
- Переместите маркер в новое место.
- Уменьшайте масштаб до тех пор, пока не начнется кластеризация (и сгруппирует перемещенный маркер хотя бы с одним другим маркером).
- Увеличьте масштаб, чтобы увидеть маркер, который был перемещен.
Я ожидал, что маркер все еще будет там после увеличения масштаба, но это не так. После шага 3 маркер остается видимым — он исчезает только после уменьшения масштаба, а затем обратно. Кластеризация по-прежнему считает маркер правильно (он появляется в общем количестве кластера при уменьшении масштаба), но маркер больше никогда не появляется.
Я пытался использовать последние версии MarkerClusterer и MarkerClustererPlus, и я имею дело с v3 API карт. Кроме того, у меня есть прослушиватель событий, который вызывает repaint
в кластере после появления маркера dragend
(думая, что repaint
приведет к правильному размещению маркера).
[Изменить] Минимальный пример (основанный на примере Marker Clusterer), демонстрирующий проблему, можно найти здесь. Единственное, что изменилось по сравнению с этим примером — это строки, включающие библиотеки javascript (сделанные абсолютными ссылками) и добавляющие draggable: true
к параметрам маркера. Выполнение вышеуказанных 5 шагов должно воспроизвести проблему.