2015-11-20 5 views
-1

У меня есть много карт Google на одной странице, и я хочу, чтобы setCenter только на одной карте с помощью селектора jQuery. Я могу установить центр одной карты, как этотПолучить объект определенного элемента

google.maps.event.addListenerOnce(map, "idle", function() { 
    this.setCenter(latlng); 
}); 

Но как я установил центр для одной карты с помощью селектора JQuery, как так

$(".google-map-1").each(function() { 
    $(this).setCenter(latlng); 
}); 

Это, очевидно, не работает, и это потому, что Я применяю функцию setCenter() к элементу карты, а не к объекту карты элементов.

Как я могу получить объект карты определенного элемента, чтобы применить к нему setCenter() и, следовательно, сосредоточить карту Google?

ответ

1

Вы не можете получить экземпляр карты Google через DOM. Таким образом, очевидно, что нет никакого способа сделать это, используя jQuery.

Единственное, что вы можете сделать, это сохранить вашу карту после создания:

var map = new google.maps.Map(...); 

Тогда вы всегда будете в состоянии сделать:

map.setCenter(latlng); 

Назначение вновь созданного экземпляра переменной и использование этого метода является единственным способом доступа к объекту google.maps.Map.

Если у вас есть несколько карт, вы можете использовать массив, применяя setCenter в каждом конкретном случае в массиве:

var maps = []; 

maps.push(new google.maps.Map(...)); // map 1 
maps.push(new google.maps.Map(...)); // map 2 
maps.push(new google.maps.Map(...)); // map 3 

Тогда вы будете иметь возможность манипулировать с ним, как с массивом:

maps.forEach(function(map) { 
    map.setCenter(latlng); 
}); 
+0

Я попытался это, но это только заканчивается центрированиями самого последней карты на моей странице и никогда не один я wan't – guub

+0

конечно, он будет хранить последний назначенный экземпляр. Если у вас много карт, вам нужно использовать их. Я уточню свой ответ. –

+0

Это сделало это, хотя он центрирует каждую карту. Я возьму это. Спасибо – guub

Смежные вопросы