aboutsummaryrefslogtreecommitdiff
path: root/src/org
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2017-02-15 20:31:52 +1300
committerAnton Tananaev <anton.tananaev@gmail.com>2017-02-15 20:31:52 +1300
commited44b99c9decb2f56df821d642bbc511e7d90eaa (patch)
tree2c17aa7a2f799812523075f33456f84f4c9825f9 /src/org
parent6ed2b3884d36ab133d9501983cd00bbe46fe4393 (diff)
downloadtrackermap-server-ed44b99c9decb2f56df821d642bbc511e7d90eaa.tar.gz
trackermap-server-ed44b99c9decb2f56df821d642bbc511e7d90eaa.tar.bz2
trackermap-server-ed44b99c9decb2f56df821d642bbc511e7d90eaa.zip
Support language for Google geocoder
Diffstat (limited to 'src/org')
-rw-r--r--src/org/traccar/Context.java20
-rw-r--r--src/org/traccar/geocoder/GeocodeFarmGeocoder.java13
-rw-r--r--src/org/traccar/geocoder/GoogleGeocoder.java19
-rw-r--r--src/org/traccar/geocoder/NominatimGeocoder.java16
4 files changed, 32 insertions, 36 deletions
diff --git a/src/org/traccar/Context.java b/src/org/traccar/Context.java
index cd6820778..c9c2e633e 100644
--- a/src/org/traccar/Context.java
+++ b/src/org/traccar/Context.java
@@ -208,15 +208,12 @@ public final class Context {
String type = config.getString("geocoder.type", "google");
String url = config.getString("geocoder.url");
String key = config.getString("geocoder.key");
+ String language = config.getString("geocoder.language");
int cacheSize = config.getInteger("geocoder.cacheSize");
switch (type) {
case "nominatim":
- if (key != null) {
- geocoder = new NominatimGeocoder(url, key, cacheSize);
- } else {
- geocoder = new NominatimGeocoder(url, cacheSize);
- }
+ geocoder = new NominatimGeocoder(url, key, cacheSize);
break;
case "gisgraphy":
geocoder = new GisgraphyGeocoder(url, cacheSize);
@@ -234,17 +231,10 @@ public final class Context {
geocoder = new FactualGeocoder(url, key, cacheSize);
break;
case "geocodefarm":
- if (key != null) {
- geocoder = new GeocodeFarmGeocoder(key, cacheSize);
- } else {
- geocoder = new GeocodeFarmGeocoder(cacheSize);
- }
+ geocoder = new GeocodeFarmGeocoder(key, cacheSize);
+ break;
default:
- if (key != null) {
- geocoder = new GoogleGeocoder(key, cacheSize);
- } else {
- geocoder = new GoogleGeocoder(cacheSize);
- }
+ geocoder = new GoogleGeocoder(key, language, cacheSize);
break;
}
}
diff --git a/src/org/traccar/geocoder/GeocodeFarmGeocoder.java b/src/org/traccar/geocoder/GeocodeFarmGeocoder.java
index 585095606..db23aab79 100644
--- a/src/org/traccar/geocoder/GeocodeFarmGeocoder.java
+++ b/src/org/traccar/geocoder/GeocodeFarmGeocoder.java
@@ -19,14 +19,15 @@ import javax.json.JsonObject;
public class GeocodeFarmGeocoder extends JsonGeocoder {
- private static final String URL = "https://www.geocode.farm/v3/json/reverse/";
-
- public GeocodeFarmGeocoder(int cacheSize) {
- super(URL + "?lat=%f&lon=%f&country=us&lang=en&count=1", cacheSize);
+ private static String formatUrl(String key) {
+ String url = "https://www.geocode.farm/v3/json/reverse/";
+ if (key != null) {
+ url += "&key=" + key;
+ }
+ return url;
}
-
public GeocodeFarmGeocoder(String key, int cacheSize) {
- super(URL + "?lat=%f&lon=%f&country=us&lang=en&count=1&key=" + key, cacheSize);
+ super(formatUrl(key), cacheSize);
}
@Override
diff --git a/src/org/traccar/geocoder/GoogleGeocoder.java b/src/org/traccar/geocoder/GoogleGeocoder.java
index 0506e701a..b38870c8f 100644
--- a/src/org/traccar/geocoder/GoogleGeocoder.java
+++ b/src/org/traccar/geocoder/GoogleGeocoder.java
@@ -21,16 +21,19 @@ import javax.json.JsonString;
public class GoogleGeocoder extends JsonGeocoder {
- public GoogleGeocoder() {
- this(0);
- }
-
- public GoogleGeocoder(int cacheSize) {
- super("http://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f", cacheSize);
+ private static String formatUrl(String key, String language) {
+ String url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f";
+ if (key != null) {
+ url += "&key=" + key;
+ }
+ if (language != null) {
+ url += "&language=" + language;
+ }
+ return url;
}
- public GoogleGeocoder(String key, int cacheSize) {
- super("https://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f&key=" + key, cacheSize);
+ public GoogleGeocoder(String key, String language, int cacheSize) {
+ super(formatUrl(key, language), cacheSize);
}
@Override
diff --git a/src/org/traccar/geocoder/NominatimGeocoder.java b/src/org/traccar/geocoder/NominatimGeocoder.java
index b0ee39c6a..c10a1414e 100644
--- a/src/org/traccar/geocoder/NominatimGeocoder.java
+++ b/src/org/traccar/geocoder/NominatimGeocoder.java
@@ -19,16 +19,18 @@ import javax.json.JsonObject;
public class NominatimGeocoder extends JsonGeocoder {
- public NominatimGeocoder() {
- this("http://nominatim.openstreetmap.org/reverse", 0);
- }
-
- public NominatimGeocoder(String url, int cacheSize) {
- super(url + "?format=json&lat=%f&lon=%f&zoom=18&addressdetails=1", cacheSize);
+ private static String formatUrl(String url, String key) {
+ if (url == null) {
+ url = "http://nominatim.openstreetmap.org/reverse";
+ }
+ if (key != null) {
+ url += "&key=" + key;
+ }
+ return url;
}
public NominatimGeocoder(String url, String key, int cacheSize) {
- super(url + "?format=json&lat=%f&lon=%f&zoom=18&addressdetails=1&key=" + key, cacheSize);
+ super(formatUrl(url, key), cacheSize);
}
@Override