在传单中将新创建的多边形转换为 GeoJSON
Convert a newly created polygon to GeoJSON in Leaflet
我通过单击我的网络应用程序中的按钮来创建不同大小的多边形。
我还在对象内部添加了一些值作为嵌套对象,例如 {properties:{status:'active'}}
。然后我使用多边形的 运行 toGeoJSON()
方法并得到一个带有 properties
和 geometry
对象的对象。 properties
对象为空。
我的问题是如何将我的值添加到对象中,以便它们在转换时传递给 GeoJSON 对象?
为多边形创建 GeoJSON 对象时,多边形上的任何 "extra" 数据都将丢失。只有多边形的坐标会被传递到 GeoJSON 对象中。请参阅 Leaflet 源代码中 layer/GeoJSON.js 中的第 213 和 171 行。在第 171 行,您可以看到创建了一个新对象,该对象具有一个名为 "properties" 的属性,但该属性与您的多边形上名为 "properties" 的任何属性无关。
创建 GeoJSON 对象后,您可以通过执行以下操作将多边形中的属性复制到 GeoJSON 对象的属性对象中。但是 - 我不确定 "properties" 对象在 GeoJSON 规范中的具体含义(如果有的话)。
var json = polygon.toGeoJSON();
L.extend(json.properties, polygon.properties)
InPursuits 的答案对我来说绝对有用...
var rect = L.rectangle(bounds).toGeoJSON();
L.extend(rect.properties, {
itemIndex: v.itemIndex
});
我通过单击我的网络应用程序中的按钮来创建不同大小的多边形。
我还在对象内部添加了一些值作为嵌套对象,例如 {properties:{status:'active'}}
。然后我使用多边形的 运行 toGeoJSON()
方法并得到一个带有 properties
和 geometry
对象的对象。 properties
对象为空。
我的问题是如何将我的值添加到对象中,以便它们在转换时传递给 GeoJSON 对象?
为多边形创建 GeoJSON 对象时,多边形上的任何 "extra" 数据都将丢失。只有多边形的坐标会被传递到 GeoJSON 对象中。请参阅 Leaflet 源代码中 layer/GeoJSON.js 中的第 213 和 171 行。在第 171 行,您可以看到创建了一个新对象,该对象具有一个名为 "properties" 的属性,但该属性与您的多边形上名为 "properties" 的任何属性无关。
创建 GeoJSON 对象后,您可以通过执行以下操作将多边形中的属性复制到 GeoJSON 对象的属性对象中。但是 - 我不确定 "properties" 对象在 GeoJSON 规范中的具体含义(如果有的话)。
var json = polygon.toGeoJSON();
L.extend(json.properties, polygon.properties)
InPursuits 的答案对我来说绝对有用...
var rect = L.rectangle(bounds).toGeoJSON();
L.extend(rect.properties, {
itemIndex: v.itemIndex
});