2010-07-19 21 views
5

Google Haritalar API'sı v3 kullanarak bir poligonun sınırlayıcı kutusunu bulmanın kolay yolları var mı? Veri eklendiğinde ve haritadan kaldırıldığında sınırları güncellemem gereken bir proje üzerinde çalışıyorum. Bd.extend (point) ile bd'nin bağlı nesne olduğu ve noktanın bir LatLng nesnesi olduğu oldukça kolaydır. Sorun, verileri kaldırmaya başladığımda sınırları değiştirmek ve tekrar yakınlaştırmak isterim. Bunu yapabilecek yerleşik işlevler var mı, yoksa kendim için bir şeyler yazmam gerekecek mi?Bir polisin sınırlarını Google Haritalar API'sında kullanma v3

cevap

4

v2 API, tam olarak bunu yapmak için GPolyline.getBounds() yöntemine sahipti. Ancak, v3 API'da eşdeğer bir yöntem olmadığı anlaşılmaktadır.

Nesne durumu değiştiğinde bildirilmek üzere PolylineMVCObject ürününüzün changed özelliğini geçersiz kılarak bu işlemi yapmak isteyebilirsiniz. Ardından, önerdiğiniz LatLngBounds.extend() yöntemini kullanarak sınırlama kutusunu hesaplayabilirsiniz.

Bence Google, API'yi hafif tutmak için bu yöntemleri v3 API'sinden kasıtlı olarak çıkardı. Benzer bir ihracı discussed a couple of days ago on Stack Overflow, GMap2.clearOverlays() yöntemidir.

7

Oenpelli'nin çözümünü genişletmek, V2 API'sinden işlevi yeniden oluşturmak için kullanacağım genişletilmiş getBounds() yöntemidir. Bu projemde mükemmel çalışıyor.

google.maps.Polyline.prototype.getBounds = function() { 
    var bounds = new google.maps.LatLngBounds(); 
    this.getPath().forEach(function(item, index) { 
     bounds.extend(new google.maps.LatLng(item.lat(), item.lng())); 
    }); 
    return bounds; 
}; 

Bu ekin eklenmesi gerektiğini unutmayın API javascript yüklendikten sonra, init yönteminizde.

İlgili konular