Я пытаюсь создать слой подсветки, чтобы показать определенные точки при выборе на карте - сигнал newMarker приходит с сервера, принося objectID, а затем я хочу добавить соответствующую точку (обозначается текущей переменной) в фильтруемый слой. Однако фильтр не улавливает ни одной из добавленных к нему точек:
socket.on('newMarker', function(data) {
var current = map.queryRenderedFeatures({layers:['tax']})
[parseInt(data['newMarker'])];
SPoints.unshift(current.properties.ID);
var filter = ['match', ['get', 'ID'],'SPoints', true, false];
map.setFilter('place-highlight', filter);
var newLayer = map.queryRenderedFeatures({layers:['place-
highlight']});
});
Слой, к которому я пытаюсь добавить точки:
map.addLayer({
'id': 'place-highlight',
'type': 'circle',
'source': 'tax',
'source-layer': 'AllPointsGeoJSON-12eyog',
'paint': {
'circle-color': '#00ff00',
'circle-radius': 20,
'circle-opacity': 1,
},
'filter': ['==', 'ID', -1]
});
Я почти уверен, что проблема в том, как я форматирую свой фильтр - если я изменю порядок истинного и ложного, я увижу все стили в каждой точке. Большое спасибо за вашу помощь!