15

Harita dışında bir işaretleyici varsa haritayı yeniden açmak (odaklamak) için bir yol arıyorum. Örneğin, görüntülemenizde olmayan bir işaretçiyi tıklatırsanız ... İşaretleyici 1: New York İşaretçisi 2: SanFransiscoGoogle Maps API v3 haritayı bir işaretleyiciye yeniden işaretleyin

V2'de bu şekilde yaparım ... ancak v3 için includesLatLng öğesinin fazladan bir kitaplığa ihtiyacı vardır. Benim için çalışmadı ... (diğer yazıma bakın: Google Maps v3 map.getBounds().containsLatLng is not a function) onlar bir işaretleyici pozisyonuna odaklanmak için başka bir yol?

güncelleme: İstediğiniz yöntemdir

 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

Sürüm 3 veya Sürüm 2'de çalışan bir kod ister misiniz? İki etiketiniz ve Sürüm 2 kodunuz var. –

cevap

38

içerir(), containsLatLng değil(). map.getBounds().contains(marker.getPosition())

Sen setCenter() veya panto() işaretleyici konumu üzerinde ortalamak için haritanın yöntemleri ya kullanabilirsiniz: Yani Ne yapmaya çalışıyorsunuz doğru anlamak eğer map.setCenter(marker.getPosition()) veya map.panTo(marker.getPosition())

, bu görünmelidir gibi:

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

İpuçlarınızla değiştirdim (mesajımın başına bakınız) ... 'PanTo' kullanıyorum' map.setCenter' gerekli değil mi? Şimdi "http://maps.gstatic.com/cat_js/intl/de_de/mapfiles/api-3/9/2/%7Bmain,geometry%7D.js dosyasında" tanımlanmamış "bir tane var" – Jim

+0

Güncelleme kodu yukarıdaki. Bir hata almaya devam ederseniz daha fazla kod göndermeniz gerekebilir. – puckhead

İlgili konular