Google Maps Api V3: ограничение MarkerClusterer на определенных уровнях масштабирования

У меня есть MarkerClusterer, который я хочу отключить, если уровень масштабирования ниже порогового значения.

Пример: Уровень масштабирования равен 10, кластеры видны. Порог равен 5, поэтому, если пользователь уменьшит масштаб, чтобы увидеть мир, все маркеры не должны отображаться. Однако я не хочу очищать маркеры, потому что они должны отображаться, если пользователь снова увеличивает масштаб.


person Alp    schedule 21.05.2011    source источник


Ответы (1)


Если вы не хотите очищать маркеры, вы можете вместо этого использовать setMap(), чтобы установить карту, которой назначен MarkerCluster, на карту, отличную от той, которую просматривает пользователь.

setMap() принимает null в качестве допустимого параметра.

Другой вариант — сделать какой-нибудь ужасный хак, например создать вторую карту, невидимую для пользователя, и назначить этой карте MarkerCluster. Он не выиграет ни одного соревнования по программированию, но будет работать.

Затем, когда вы вернетесь к соответствующему уровню масштабирования, вы можете снова использовать setMap(), чтобы вернуть MarkerCluster на карту.

Вы можете использовать событие zoom_changed, чтобы определить, когда масштаб карты изменился, и соответствующим образом вызвать setMap().

Надеюсь, это все, что вам нужно, чтобы это сделать, но если нет, опубликуйте часть своего кода, и, возможно, мы сможем уточнить, как именно изменить его для достижения этой цели.

person Trott    schedule 21.05.2011