В настоящее время я пытаюсь получить начальную и конечную точки векторной геометрии мозаичной линии от Geoserver.
В следующем разделе приведен код, используемый для получения этих значений:
this.featuresMap.set(finalURL, this.mapService.map.querySourceFeatures(this.cId, { sourceLayer: finalURL }));
startFeature = this.featuresMap.get(finalURL)[0]; //First entity
startFeature['properties']['order'] = 0;
endFeature = this.featuresMap.get(finalURL)[this.featuresMap.get(finalURL).length - 1]; //Latest entity
endFeature['properties']['order'] = 1;
this.objectMap.addSource(finalURL + 'startEndPoints', {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": [startFeature, endFeature]
}
});
this.objectMap.addLayer({
"id": finalURL + 'startEndPoints_layer',
"type": "circle",
"source": finalURL + 'startEndPoints',
"paint": {
"circle-radius": 6,
"circle-color": [
"case",
["==", ['get', 'order'], 0], "blue",
["==", ['get', 'order'], 1], "red",
"black"
]
},
});
Результаты различаются, когда вы показываете / скрываете один конкретный слой, потому что местоположение точки различается при каждом изменении видимости слоя.
Может быть связано с векторными плитками и уровнем масштабирования, или, возможно, ссобытие / жизненный цикл карты, где выполняется код?