在传单中加载时向地理信息功能添加ID

时间:2015-01-25 22:25:31

标签: leaflet

我正在将一个geojson图层加载到一个传单地图中。我想根据geojson中存储的属性设置svg元素的ID。

我假设我使用了onEachFeature函数,但我无法在解析时看到如何设置该功能的ID。

如何指定元素的ID?

1 个答案:

答案 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