mapbox の Reverse geocoding を使用すると、緯度経度から住所を得ることができます。
map.on('contextmenu', (e) => {
//let uri = `https://nominatim.openstreetmap.org/reverse?format=json&zoom=18&lat=${e.lngLat.lat}&lon=${e.lngLat.lng}`;
let uri = `https://api.mapbox.com/geocoding/v5/mapbox.places/${e.lngLat.lng},${e.lngLat.lat}.json?language=ja&access_token=${mapboxgl.accessToken}`;
fetchData(uri).then(function(response){ return response.text().then(function(jsonStr){
var data = JSON.parse(jsonStr);
//var context = data.display_name +`<br>`;
var context = data.features[0].place_name +`<br>`;
clearPopup();
new mapboxgl.Popup().setLngLat(e.lngLat).setHTML(context).addTo(map);
});}).catch(err => { console.log(err); })
});
async function fetchData(_uri) {
const res = await fetch(_uri);
const data = await res;
return data;
}
const clearPopup=function(){
const popups = document.getElementsByClassName("mapboxgl-popup");
if (popups.length) {
popups[0].remove();
}
}