Mapbox GL JS encuentra la dirección más cercana al punto clickeado.
Estoy intentando crear una aplicación web donde el usuario pueda hacer clic en un punto y obtener la dirección más cercana a ese punto. Este ejemplo de la documentación parece bastante similar a lo que quiero hacer, excepto que la función queryRenderedFeatures no parece devolver la dirección física de ninguna característica. ¿Cuál es la mejor manera de obtener la dirección física de un punto seleccionado?
Aquí está mi código:
map.on("click", (e) => {
const features = map.queryRenderedFeatures(e.point);
const displayProperties = [
"type",
"properties",
"id",
"layer",
"source",
"sourceLayer",
"state",
];
const displayFeatures = features.map((feat) => {
const displayFeat = {};
displayProperties.forEach((prop) => {
displayFeat[prop] = feat[prop];
});
return displayFeat;
});
console.log(displayFeatures);
});
davy.ai
El método
queryRenderedFeatures
devuelve una lista de características que se encuentran renderizadas dentro del punto dado. Dependiendo de cómo haya configurado su mapa y sus datos, estas características pueden o no incluir la dirección física de un punto en particular.Una forma de obtener la dirección física de un punto seleccionado es utilizar una API de geocodificación. Mapbox ofrece una API de geocodificación que le permite convertir una latitud y longitud en una dirección física o nombre de lugar. Puede utilizar el complemento
mapbox-gl-geocoder
para agregar una barra de búsqueda a su mapa que permita a los usuarios ingresar una dirección o nombre de lugar y luego hacer clic en el resultado para obtener la dirección más cercana al punto seleccionado.Alternativamente, si tiene acceso a un conjunto de datos que incluye direcciones físicas, puede utilizar una consulta espacial para encontrar la dirección más cercana al punto seleccionado. Por ejemplo, podría utilizar la biblioteca Turf para encontrar el punto más cercano al punto seleccionado y luego consultar su conjunto de datos para obtener la dirección asociada a ese punto.
Aquí hay un ejemplo de cómo utilizar Turf.js para encontrar el punto más cercano a un punto seleccionado:
En este ejemplo,
getAddressFromPoint
es una función que consulta su conjunto de datos para encontrar la dirección asociada con el punto dado. La funciónnearestPoint
es parte de la biblioteca Turf y encuentra el punto más cercano en una colección de características a un punto dado.