Как определить, когда пользователь находится на максимальном уровне масштабирования?(Google Maps v3) - PullRequest
2 голосов
/ 22 сентября 2011

Я собираю свои маркеры вместе. Когда пользователь приближается к самому высокому уровню, мне нужно разбить кластеры, чтобы пользователь мог просматривать информацию для отдельных элементов. Учитывая, что количество уровней масштабирования различается в зависимости от типа используемой карты, и что maxZoom, возможно, было явно установлено в mapOptions, как я могу определить, когда пользователь не может увеличить масштаб дальше (то есть ползунок масштабирования находится в своей самой высокой точке )? Есть ли просто номер уровня масштабирования, который я могу использовать для этого (возможно, 21)? Или эта числовая переменная зависит от разных сценариев? Какими будут эти сценарии?

Мне не нужно знать это значение до увеличения: только когда пользователь ДОБИРАЕТСЯ до максимального уровня.

Ответы [ 3 ]

6 голосов
/ 22 сентября 2011

Google Maps API имеет сервис для этого, вы можете использовать его так:

(new google.maps.MaxZoomService()).getMaxZoomAtLatLng(map.getCenter(), function(response) {
    if (response.status != google.maps.MaxZoomStatus.OK) {
      alert("Error in MaxZoomService");
      return;
    } else {
      if (map.getZoom() >= response.zoom) {
          //do sth with your clusterer
          //probably markerClusterer.setMaxZoom(response.zoom - 1);
          //or markerClusterer.setMap(null);
      }
    }
});

РЕДАКТИРОВАТЬ: есть также решение, которое я нашел в markerclusterer.js (из библиотеки утилит Google Maps), но недавно оно стало вызывать ошибки, и я не уверен, что оно надежное:

map.mapTypes[map.getMapTypeId()].maxZoom;
0 голосов
/ 22 сентября 2011

Большинство карт городов увеличены до 18, но некоторые выходят за рамки этого, и есть отдельные виды спутников до 23 уровня.

0 голосов
/ 22 сентября 2011

Из быстрого теста видно, что z = 19 является самым увеличенным, прежде чем вы перейдете на уровень просмотра улиц.Протестировано в нескольких странах, оно не изменилось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...