2015-04-19 16 views
7

Próbuję uzyskać wymiary obszaru wielokątów, tak aby można je było umieścić w tabeli obok mapy, obok nazwy wielokąta. Oto, co próbowałem bez powodzenia:Jak uzyskać ciąg znaków obszaru od wielokąta za pomocą ulotki.draw

$("#polygon").on("click", function(){ 
    createPolygon = new L.Draw.Polygon(map, drawControl.options.polygon); 
    createPolygon.enable(); 
} 

var polygon = new L.featureGroup(); 

map.on('draw:created', function (e) { 
    var type = e.layerType, 
     layer = e.layer; 
    if (type === 'polygon') { 
     polygons.addLayer(layer); 
    } 
    var seeArea = createPolygon._getMeasurementString(); 
    console.log(seeArea); //Returns null 
} 

Każda pomoc w tym zakresie byłaby doceniona!

+0

czy możesz dodać skrzypce? – Manuel

Odpowiedz

12

Można uzyskać dostęp do biblioteki narzędzi geometrii dostarczonej z ulotką.

var area = L.GeometryUtil.geodesicArea(layer.getLatLngs()); 

W tym przykładzie próbujesz uzyskać dostęp do samej kontrolki, do której jest przypisana zmienna createPolygon. Zamiast tego chcesz wziąć obszar warstwy, która została narysowana.

map.on('draw:created', function (e) { 
    var type = e.layerType, 
     layer = e.layer; 
    if (type === 'polygon') { 
    polygons.addLayer(layer); 
    var seeArea = L.GeometryUtil.geodesicArea(layer.getLatLngs()); 
    console.log(seeArea); 
    } 
} 

Po sprawdzeniu, czy otrzymujesz obszar, możesz po prostu przypisać go do zmiennych, które wypełniają tabelę obok mapy.

Uwaga: obszar będzie domyślnie w metrach kwadratowych

+3

Należy pamiętać, że biblioteka narzędzi geometrii odnosi się do: [Leaflet.draw] (https://github.com/Leaflet/Leaflet.draw). – Orienteerix

Powiązane problemy