Files
var-monorepo/apps/dispatch/app/_querys/osm.ts
2025-07-10 00:35:34 -07:00

51 lines
1.2 KiB
TypeScript

export const getOsmAddress = async (lat: number, lng: number) => {
const address = await fetch(
`https://nominatim.openstreetmap.org/reverse?lat=${lat}&lon=${lng}&format=json`,
);
const data = (await address.json()) as {
address?: {
ISO3166_2_lvl4?: string;
country?: string;
country_code?: string;
county?: string;
house_number?: string;
municipality?: string;
postcode?: string;
road?: string;
state?: string;
city?: string;
village?: string;
town?: string;
};
display_name?: string;
importance?: number;
lat?: string;
licence?: string;
lon?: string;
name?: string;
osm_id?: number;
osm_type?: string;
place_id?: number;
place_rank?: number;
type?: string;
};
let addressStreet = "";
if (!data.address?.road && !data.address?.house_number) {
addressStreet = "keine Straße, keine HN";
} else if (data.address?.road) {
addressStreet += data.address.road;
} else if (data.address?.house_number) {
addressStreet += data.address.house_number;
}
return {
raw: data,
parsed: {
addressCity: data.address?.city || data.address?.town || data.address?.village || "",
addressStreet,
addressZip: data.address?.postcode || "",
},
};
};