28 lines
854 B
TypeScript
28 lines
854 B
TypeScript
|
|
function drop_fields(results) {
|
|
results.forEach(e => {
|
|
delete e.licence;
|
|
delete e.place_rank;
|
|
delete e.importance;
|
|
delete e.boundingbox;
|
|
});
|
|
return results
|
|
}
|
|
|
|
export function nominatim_get_data(id: string, bb: string[][] | null = null): Promise<any> {
|
|
if (!id) return Promise.resolve([])
|
|
|
|
const url = new URL("https://nominatim.openstreetmap.org/search");
|
|
url.searchParams.append('format', 'jsonv2')
|
|
url.searchParams.append('q', id)
|
|
url.searchParams.append('limit', '20')
|
|
if (bb) {
|
|
url.searchParams.append('viewbox', `${bb[0][0]},${bb[0][1]},${bb[1][0]},${bb[1][1]}`)
|
|
url.searchParams.append('bounded', `1`)
|
|
}
|
|
return fetch(url).then((res) => {
|
|
if (!res.ok) throw new Error("Nominatim Error")
|
|
return res.json().then(r => drop_fields(r))
|
|
})
|
|
}
|