Google Maps API v3 — разные маркеры/метки на разных уровнях масштабирования

Мне было интересно, возможно ли, что у Google есть функция просмотра разных маркеров на разных уровнях масштабирования.

Например, при уровне масштабирования 1 я хочу, чтобы над Китаем был один маркер с надписью «5». И когда пользователь увеличивает масштаб, скажем, на уровне масштабирования 4, я хочу, чтобы предыдущий маркер и метка исчезли. И я хочу иметь 5 новых маркеров/меток, каждая из которых находится в другом городе Китая, и на каждой будет написано «1». Таким образом, Китай будет называть число, и все города в Китае будут называть числа в сумме с числом Китая.

Ключевая концепция, которую я пытаюсь понять, заключается в том, как скрыть маркеры и метки на основе уровней масштабирования. Ограничением для меня является то, что в настоящее время я живу в Китае, где Google подвергается цензуре, поэтому многие онлайн-документы подвергаются цензуре для меня, включая многие документы Google.

Вот мой код на данный момент



  
    
    TM China 
    
    
    
  
  
    

РЕДАКТИРОВАТЬ

Я пытался поэкспериментировать с MarkerManager, но не могу заставить маркеры успешно создаваться на разных уровнях масштабирования.

Сначала я изменил уровень масштабирования по умолчанию на 1, а затем изменил свой код на то, что показано ниже.

function initialize() {
    map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
   /* for (i = 0; i < locations.length; i++) { 
    var marker = new MarkerWithLabel({
      position: new google.maps.LatLng(locations[i][1], locations[i][2]),
      draggable: false,
      map: map,
      labelContent: locations[i][3],
      labelAnchor: new google.maps.Point(30, 0),
      labelClass: "labels", // the CSS class for the label
      labelStyle: {opacity: 0.75}

    });
    } */
    var listener = google.maps.event.addListener(map, 'bounds_changed', function(){
        setupMarkers();
        google.maps.event.removeListener(listener);
    });
    }

function createCityMarkers() {


    for (i = 0; i < locations.length; i++) { 
        var marker = new MarkerWithLabel({
          position: new google.maps.LatLng(locations[i][1], locations[i][2]),
          draggable: false,
          map: map,
          labelContent: locations[i][3],
          labelAnchor: new google.maps.Point(30, 0),
          labelClass: "labels", // the CSS class for the label
          labelStyle: {opacity: 0.75}

        });
        }
}

function setupMarkers() {
    mgr = new MarkerManager(map);

    google.maps.event.addListener(mgr, 'loaded', function(){
          mgr.addMarkers(createCityMarkers(), 4);

          mgr.refresh();
      });
}

Я также пытался применить исходный код этой ссылки, но ничего не получается. И когда я копирую исходный код прямо на свой компьютер и заменяю все значки маркерами, маркеры все равно не появляются. Я не могу понять, как заставить маркеры появляться с помощью диспетчера маркеров. http://google-maps-utility-library-v3.googlecode.com/svn/tags/markermanager/1.0/examples/weather_map.html

9
задан krikara 15 June 2012 в 08:06
поделиться