我正试图将PolyLineDecorator与传单一起使用,但遇到了一个障碍,在基于属性数据象征路径/线时,我甚至无法放弃PolyLineDecurator。
var polyline = L.polyline([...]).addTo(map);
var decorator = L.polylineDecorator(polyline, {
patterns: [
// defines a pattern of 10px-wide dashes, repeated every 20px on the line
{offset: 0, repeat: 20, symbol: L.Symbol.dash({pixelSize: 10})}
]
}).addTo(map);
不过,对我来说效果很好,我在一个GeoJSON文件中有20行,我想根据JSON文件中的Name字段对这些行进行符号化。我似乎在任何地方都找不到涵盖这方面的例子。有人能给我指一下相关的例子或文件吗?我觉得必须有一种方法来将每一行导出为自己的GeoJSON文件。
谢谢你的帮助。
您应该使用GeoJson onEachFeature()
方法。让我们假设您的geoJson
结构是:
var geojsonFeatures = [
{
"type": "Feature",
"properties": {
"name": "Trail 1",
},
"geometry": {
"type": "Point",
"coordinates": [-104.99404, 39.75621]
}
},
{
"type": "Feature",
"properties": {
"name": "Trail 2",
},
"geometry": {
"type": "Point",
"coordinates": [-104.99404, 39.75621]
}
}
];
您可以通过feature.properties.name
:访问功能的名称属性
L.geoJson(geojsonFeature, {
onEachFeature: function (feature, layer) {
if (feature.properties.name === '') {
L.polylineDecorator(layer, {
patterns: [
{offset: 0, repeat: 20, symbol: L.Symbol.dash({pixelSize: 10})}
]
}).addTo(map);
} else {
L.polylineDecorator(layer, {
patterns: [
{offset: 0, repeat: 30, symbol: L.Symbol.dash({pixelSize: 20})}
]
}).addTo(map);
}
})
})