无法在Mapbox / Leaflet中为geojson属性定义填充颜色

时间:2015-12-07 21:19:58

标签: javascript leaflet frontend mapbox

我已使用

在Mapbox地图上加载了geojson
var featureLayer = L.mapbox.featureLayer()
            .loadURL('gmo_counties.geojson') 
            .addTo(map)

geojson与index.html位于同一目录中。

我想根据名为" H_Sum_lbs"的属性在此geojson中设置多边形的样式。我尝试了几种方法,但没有取得任何进展。如何根据" H_Sum_lbs"的值来对这些多边形应用条件着色?属性?

1 个答案:

答案 0 :(得分:3)

您可以从L.mapbox.featureLayer切换到L.GeoJSON。它接受style函数作为选项,您可以在其中访问该功能,以便您可以根据功能的属性有条件地返回样式对象:

var featureCollection = {
    "type": "FeatureCollection",
    "features": [{
        "type": "Feature",
        "properties": {
            "valid": false
        },
        "geometry": {
            "type": "LineString",
            "coordinates": [[-25, -25], [25, -25]]
        }
    }, {
        "type": "Feature",
        "properties": {
            "valid": true
        },
        "geometry": {
            "type": "LineString",
            "coordinates": [[25, 25], [-25, 25]]
        }
    }]
}

L.mapbox.accessToken = yourAccessToken;
var map = L.mapbox.map('mapbox').setView([0, 0], 0);

L.geoJson(featureCollection, {
    style: function (feature) {
        return {
            color: (feature.properties.valid) ? 'green' : 'red'
        }
    }
}).addTo(map);

L.GeoJSON参考: http://leafletjs.com/reference.html#geojson

L.Path选项: http://leafletjs.com/reference.html#path