2013-02-27 21 views
7

Şu anda üzerinde çalıştığımız bir site için bir 'arama alanı' özelliği yapıyorum. Rightmove'daki gibi biraz.Google Haritalar API'sı ile çokgende etkinlik değişiklikleri nasıl izlenir

Olay değişikliklerini bir çokgene (yeni noktaların ayarı ve var olanları değiştirme) izleme özelliğinden başka her şeyim var. Koordinatları gönderilmek üzere forma postalayabilmem gerekiyor.

editing events için Google Code belgelerini denedim. Ve her denediğimde, 'set_at' mümkün olmamak veya benim nesneyi tanımlanmamam hakkında bir mesaj alıyorum.

Biliyorum biraz yanlış değil yeni google.maps.event.addListener(thePolygon, 'set_at', function() { // grab paths for infoWindow grabPaths(thePath); });

üzerine geçirilen thePolygon değişken olduğunu varsayalım ama neden bilmiyorum. Bu küresel bir değişken. Yoksa değil mi?

Yani, soru şu ki, güncellenmiş koordinatları formumla geçirmek için poligondaki değişiklikleri nasıl izleyebilirim?

Tüm yardımlar büyük beğeni topluyor. polyline bir MVCArray değil,

var mapOptions = { 
    // options 
}; 

var map = new google.maps.Map(document.getElementById('map'), mapOptions); 

var drawingManager = new google.maps.drawing.DrawingManager({ 
    drawingMode: google.maps.drawing.OverlayType.POLYGON, 
    drawingControl: false, 
    polygonOptions: { 
    // drawing options 
    } 
}); 

drawingManager.setMap(map); 

google.maps.event.addListener(drawingManager, 'polygoncomplete', function(polygon) { 
    // complete functions 
}); 

google.maps.event.addListener(thePolygon, 'set_at', function() { 
    // complete functions 
}); 

google.maps.event.addListener(thePolygon, 'insert_at', function() { 
    // complete functions 
}); 

cevap

22

bu olaylar MVCArray için tanımlanmıştır: Burada

Şu anda var koddur. Bunun yerine, polyline'ın (bir MVCArray olan) path olaylarını gözlemlemelisiniz. Ayrıca henüz oluşturulmamış bir nesneye bir dinleyici ekleyemezsiniz.

google.maps.event.addListener(drawingManager,'polygoncomplete',function(polygon) { 

    // complete functions 

    google.maps.event.addListener(thePath, 'set_at', function() { 
    // complete functions 
    }); 

    google.maps.event.addListener(thePath, 'insert_at', function() { 
    // complete functions 
    }); 

}); 
+0

Ha ha, bir tedavi çalışır: Eğer polygoncomplete-callback'inde içindeki dinleyicileri eklemeniz gerekir böylece çokgen, polygoncomplete önce kullanılamaz. Çok yakındım ama şimdiye kadar. Yardım ettiğin için teşekkür ederim. Çok takdir edildi. Yol değiştiremediğim yol değişikliklerini kapmaktı. Yine de çok basitti. –

+0

Bkz. Http://stackoverflow.com/questions/12515748/event-after-modifying-polygon-in-google-maps-api-v3 – jjwdesign

+5

''Path' –

İlgili konular