Leaflet 传单多段线不使用自定义颜色显示

Leaflet 传单多段线不使用自定义颜色显示,leaflet,geojson,polyline,Leaflet,Geojson,Polyline,我在做一个项目,我在用传单。从数据库中提取的对象列表中,我当前可以显示带有自定义图标的标记。现在,我正在从数据库中获取的数据中显示多段线。使用Javascript,我得到列表并显示多段线,但它们都是蓝色的,我希望它们根据多段线的属性具有不同的颜色 var geoJsonFluxMatiere = { 'type': 'FeatureCollection', 'features': [] }; for (indexfluxMatiere = 0; indexfluxMatiere

我在做一个项目,我在用传单。从数据库中提取的对象列表中,我当前可以显示带有自定义图标的标记。现在,我正在从数据库中获取的数据中显示多段线。使用Javascript,我得到列表并显示多段线,但它们都是蓝色的,我希望它们根据多段线的属性具有不同的颜色

var geoJsonFluxMatiere = {
    'type': 'FeatureCollection',
    'features': []
};
for (indexfluxMatiere = 0; indexfluxMatiere < listeFluxMatiere.length; indexfluxMatiere++) {
    var tableauFluxMatiere = {
        type: 'Feature',
        properties: {
            'id': listeFluxMatiere[indexfluxMatiere].idFluxMatiere,
            'fluxPrimaire': listeFluxMatiere[indexfluxMatiere].fluxPrimaire
        },
        geometry: {
            'type': 'LineString',
            'coordinates': [
                [listeFluxMatiere[indexfluxMatiere].posXDepart, listeFluxMatiere[indexfluxMatiere].poxYDepart],
                [listeFluxMatiere[indexfluxMatiere].posXArrivee, listeFluxMatiere[indexfluxMatiere].posYArrivee]
            ]
        }
    }
    geoJsonFluxMatiere['features'].push(tableauFluxMatiere);
}

var layerFluxMatiere = L.geoJson(geoJsonFluxMatiere, {
    pointToLayer: function (feature, latlng) {
        if(feature.properties.fluxPrimaire == true){
            var polylineFluxMatiere = new L.polyline(
                feature.geometry.coordinates,
                {
                    color: 'red',
                }
            );
        }else{
            var polylineFluxMatiere = new L.polyline(
                feature.geometry.coordinates,
                {
                    color: 'green',
                }
            );
        }
        return polylineFluxMatiere;
    },
}).addTo(map);
var geoJsonFluxMatiere={
“类型”:“功能集合”,
“功能”:[]
};
for(indexfluxMatiere=0;indexfluxMatiere
坐标正常,多段线显示在它们必须显示的位置,但就像颜色的参数被忽略一样。
我做错什么了吗?
顺便说一句,如果我的英语不够完美,我很抱歉。 谢谢大家!

Raphaël

当使用
.geoJSON()
时,您可以使用
style
选项来设置功能的样式。有两种方法,您可能希望将函数传递给再次执行检查的
style
属性。以下是来自以下方面的示例:

在您的情况下,您可以尝试以下方法:

var layerFluxMatiere = L.geoJson(geoJsonFluxMatiere, {
  style: function (feature) {
    if(feature.properties.fluxPrimaire == true){
        return { color: '#ff0000' };
    }else{
        return { color: '#0000ff' };       
     }
  },
}).addTo(map);

传单GeoJSON factory的
pointToLayer
选项仅用于
“点”
类型几何图形


对于
“LineString”
(多段线)类型,可以改用该选项。请注意,它应该直接返回样式选项,而不是图层。

我查看了传单的文档,但没有查看示例。。。我试过了,现在它起作用了!非常感谢,当我可以的时候,我会投票给你的答案。我复制/粘贴我用来做记号笔的东西。。。谢谢你们提供的信息,我知道我需要多看一点传单上的文件。
var layerFluxMatiere = L.geoJson(geoJsonFluxMatiere, {
  style: function (feature) {
    if(feature.properties.fluxPrimaire == true){
        return { color: '#ff0000' };
    }else{
        return { color: '#0000ff' };       
     }
  },
}).addTo(map);