aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/traccar/MainModule.java2
-rw-r--r--src/main/java/org/traccar/geocoder/GoogleGeocoder.java11
-rw-r--r--src/test/java/org/traccar/geocoder/GeocoderTest.java2
3 files changed, 9 insertions, 6 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..174ef66c8 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,9 @@ 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
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);
}