From 38ecdd03c8f8f7302a6e2875a13aafb26fb39e3f Mon Sep 17 00:00:00 2001 From: Zzz-ams Date: Thu, 31 Oct 2024 16:35:35 +0100 Subject: [PATCH 1/3] photon geencoder added --- src/actions/directionsActions.js | 2 +- src/actions/isochronesActions.js | 2 +- src/utils/geoencoder.js | 33 ++++++++++++++ src/utils/photon.js | 74 ++++++++++++++++++++++++++++++++ 4 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 src/utils/geoencoder.js create mode 100644 src/utils/photon.js diff --git a/src/actions/directionsActions.js b/src/actions/directionsActions.js index 0732911..5ef899c 100644 --- a/src/actions/directionsActions.js +++ b/src/actions/directionsActions.js @@ -20,7 +20,7 @@ import { reverse_geocode, forward_geocode, parseGeocodeResponse, -} from 'utils/nominatim' +} from 'utils/photon' import { VALHALLA_OSM_URL, diff --git a/src/actions/isochronesActions.js b/src/actions/isochronesActions.js index 05bb2a3..21da4c8 100644 --- a/src/actions/isochronesActions.js +++ b/src/actions/isochronesActions.js @@ -12,7 +12,7 @@ import { reverse_geocode, forward_geocode, parseGeocodeResponse, -} from 'utils/nominatim' +} from 'utils/geoencoder' import { VALHALLA_OSM_URL, buildIsochronesRequest } from 'utils/valhalla' import { diff --git a/src/utils/geoencoder.js b/src/utils/geoencoder.js new file mode 100644 index 0000000..86c7fd9 --- /dev/null +++ b/src/utils/geoencoder.js @@ -0,0 +1,33 @@ +import { + reverse_geocode as ph_reverse_geocode, + forward_geocode as ph_forward_geocode, + parseGeocodeResponse as ph_parseGeocodeResponse, +} from 'utils/photon' +import { + reverse_geocode as nm_reverse_geocode, + forward_geocode as nm_forward_geocode, + parseGeocodeResponse as nm_parseGeocodeResponse, +} from 'utils/nominatim' + +export const PHOTON_URL = `${process.env.REACT_APP_PHOTON_URL}` + +export const forward_geocode = (userInput) => { + if (PHOTON_URL.length > 0 && PHOTON_URL !== 'null') { + return ph_forward_geocode(userInput) + } + return nm_forward_geocode(userInput) +} + +export const reverse_geocode = (lon, lat) => { + if (PHOTON_URL.length > 0 && PHOTON_URL !== 'null') { + return ph_reverse_geocode(lon, lat) + } + return nm_reverse_geocode(lon, lat) +} + +export const parseGeocodeResponse = (results, lngLat) => { + if (PHOTON_URL.length > 0 && PHOTON_URL !== 'null') { + return ph_parseGeocodeResponse(results, lngLat) + } + return nm_parseGeocodeResponse(results, lngLat) +} diff --git a/src/utils/photon.js b/src/utils/photon.js new file mode 100644 index 0000000..cf40a47 --- /dev/null +++ b/src/utils/photon.js @@ -0,0 +1,74 @@ +import axios from 'axios' + +export const PHOTON_URL = `${process.env.REACT_APP_PHOTON_URL}/api` +export const PHOTON_URL_REVERSE = `${process.env.REACT_APP_PHOTON_URL}/reverse` + +export const forward_geocode = (userInput) => + axios.get(PHOTON_URL, { + params: { + // eslint-disable-next-line + q: userInput, + limit: 5, + }, + }) + +export const reverse_geocode = (lon, lat) => + axios.get(PHOTON_URL_REVERSE, { + params: { + lon: lon, + lat: lat, + }, + }) + +export const parseGeocodeResponse = (results, lngLat) => { + results = results.features + const processedResults = [] + for (const [index, result] of results.entries()) { + if ( + 'error' in result && + result.error.toLowerCase() === 'unable to geocode' + ) { + processedResults.push({ + title: lngLat.toString(), + description: '', + selected: true, + addresslnglat: '', + sourcelnglat: lngLat, + displaylnglat: lngLat, + key: index, + addressindex: index, + }) + } else { + processedResults.push({ + title: + result.properties.name.length > 0 + ? result.properties.name + : lngLat.toString(), + description: `https://www.openstreetmap.org/${result.properties.osm_type}/${result.properties.osm_id}`, + selected: false, + addresslnglat: [ + parseFloat(result.geometry.coordinates[0]), + parseFloat(result.geometry.coordinates[1]), + ], + sourcelnglat: + lngLat === undefined + ? [ + parseFloat(result.geometry.coordinates[0]), + parseFloat(result.geometry.coordinates[1]), + ] + : lngLat, + displaylnglat: + lngLat !== undefined + ? lngLat + : [ + parseFloat(result.geometry.coordinates[0]), + parseFloat(result.geometry.coordinates[1]), + ], + key: index, + addressindex: index, + }) + } + } + console.log(processedResults) + return processedResults +} From 86029bcdd17217cd21a9d84bf56b1a69dc994d11 Mon Sep 17 00:00:00 2001 From: Zzz-ams Date: Fri, 1 Nov 2024 14:46:26 +0100 Subject: [PATCH 2/3] cleanup --- src/actions/directionsActions.js | 2 +- src/utils/photon.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/actions/directionsActions.js b/src/actions/directionsActions.js index 5ef899c..9f63edb 100644 --- a/src/actions/directionsActions.js +++ b/src/actions/directionsActions.js @@ -20,7 +20,7 @@ import { reverse_geocode, forward_geocode, parseGeocodeResponse, -} from 'utils/photon' +} from 'utils/geoencoder' import { VALHALLA_OSM_URL, diff --git a/src/utils/photon.js b/src/utils/photon.js index cf40a47..9e3db7a 100644 --- a/src/utils/photon.js +++ b/src/utils/photon.js @@ -69,6 +69,5 @@ export const parseGeocodeResponse = (results, lngLat) => { }) } } - console.log(processedResults) return processedResults } From f4a5980388f76c9af020ceb4a2e36f0257807d28 Mon Sep 17 00:00:00 2001 From: Zzz-ams Date: Mon, 4 Aug 2025 15:02:01 +0200 Subject: [PATCH 3/3] env change --- .env | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.env b/.env index 29f24b1..0329786 100644 --- a/.env +++ b/.env @@ -1,6 +1,8 @@ SKIP_PREFLIGHT_CHECK=true -REACT_APP_VALHALLA_URL=https://valhalla1.openstreetmap.de -REACT_APP_NOMINATIM_URL=https://nominatim.openstreetmap.org +GEOCODING_API='http://20.50.131.255:2322/api' +REACT_APP_VALHALLA_URL=http://4.245.108.25:8002 +REACT_APP_NOMINATIM_URL=http://20.50.131.255:2322 +REACT_APP_PHOTON_URL=http://20.50.131.255:2322 REACT_APP_TILE_SERVER_URL="https://tile.openstreetmap.org/{z}/{x}/{y}.png" REACT_APP_CENTER_COORDS="52.51831,13.393707"