是否可以利用 GeoJSON 数据源的内置properties
属性来自动设置 Mapbox GL 地图的样式,而无需预先指定样式?
我有一个用例,我动态加载LineString
需要为特定颜色的 GeoJSON 数据,并且它已经内置了样式数据:
{"properties": {"color": "#ffff33"...
现在,我有一个相当不雅的设置,其中相关的颜色被解析出来,翻译成一种样式,并在每次加载时添加到地图中:
$scope.patternPropToStyle = function(props) {
var id = 'pattern' + props.pid;
var style = {
"id": id,
"type": "line",
"source": id,
"render": {
"$type": "LineString",
"line-join": "round",
"line-cap": "round"
},
"paint": {
"line-color": props.color,
"line-width": 8
}
}
$scope._mapStyle.layers.push(style);
$scope._map.setStyle($scope._mapStyle);
}
我觉得必须有更好的方法来做到这一点。