Как добавить слой на основе условия фильтра настраиваемого свойства.
Особенности данных геоджона
"totalFeatures": 1183,
"features": [{
"type": "Feature",
"id": "roster.fid-4a55c78_1693df1db69_-3cca",
"geometry": {
"type": "Point",
"coordinates": [
46.7643157,
24.7604933
]
},
"geometry_name": "driver_geom",
"properties": {
"id": 28181,
"status": "ToPickup",
"created": "2019-03-02T10:27:39.582Z",
"vc": 16400,
"utc": "2019-03-02T10:27:38.976Z",
"pit": 1,
"jobs": 1,
"vel": 0.897656,
"dir": 97,
"referenceid": 8159926,
"dispatchid": 6543135,
"distance": 7.5114408,
"age": 1.313166,
"dispatches": "6543135",
"numdispatches": 1,
"imei": "860119042739125",
"mobile": "966504411206",
"name": "Sami Balsharaf",
"org_id": 11,
"orgname": "ALAMAT - Driver",
"ceased": false,
"username": "966504411206"
}
}]
Мне нужно создать слой на основе Feature.properties.status, например, Online или Offline или Available
Я попробовал следующие шаги, это не работает, может кто-нибудь помочь мне, пожалуйста.
map.on('load', function() {
// 'cluster' option to true. GL-JS will add the point_count property to your source data.
map.addSource("drivers_info", {
type: "geojson",
// Point to GeoJSON data. This example visualizes all M1.0+ Drivers
data: './map.geojson',
cluster: true,
clusterMaxZoom: 14, // Max zoom to cluster points on
clusterRadius: 50 // Radius of each cluster when clustering points (defaults to 50)
});
map.addLayer({
id: "cluster-drivers",
type: "symbol",
source: "drivers_info",
filter: ["==", "$properties.status", "Available"],
layout: {
"text-field": "{point_count_abbreviated}",
"text-font": ["DIN Offc Pro Medium", "Arial Unicode MS Bold"],
"text-size": 12
}
});
});