2013-02-19 25 views
5

Bir polyline ve poligonun latince koordinatlarını almaya çalışıyorum. Her iki nesnenin çizimini tamamladıktan sonra, latlng'i bir veritabanında saklamak istiyorum, ancak şimdilik sadece lattag'ı bir textarea'da göstermeye çalışıyorum. Bunu işaretleyiciler, dikdörtgenler ve daireler için yeterince kolay yaptım, ancak çokgenler ve çokgenler için terminoloji beni şaşırtıyor. Çizimi tamamladığımda, bir addDomListener (drawingManager, 'polygoncomplete', ...) 'ı kullanmak için poligonlar kullanın ve çizdiğim tüm çokgenler boyunca yineleyin. Her bir çokgen için ben kendi coord dizisi boyunca yineliyorum. ve Google dokümanları sayfasındaki Bermuda üçgeni örnek çalıştı. Bermuda Example Ben belgeleri defalarca üzerinde okudum ve sadece cant i eksik ben. Herhangi bir yardım takdir görüyoruz.getpaths() çokgenler google maps api

//Save polygons data to text area 
       var polygons = []; 

       google.maps.event.addDomListener(drawingManager, 'polygoncomplete', function(polygon) { 
        polygons.push(polygon); 
       }); 

       google.maps.event.addDomListener(savebutton, 'click', function() { 
        document.getElementById("savedatapolygon").value = ""; 
        for (var i = 0; i < polygons.length; i++) { 
         var polygonBounds = polygons[i].getPath(); 
         var xy; 
         // Iterate over the polygonBounds vertices. 
         for (var i = 0; i < polygonBounds.length; i++) { 
          xy = polygonBounds.getAt(i); 
          contentString += '<br>' + 'Coordinate: ' + i + '<br>' + xy.lat() +',' + xy.lng(); 
         } 
         document.getElementById("savedatapolygon").value += "polygon("; 
         document.getElementById("savedatapolygon").value += contentString; 
         document.getElementById("savedatapolygon").value += ")"; 

        } 
     }); 
+0

Hangi javascript hataları alırsınız? [Bu örnek] (http://www.geocodezip.com/blitz-gmap-editor/test5.html) size yardımcı olabilir, tüm nesneleri DrawingManager'dan JSON veya KML olarak dışa aktarır. – geocodezip

+0

Mükemmel! Bu bana çok zaman kazandıracak. İşten beri textpad kullanıyordum çünkü tüm bunlar bana ulaşabiliyor ve herhangi bir şey indiremiyorum bu yüzden herhangi bir hataları takip edemiyorum:/ – ddalbus

+0

Çoğu tarayıcıda hatalar bildiren bir javascript konsolu var, bir hata ayıklayıcı ile daha basittir, ancak rapor edilen hatalar bazen ihtiyacınız olan her şeydir. – geocodezip

cevap

16

Google Maps Polygon sınıf bir MVCArray döndürür İçinde döngü oluşturmak için MVCArray'un forEach yöntemini kullanmanız gerekir

var polygonBounds = polygons[i].getPath(); 
// Iterate over the polygonBounds vertices. 
polygonBounds.forEach(function(xy, i) { 
    contentString += '<br>' + 'Coordinate: ' + i + '<br>' + xy.lat() +',' + xy.lng(); 
}); 
document.getElementById("savedatapolygon").value += "polygon("; 
document.getElementById("savedatapolygon").value += contentString; 
document.getElementById("savedatapolygon").value += ")";