Показывать маркер карты Google в зависимости от того, на каком уровне масштабирования вы находитесь

#google-maps #google-maps-api-3 #google-maps-markers

#google-карты #google-maps-api-3 #google-карты-маркеры

Вопрос:

Мне интересно, возможно ли настроить маркеры так, чтобы они были видны при выбранном уровне масштабирования для
Google Map API v3.
Я подумал, что это возможно в версии v2 API с использованием «Диспетчера маркеров», но не могу найти способ для последнего API.

Пример:
Маркер-1 -> (max_zoom: 10, min_zoom: 5) // будет отображаться при уровне масштабирования 5-10
Маркер-2 -> (max_zoom: 15, min_zoom: 10) // будет отображаться при уровне масштабирования 10-15

Поскольку я разрабатываю jQuery-плагин, я хочу использовать только оригинальный API без дополнений.

Заранее спасибо!

Ответ №1:

Предположим, что map — это объект, созданный для управления gmap, я бы сделал что-то вроде этого:

 var zoomLevel =  map.getZoom();
if (zoomLevel>=5 amp;amp; zoomLevel<=10) { 
     // call the setMarker function for the marker1
} else if (zoomLevel>10 amp;amp; zoomLevel<=15) {
     // call the setMarker function for the marker2
}
  

Может быть, вы хотите обработать событие изменения масштаба, если да, посмотрите на это: http://code.google.com/apis/maps/documentation/javascript/events.html

Комментарии:

1. Этот пользователь дал мне подсказку о том, что делать. Спасибо!

Ответ №2:

Вы можете использовать диспетчер маркеров с API v3. Примеры в http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markermanager используйте самый последний Maps API, и, похоже, они работают просто отлично.

Другие параметры, такие как кластеризация маркеров и таблицы слияния, см.http://code.google.com/apis/maps/articles/toomanymarkers.html.

Вы также можете сделать это, проверив уровень масштабирования и добавив / удалив маркеры с карты на основе этого, как предложено @lucke84 в их ответе.

Комментарии:

1. Я предположил, что вы делали исключение для Marker Manager, поскольку он специально упоминается в вопросе как жизнеспособный вариант в версии v2. Для чего это стоит: Fusion Tables не является надстройкой, а некоторые другие элементы в ссылке представляют собой общие подходы, а не конкретные библиотеки. Но суть в том, что, похоже, вы получили ответ от @lucke84, так что это отлично и удачи!