我正在将一个geojson图层加载到一个传单地图中。我想根据geojson中存储的属性设置svg元素的ID。
我假设我使用了onEachFeature函数,但我无法在解析时看到如何设置该功能的ID。
如何指定元素的ID?
答案 0 :(得分:3)
可以但不能使用onEachFeature
的{{1}}方法。这是因为以下原因:
L.GeoJSON
但是,如果您使用var geoJsonLayer = L.geoJson(null, {
onEachFeature: function (feature, layer) {
// At this point 'layer._path' exists in the layer object
// but it will return as 'undefined' so this is of no use
// So the following doesn't work:
layer._path.id = 'feature-' + feature.properties.id
}
});
中的eachLayer
方法,L.GeoJSON
将返回实际的SVG路径元素,但只有在将GeoJSON图层添加到地图后才会执行此操作。如果您在将图层添加到地图之前执行此操作layer._path
仍将返回layer._path
。所以试试这个:
undefined
以下是关于Plunker的工作示例:http://plnkr.co/edit/7IPHrO?p=preview