[gnome-maps/wip/mlundblad/localized-names-from-overpass: 2/2] WIP: overpass: Use localized name tag when available...




commit 2680540fa15db554542d063e0580e9e7c8cd18f6
Author: Marcus Lundblad <ml update uu se>
Date:   Thu Oct 8 23:29:17 2020 +0200

    WIP: overpass: Use localized name tag when available...

 src/overpass.js | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)
---
diff --git a/src/overpass.js b/src/overpass.js
index af1ea389..9c0feb06 100644
--- a/src/overpass.js
+++ b/src/overpass.js
@@ -22,6 +22,7 @@ const Geocode = imports.gi.GeocodeGlib;
 const GObject = imports.gi.GObject;
 const Soup = imports.gi.Soup;
 
+const OSMNames = imports.osmNames;
 const PhotonParser = imports.photonParser;
 const Place = imports.place;
 const Utils = imports.utils;
@@ -200,8 +201,9 @@ var Overpass = GObject.registerClass({
         if (!(element && element.tags))
             return;
 
-        if (element.tags.name)
-            place.name = element.tags.name;
+        let name = this._getLocalizedName(element.tags, place);
+        if (name)
+            place.name = name;
         if (element.tags.population)
             place.population = element.tags.population;
         if (element.tags['contact:website'])
@@ -230,6 +232,24 @@ var Overpass = GObject.registerClass({
             place.note = element.tags.note;
     }
 
+    _getLocalizedName(tags, place) {
+        let language = Utils.getLanguage();
+
+        Utils.debug('tags: ' + JSON.stringify(tags, null, 2));
+        Utils.debug('language: ' + language);
+        Utils.debug('country: ' + place.country_code);
+
+        let name = OSMNames.getNameForLanguage(tags, language);
+
+        if (!name)
+            name =
+                OSMNames.getFallbackNameForLanguage(tags,
+                                                    place.country_code,
+                                                    language);
+
+        return name;
+    }
+
     _getQueryUrl(osmType, osmId) {
         return Format.vprintf('%s?data=%s', [BASE_URL,
                                              this._generateOverpassQuery(osmType,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]