aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2024-04-07 14:55:48 -0700
committerAnton Tananaev <anton@traccar.org>2024-04-07 14:55:48 -0700
commit3d793f502e1d48eb9c1dd60005ccf6c8682d73ca (patch)
treebafbf8b4e4e1013bdfcce42ba1fc643624031612
parent9a285e59e580994dc9c3f80935f766f3dafdcd46 (diff)
downloadtrackermap-server-3d793f502e1d48eb9c1dd60005ccf6c8682d73ca.tar.gz
trackermap-server-3d793f502e1d48eb9c1dd60005ccf6c8682d73ca.tar.bz2
trackermap-server-3d793f502e1d48eb9c1dd60005ccf6c8682d73ca.zip
Add Open Location Code geocoder
-rw-r--r--build.gradle1
-rw-r--r--debug.xml2
-rw-r--r--src/main/java/org/traccar/MainModule.java6
-rw-r--r--src/main/java/org/traccar/geocoder/PlusCodesGeocoder.java (renamed from src/main/java/org/traccar/geocoder/TestGeocoder.java)7
4 files changed, 9 insertions, 7 deletions
diff --git a/build.gradle b/build.gradle
index 2fe2bfaab..e731f99ed 100644
--- a/build.gradle
+++ b/build.gradle
@@ -90,6 +90,7 @@ dependencies {
implementation "com.nimbusds:oauth2-oidc-sdk:11.10.1"
implementation "com.rabbitmq:amqp-client:5.20.0"
implementation "com.warrenstrange:googleauth:1.5.0"
+ implementation 'com.google.openlocationcode:openlocationcode:1.0.4'
testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion"
testImplementation "org.junit.jupiter:junit-jupiter-engine:$junitVersion"
testImplementation "org.mockito:mockito-core:5.11.0"
diff --git a/debug.xml b/debug.xml
index a0c179cff..89b5a5ba3 100644
--- a/debug.xml
+++ b/debug.xml
@@ -10,7 +10,7 @@
<entry key='web.debug'>true</entry>
<entry key='web.console'>true</entry>
- <entry key='geocoder.type'>test</entry>
+ <entry key='geocoder.type'>pluscodes</entry>
<entry key='media.path'>./target/media</entry>
diff --git a/src/main/java/org/traccar/MainModule.java b/src/main/java/org/traccar/MainModule.java
index 791d61c61..d1d3d4663 100644
--- a/src/main/java/org/traccar/MainModule.java
+++ b/src/main/java/org/traccar/MainModule.java
@@ -66,7 +66,7 @@ import org.traccar.geocoder.MapmyIndiaGeocoder;
import org.traccar.geocoder.NominatimGeocoder;
import org.traccar.geocoder.OpenCageGeocoder;
import org.traccar.geocoder.PositionStackGeocoder;
-import org.traccar.geocoder.TestGeocoder;
+import org.traccar.geocoder.PlusCodesGeocoder;
import org.traccar.geocoder.TomTomGeocoder;
import org.traccar.geolocation.GeolocationProvider;
import org.traccar.geolocation.GoogleGeolocationProvider;
@@ -211,8 +211,8 @@ public class MainModule extends AbstractModule {
int cacheSize = config.getInteger(Keys.GEOCODER_CACHE_SIZE);
Geocoder geocoder;
switch (type) {
- case "test":
- geocoder = new TestGeocoder();
+ case "pluscodes":
+ geocoder = new PlusCodesGeocoder();
break;
case "nominatim":
geocoder = new NominatimGeocoder(client, url, key, language, cacheSize, addressFormat);
diff --git a/src/main/java/org/traccar/geocoder/TestGeocoder.java b/src/main/java/org/traccar/geocoder/PlusCodesGeocoder.java
index 259f13c6c..5d003192f 100644
--- a/src/main/java/org/traccar/geocoder/TestGeocoder.java
+++ b/src/main/java/org/traccar/geocoder/PlusCodesGeocoder.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2022 Anton Tananaev (anton@traccar.org)
+ * Copyright 2022 - 2024 Anton Tananaev (anton@traccar.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,9 +15,10 @@
*/
package org.traccar.geocoder;
+import com.google.openlocationcode.OpenLocationCode;
import org.traccar.database.StatisticsManager;
-public class TestGeocoder implements Geocoder {
+public class PlusCodesGeocoder implements Geocoder {
@Override
public void setStatisticsManager(StatisticsManager statisticsManager) {
@@ -25,7 +26,7 @@ public class TestGeocoder implements Geocoder {
@Override
public String getAddress(double latitude, double longitude, ReverseGeocoderCallback callback) {
- String address = String.format("Location %f, %f", latitude, longitude);
+ String address = new OpenLocationCode(latitude, longitude).getCode();
if (callback != null) {
callback.onSuccess(address);
return null;