x

is_in:country bzw. Feststellen der Staatszugehörigkeit


Geschrieben von jpuhr (Gast) am 04. August 2012 13:32:03: [flux]

Hallo,

ich beschäftige mich gerade mit einem kleinen Auftrag für den öffentlichen Dienst: eine Software, bei der auch eine Kartendarstellung eingebunden werden soll. Auch, wenn es gar nicht Teil des Auftrags ist, möchte ich Kacheldaten von Openstreetmap mit ausliefern (bislang wird weithin das Material von ESRI verwendet). Letztlich mit dem Gedanken, die Verwendung von Opensource im öffentl. Dienst "schmackhaft" zu machen.

Folgendes Problem: Zwei Drittel der Welt ist in kyrillischen, arabischen oder chinesischen Schriftzeichen dargestellt. Das ist natürlich zur Auslieferung inakzeptabel. Deswegen habe ich eine regionalisierte Karte erstellt, wie auf der OSM-Seite beschrieben über einen angepassten Datenbank-View, der den Tag "name" auf "name:de" abbildet. Daraus ergibt sich das nächste Problem: Danach ist zwar Asien auf Deutsch, aber der gößte Teil von Europa sieht aus wie eine historische Karte von 1914 (Teile Südfrankreichs, des Baltikums oder des Balkans gar wie eine mittelalterl. Karte). Das ist natürlich noch inakzeptabler, weil politisch inkorrekt.

Dann habe ich den Datenbank-View entsprechend erweitert: Wenn "irgendetwas" darauf hindeutet, dass es sich um einen Städtenamen in Europa handelt, dann nimm "name", ansonsten "name:de" oder "name:en". Das jedoch herauszufinden, ist ein ganz schönes Gefrickel: Mal steht der Landesname in Landessprache, mal in Englich in "is_in", mal in "is_in:country". Oft gibt es "is_in:*" gar nicht. Dann lässt sich aber danach suchen, ob die verwiesene Webseite z.B. ".lv" enthält (WHEN "website" LIKE '%.lv%'), oder ob im Tag "source" auf die slowenische Statistikbehörde verwiesen wird (WHEN "source" LIKE '%.sv%') usw.usw.

Wenn man all diese Hinweise in der SQL-Abfrage ver-oder-t, dann bekommt man schon ein halbwegs brauchbares Ergebnis. Es gibt aber trotzdem noch etliche Orte, die durchfallen und auf der Karte deutsch erscheinen, weil einfach "nichts" darauf hindeutet, wo sich der Ort befindet.

Ist es denn nicht möglich, die Entscheidung, in welchem Land sich der Ort befindet (und dann auf Basis einer Entscheidungstabelle zur Sprachauswahl führt), auf Basis von Ländergrenzen zu automatisieren? Wahrscheinlich geht das aber nicht über den einfachen Weg "SQL-View".

Viele Grüße

J. Puhr


Antworten: