Warm tip: This article is reproduced from serverfault.com, please click

leaflet.draw-将FeatureGroup转换为GeoJson时,Leaflet Draw不采用属性

(leaflet.draw - Leaflet Draw not taking properties when converting FeatureGroup to GeoJson)

发布于 2016-03-02 23:14:26

我无法使用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在每个功能中始终具有空的属性属性,我无法弄清楚!

Questioner
Chronix3
Viewed
0
2017-05-23 20:33:40

iH8的最初答案几乎是正确的。

要指定将显示在矢量层的GeoJSON导出中的属性(即通过其.toGeoJSON()方法),你必须填充其feature.typefeature.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
}