2015-02-06 61 views
2

我通過單擊webapp中的按鈕來創建不同大小的多邊形。將新創建的多邊形轉換爲小冊子中的GeoJSON

我還在對象內添加了一些值作爲嵌套對象,如{properties:{status:'active'}}。然後我運行多邊形的toGeoJSON()方法,並獲得一個包含propertiesgeometry對象的對象。 properties對象爲空。

我的問題是如何將我的值添加到對象中,以便它們在轉換時傳遞給GeoJSON對象?

回答

4

當爲其創建GeoJSON對象時,Polygon上的任何「額外」數據都將丟失。只有多邊形的座標纔會轉移到GeoJSON對象中。請參閱Leaflet源中的layer/GeoJSON.js中的第213和171行。在第171行中,您可以看到創建了一個新對象,並且該對象具有名爲「properties」的屬性,但該屬性與Polygon上的任何屬性(稱爲「屬性」)無關。

創建GeoJSON對象後,您可以通過執行以下操作將屬性從Polygon複製到GeoJSON對象上的屬性對象中。但是 - 我不確定GeoJSON規範中的「屬性」對象具體含義是什麼,如果有的話。

var json = polygon.toGeoJSON(); 
L.extend(json.properties, polygon.properties) 
0

InPursuits答案肯定爲我工作...

var rect = L.rectangle(bounds).toGeoJSON(); 
L.extend(rect.properties, { 
    itemIndex: v.itemIndex 
});