Мне было интересно, возможно ли, что у 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