81 lines
2.9 KiB
JavaScript
81 lines
2.9 KiB
JavaScript
import {returnOnError} from "../utilities/reporterror.js"
|
|
import axios from 'axios'
|
|
import {logit} from "../utilities/logit.js"
|
|
import {getOneProperty} from "./getproperties.js"
|
|
import { response } from "express"
|
|
|
|
const NOMINATIM_URL = `https://nominatim.openstreetmap.org/reverse?lat=${'xx'}&lon=${'yy'}&format=json`
|
|
const NOMINATIM_CITY_URL = `https://nominatim.openstreetmap.org/?q="${'xx'}"&format=json`
|
|
|
|
export const getCityCoords = async (params) => {
|
|
let ret = {coords: [], city: params.city, err: null}
|
|
let url = NOMINATIM_CITY_URL.replace('xx', params.city)
|
|
// let url = 'https://nominatim.openstreetmap.org/?q="K%C3%B6ln"&format=json'
|
|
try {
|
|
const response = await axios(url)
|
|
if (response.status !== 200) {
|
|
return returnOnError(ret, 'RESPSTATUS', getCityCoord.name, response.status)
|
|
}
|
|
ret.coords = [response.data[0].lat,response.data[0].lon]
|
|
logit(JSON.stringify(ret.coords))
|
|
} catch (e) {
|
|
return returnOnError(ret, e, getCityCoords.name)
|
|
}
|
|
return ret
|
|
}
|
|
|
|
export const getAddress = async (params) => {
|
|
let ret = {address: "", err: null}
|
|
let {props, err} = await getOneProperty(params)
|
|
if (err) {
|
|
return returnOnError(ret, err, getAddress.name)
|
|
}
|
|
let coord = props.location[0].loc.coordinates
|
|
let url = NOMINATIM_URL.replace('xx', coord[1]).replace('yy', coord[0])
|
|
try {
|
|
const response = await axios(encodeURI(url),{
|
|
headers: {
|
|
'User-Agent': 'Firefox 132.0.1'
|
|
}
|
|
});
|
|
if (response.status !== 200) {
|
|
return returnOnError(ret, 'RESPSTATUS', getAddress.name, response.status)
|
|
}
|
|
let akt = response.data.address
|
|
// logit(JSON.stringify(akt))
|
|
const CITY = ['city', 'town', 'village', 'suburb', 'county']
|
|
let city = "unknown"
|
|
for (let c of CITY) {
|
|
if(akt[c] !== undefined) {
|
|
city = akt[c]
|
|
break
|
|
}
|
|
}
|
|
// ret.address = `${(akt.road ? akt.road : "")} ${(akt.postcode ? akt.postcode : "")} ${city}`;
|
|
ret.address = {
|
|
street: `${(akt.road ? akt.road : "")}`,
|
|
plz: `${(akt.postcode ? akt.postcode : "")}`,
|
|
city: `${city}`}
|
|
} catch (e) {
|
|
return returnOnError(ret, e, getAddress.name)
|
|
}
|
|
return ret
|
|
}
|
|
/*
|
|
let addr = "Addr";
|
|
try {
|
|
let ret = await $.get("api/getprops?sensorid=" + marker.options.name);
|
|
if(ret.values[0].address.city == null) {
|
|
addr += " unbekannt !"
|
|
} else {
|
|
let akt = ret.values[0].address;
|
|
addr = (akt.street ? akt.street : "") + " " + (akt.plz ? akt.plz : "") + " " + akt.city;
|
|
}
|
|
} catch (e) {
|
|
console.log("onMarker - getpops", e)
|
|
}
|
|
console.log("addr:", addr);
|
|
return addr;
|
|
|
|
*/
|