2015-02-06 50 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 
});