Разрушанные маркеры на картах Google с MarkerClusterer
Вопрос
Я использую Gmaps v3 с MarkerClusterer от http://code.google.com/p/gmaps-utility-library-dev/
Маркеры, отображаемые на карте, определяются пользователем и часто разрушаются, поэтому, независимо от того, сколько вы увеличиваете, кластерщик всегда показывает, что в одном месте есть несколько элементов. Но пользователь должен быть в состоянии щелкнуть каждый отдельный маркер, чтобы увидеть окно Info. Вы знаете, как справиться с этим?
Я попробовал немного рандомизировать местоположение на сервере, но случайный недостаточно случайный, и маркеры продолжают разрушаться, но не так часто.
Решение
Ответьте на комментарий OP в моем предыдущем ответе, так как он не вписывался в поле для комментариев:
Это мешает кластеру группировать маркеры, но когда координаты идентичны, все маркеры остаются на вершине друг друга. Вы знаете обходной путь для этого?
Я думаю, что это ожидаемое поведение с Google Maps - если маркеры имеют точно та же лат / СПГ, то вы получаете маркеры друг на друга.
Один из возможных ресурсов является добавление только первого маркера на карту, а затем, когда вы пытаетесь добавить еще один маркер в уже определенный NAT / LNG (отслеживать их с помощью карты JS), вы можете добавить счет (или создать Массив информации о маркеров) и обновить текст InsoWindow с этой информацией. Например, щелкнув на маркер, затем покажут innovindow, говоря, что в этом месте есть 15 "вещей", а затем перечислите их имена и атрибуты в списке под ним ...
Другая возможность состоит в том, чтобы «развернуть» последующие маркеры, добавив случайное число к концу десятичного лата/СПГ. Таким образом, когда пользователь увеличивает все возможное, чтобы маркеры были немного компенсированы. Этот вариант кажется немного "грязно", хотя.
Другие советы
У меня была эта проблема, и я решил ее, определив свойство конструктора «Maxzoom», которое было ниже, чем Maxzoom для карты Google:
var markerCluster = new MarkerClusterer(map, markers, { maxZoom: 18 });
При добавлении маркера вы можете проверить, есть ли другие маркеры в том же месте, и в InfoWindow вы можете отметить, что есть несколько маркеров.