15

Я ищу способ рецентра (фокус) карты, если маркер находится вне карты. Например, если вы нажмете на маркер, который не находится в вашем viewarea ... Маркер 1: Нью-Йорк Маркер 2: SanFransiscoAPI Карт Google v3 переадресовать карту маркеру

в V2 я делаю этот путь ... но для v3 содержитLatLng нуждается в дополнительной библиотеке и не работал для меня ... (см. мой другой пост: Google Maps v3 map.getBounds().containsLatLng is not a function) - это любой другой способ сосредоточиться на позиции маркера?

обновление:

 if ((!map.getBounds().contains(marker.getPosition())) & (showAllCategoryElements == 0)) { 
     var newCenterPointLng = (map.getBounds().getCenter().lng() + marker.getPosition().lng())/2; 
     var newCenterPointLat = (map.getBounds().getCenter().lat() + marker.getPosition().lat())/2; 

     map.panTo(marker.getPosition()); 
     //map.setCenter(new google.maps.LatLng(newCenterPointLat, newCenterPointLng)); 

     if (!map.getBounds().contains(marker.getPosition())){ 
      map.zoomOut(); 
     } 
    } 
+0

Вы запрашиваете код, который работает в версии 3 или версии 2? У вас есть оба тега и код версии 2. –

ответ

38

Метод вы хотите содержит(), не containsLatLng(). map.getBounds().contains(marker.getPosition())

Вы можете использовать либо setCenter() или пантомиму() методу отображения центровки на позиции маркеров: map.setCenter(marker.getPosition()) или map.panTo(marker.getPosition())

Так что, если я правильно понял, что вы пытаетесь сделать, это должно выглядеть например:

if ((!map.getBounds().contains(marker.getPosition())) && (showAllCategoryElements == 0)) { //Note the double & 
    map.setCenter(marker.getPosition()); 
    //OR map.panTo(marker.getPosition()); 
} 
+0

с вашими советами я изменил его (см. Верхнюю часть моего сообщения) ... 'map.setCenter' не требуется, если я использую' PanTo'? Теперь у меня есть «a undefined» в «http://maps.gstatic.com/cat_js/intl/de_de/mapfiles/api-3/9/2/%7Bmain,geometry%7D.js файл» – Jim

+0

Обновленный код выше. Возможно, вам придется опубликовать больше кода, если вы продолжите получать сообщение об ошибке. – puckhead

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