2015-04-19 14 views
7

Çokgenlerin alan ölçümlerini almaya çalışıyorum, böylece çokgenin adının yanında, haritanın yan tarafındaki bir tabloda listeleyebilirim. Başarısız bir şekilde denediğim şey buydu:Leaflet.draw kullanarak çokgen alan dizgisi nasıl elde edilir

$("#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 
} 

Bu konuda herhangi bir yardım için teşekkür ederiz!

+0

size bir kemençe ekleyebilirsiniz? – Manuel

cevap

12

Broşür ile birlikte verilen geometri yardımcı program kitaplığına erişebilirsiniz. Örnekte

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

, değişken createPolygon atanan şeydir bir denetimi kendisi ulaşmaya çalışıyorsunuz. Bunun yerine, çizilen tabakanın alanını almak istersiniz. Eğer bölgeyi alıyorsanız doğruladıktan sonra

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); 
    } 
} 

, sadece haritanın yanındaki tabloyu doldurmak değişkenlere atayabilirsiniz.

Not: alan kare olarak kabul edilecektir

+3

Lütfen buradaki geometri yardımcı program kitaplığının şu adrese başvurduğunu unutmayın: [Leaflet.draw] (https://github.com/Leaflet/Leaflet.draw). – Orienteerix

İlgili konular