From adeb0ef3de976d185b6f61668f0cbd9fdffee801 Mon Sep 17 00:00:00 2001 From: Syed Mujeer Hashmi Date: Thu, 25 Jul 2024 22:06:25 +0530 Subject: geocoder: custom url for google based geocoder Signed-off-by: Syed Mujeer Hashmi --- src/main/java/org/traccar/MainModule.java | 2 +- src/main/java/org/traccar/geocoder/GoogleGeocoder.java | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/traccar/MainModule.java b/src/main/java/org/traccar/MainModule.java index c7b74d049..945bb8bc2 100644 --- a/src/main/java/org/traccar/MainModule.java +++ b/src/main/java/org/traccar/MainModule.java @@ -226,7 +226,7 @@ public class MainModule extends AbstractModule { case "maptiler" -> new MapTilerGeocoder(client, key, cacheSize, addressFormat); case "geoapify" -> new GeoapifyGeocoder(client, key, language, cacheSize, addressFormat); case "geocodejson" -> new GeocodeJsonGeocoder(client, url, key, language, cacheSize, addressFormat); - default -> new GoogleGeocoder(client, key, language, cacheSize, addressFormat); + default -> new GoogleGeocoder(client, url, key, language, cacheSize, addressFormat); }; geocoder.setStatisticsManager(statisticsManager); return geocoder; diff --git a/src/main/java/org/traccar/geocoder/GoogleGeocoder.java b/src/main/java/org/traccar/geocoder/GoogleGeocoder.java index 93f128b46..40951742f 100644 --- a/src/main/java/org/traccar/geocoder/GoogleGeocoder.java +++ b/src/main/java/org/traccar/geocoder/GoogleGeocoder.java @@ -22,8 +22,10 @@ import jakarta.ws.rs.client.Client; public class GoogleGeocoder extends JsonGeocoder { - private static String formatUrl(String key, String language) { - String url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f"; + private static String formatUrl(String url, String key, String language) { + if (url == null) { + url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f"; + } if (key != null) { url += "&key=" + key; } @@ -33,8 +35,8 @@ public class GoogleGeocoder extends JsonGeocoder { return url; } - public GoogleGeocoder(Client client, String key, String language, int cacheSize, AddressFormat addressFormat) { - super(client, formatUrl(key, language), cacheSize, addressFormat); + public GoogleGeocoder(Client client, String url, String key, String language, int cacheSize, AddressFormat addressFormat) { + super(client, formatUrl(url, key, language), cacheSize, addressFormat); } @Override -- cgit v1.2.3 From b4ee8b7126eb6b57f8abbe2b32f28bacb62f33f8 Mon Sep 17 00:00:00 2001 From: Syed Mujeer Hashmi Date: Sat, 27 Jul 2024 07:03:41 +0530 Subject: Update GeocoderTest.java --- src/test/java/org/traccar/geocoder/GeocoderTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/traccar/geocoder/GeocoderTest.java b/src/test/java/org/traccar/geocoder/GeocoderTest.java index 3e65d20c7..2aa7ab77c 100644 --- a/src/test/java/org/traccar/geocoder/GeocoderTest.java +++ b/src/test/java/org/traccar/geocoder/GeocoderTest.java @@ -20,7 +20,7 @@ public class GeocoderTest { @Disabled @Test public void testGoogle() { - Geocoder geocoder = new GoogleGeocoder(client, null, null, 0, new AddressFormat()); + Geocoder geocoder = new GoogleGeocoder(client, null, null, null, 0, new AddressFormat()); String address = geocoder.getAddress(31.776797, 35.211489, null); assertEquals("1 Ibn Shaprut St, Jerusalem, Jerusalem District, IL", address); } -- cgit v1.2.3 From b0ccb8127a92fe72191050cae6ad9c83af24e458 Mon Sep 17 00:00:00 2001 From: Syed Mujeer Hashmi Date: Sat, 27 Jul 2024 07:21:23 +0530 Subject: Update GoogleGeocoder.java --- src/main/java/org/traccar/geocoder/GoogleGeocoder.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/traccar/geocoder/GoogleGeocoder.java b/src/main/java/org/traccar/geocoder/GoogleGeocoder.java index 40951742f..174ef66c8 100644 --- a/src/main/java/org/traccar/geocoder/GoogleGeocoder.java +++ b/src/main/java/org/traccar/geocoder/GoogleGeocoder.java @@ -35,7 +35,8 @@ public class GoogleGeocoder extends JsonGeocoder { return url; } - public GoogleGeocoder(Client client, String url, String key, String language, int cacheSize, AddressFormat addressFormat) { + public GoogleGeocoder( + Client client, String url, String key, String language, int cacheSize, AddressFormat addressFormat) { super(client, formatUrl(url, key, language), cacheSize, addressFormat); } -- cgit v1.2.3