beijin背景:在qml中同一个图层想要显示不同的要素颜色
代码如下所示:
Map {
plugin: Plugin { name: "mapboxgl" }
center: QtPositioning.coordinate(60.170448, 24.942046) // Helsinki
zoomLevel: 12
MapParameter {
type: "source"
property var name: "routeSource"
property var sourceType: "geojson"
property var data: '{ "type": "FeatureCollection", "features": [{ "geometry": {"coordinates": [ [[XXX, XXX],[XXX, XXX],[XXX, XXX]]],"type": "Polygon"},"properties": {"color": "rgba(30,30,100,0.55)",},"type": "Feature"},{ "geometry": {"coordinates": [ [[XXX, XXX],[XXX, XXX],[XXX, XXX]]],"type": "Polygon"},"properties": {"color": "red",},"type": "Feature"}]}'
}
MapParameter {
type: "layer"
property var name: "route"
property var layerType: "fill"
property var source: "routeSource"
// Draw under the first road label layer
// of the mapbox-streets style.
property var before: "road-label-small"
}
MapParameter {
type: "paint"
property var layer: "route"
property var fillColor: ["get", 'color']
}
MapParameter {
type: "layout"
property var layer: "route"
}
}
1.在source中定义的geojson的数据中"properties": {"color": "red",}中color字段;
2.在paint中使用fillColor的取值为["get", 'color'],含义是取属性中的color字段的值作为颜色。