我无法使用Leaflet(0.7.7)/Leaflet.Draw(latest)将Layer属性转换为GEOJson对象的属性。我的工作流程是:
1创建 map: var map = L.map('#map', options);
2创建一个功能组: features= new L.FeatureGroup();
3添加到传单 map: map.addLayer(features);
4关于该draw:created
事件,我正在捕获e.layer
并添加一堆属性:
var layer = e.layer;
layer.properties = { Title: 'Hello' };
features.addLayer(layer);
geo_features = features.toGeoJSON();
但是,我geo_features
在每个功能中始终具有空的属性属性,我无法弄清楚!
iH8的最初答案几乎是正确的。
要指定将显示在矢量层的GeoJSON导出中的属性(即通过其.toGeoJSON()
方法),你必须填充其feature.type
和feature.properties
成员:
var myVectorLayer = L.rectangle(...) // whatever
var feature = myVectorLayer.feature = myVectorLayer.feature || {};
feature.type = "Feature";
feature.properties = feature.properties || {};
feature.properties["Foo"] = "Bar";
现在myVectorLayer.toGeoJSON()
返回一个有效的GeoJSON要素对象,表示为:
{
"type": "Feature",
"properties": {
"Foo": "Bar"
// More properties that may be pre-filled.
},
"geometry": // The vector geometry
}