2013-02-19 3 views
5

Я пытаюсь получить координаты latlng как полилинии, так и полигона. После того, как я завершу чертеж любого объекта, я хотел бы сохранить latlng в базе данных, но пока я просто пытаюсь показать latlng в текстовом поле. Я сделал это достаточно легко для маркеров, прямоугольников и кругов, но терминология для полилиний и полигонов меня озадачивает. Когда я завершаю чертеж, я использую addDomListener (drawingManager, «polygoncomplete», ... для полиномов, а затем перебираю все полигоны, которые я нарисовал. Для каждого многоугольника я затем повторяю его массив коордов. Я искал эту базу данных форумов и попытался пример Бермудского треугольника на странице документации Google. Bermuda Example Я прочитал над документацией много раз и просто не могу видеть, что я не хватает. Любая помощь приветствуется.getpaths() polygons 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

Какие ошибки javascript вы получаете? [Этот пример] (http://www.geocodezip.com/blitz-gmap-editor/test5.html) может помочь вам, он экспортирует все объекты из DrawingManager как JSON или KML. – geocodezip

+0

безупречный! это спасет меня много времени. я использовал текстовую панель на работе, потому что это все, что у меня есть для меня, и я не могу загрузить что-нибудь еще, поэтому я не могу отслеживать любые ошибки:/ – ddalbus

+0

Большинство браузеров имеют консоль javascript, которая сообщает об ошибках, проще с отладчиком, но, видя сообщаемые ошибки иногда все, что вам нужно. – geocodezip

ответ

16

Google Maps Polygon класс возвращает MVCArray Вам необходимо использовать метод forEachMVCArray для его прокрутки.

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 += ")";