Estoy buscando una respuesta que resuelva mi problema. Estoy resaltando una dirección basada en coordenadas buscadas por geocodificador. Esta misma funcionalidad funciona perfectamente al hacer clic en el edificio, pero no quiero hacer clic en el edificio, sino simplemente resaltar el edificio en función de las coordenadas buscadas. Estoy proporcionando código a continuación:
map.addLayer( { id: "3d-buildings", source: "composite", "source-layer": "building", type: "fill", minzoom: 10, paint: { "fill-color": "#aaa", }, }, labelLayerId ); map.addSource("currentBuildings", { type: "geojson", data: { type: "FeatureCollection", features: [], }, }); map.addLayer( { id: "highlight", source: "currentBuildings", type: "fill", minzoom: 15, paint: { "fill-color": "#f00", }, }, labelLayerId );Esto a continuación, haga clic en el trabajo perfecto
map.on("click","3d-buildings", (e) => { map.getSource("currentBuildings").setData({ type: "FeatureCollection", features: e.features, }); });Quiero las mismas funciones, pero no al hacer clic en lugar de las coordenadas de resultado del geocodificador:
geocoder.on("result", (e) => { var coordinates = e.result.geometry.coordinates; const selectedFeatures = map.querySourceFeatures(coordinates, { layers: ["3d-buildings"], }); console.log(selectedFeatures); //giving blank array, how can I get the features same as the onclick function is providing with additional parameter which is 3d-buildings map.getSource("currentBuildings").setData({ type: "FeatureCollection", features: e.features, }); });Tal vez me equivoque en algún momento al usar querySourceFeature. Por favor, dirígeme en la dirección correcta.