Javascript 基于属性对线进行符号化

Javascript 基于属性对线进行符号化,javascript,leaflet,Javascript,Leaflet,我试图在传单中使用PolyLineDecorator,但遇到了一个障碍,在基于属性数据对路径/线进行符号化时,我甚至无法找到放弃PolyLineDecorator的方法 var polyline = L.polyline([...]).addTo(map); var decorator = L.polylineDecorator(polyline, { patterns: [ // defines a pattern of 10px-wide dashes, repeat

我试图在传单中使用PolyLineDecorator,但遇到了一个障碍,在基于属性数据对路径/线进行符号化时,我甚至无法找到放弃PolyLineDecorator的方法

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方法进行此操作。让我们假设您的
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);
    }
  })
})

谢谢你的回复。我有点困惑于如何符号化,例如,Name='Trail 1'和Name='Trail 2',我希望根据它们的名称对它们进行不同的符号化。再次感谢,对不起,我对这个很陌生。对不起,我不明白你的意思。什么是
Name='Trail 1'
Name='Trail 2'
?GeoJson特性的属性?抱歉。是的,NAME是geojson文件中的一个字段,我想根据geojson文件的NAME字段中的唯一条目对每一行进行不同的符号化。再次感谢你的帮助,我真的很感激。谢谢你拉扎列夫。你帮了我很多。我现在对这一切是如何组合起来的有了更好的理解。