POIs für ganz Europa nach Länderzugehörigkeit auftrennen.

Ich suche nach einer Lösung, das möglichst in einer lokalen Datenbank machen zu können. Es würde mir für jedes Land einzeln reichen.

Ich bin schon auf einen möglichen Lösungsansatz gestoßen.

Dabei werden alle Punkte (Koordinaten) innerhalb der jeweiligen Landesgrenzen einheitlich eingefärbt. Über die Farbe könnte man dann die Zuordnung vornehmen.

Mir fehlen aber noch ein paar Tipps zur Durchführung.

Du lädst erstmal die OSM-Daten mit osm2pgsql in eine Postgres-Datenbank.

Dann ziehst Du Dir die POIs, die dich interessieren, in eine eigene Tabelle. Wie Du das genau machst, hängt davon ab, was Du genau willst; nehmen wir mal beispielhaft an, Dir reichen Restaurants und Cafes, dann erstellst Du erstmal eine Tabelle für die POIs:

create table my_poi (
   type varchar(32),
   name text,
   cuisine text,
   geom geometry('POINT', 3857)
);

kopierst die Punkt-POIs hinein

insert into my_poi 
select amenity as type, name,tags->'cuisine',way 
from planet_osm_point 
where amenity='restaurant' or amenity='cafe';

und dann noch die Mittelpunkte der Flächen-POIs:

insert into my_poi 
select amenity as type, name,tags->'cuisine',st_centroid(way) 
from planet_osm_polygon
where amenity='restaurant' or amenity='cafe';

Natürlich kannst Du beliebige andere POIs kopieren, oder noch zusätzliche Spalten wie Öffnungszeiten, Adressen usw. - Hauptsache, Du hast am Ende eine schöne Tabelle mit lauter POIs. Dann ziehst Du Dir der Einfachheit halber noch die Ländergrenzen ebenfalls in eine eigene Tabelle (das wäre nicht nötig, macht es aber klarer):

create table laender as 
select tags->'ISO3166-1' as isocode, tags->'name:de' as name, way as geom 
from planet_osm_polygon
where admin_level='2' and boundary='administrative';

Damit es gleich keine Ewigkeit dauert, hilft ein Index:

create index laneder_index on laender using gist(geom);

Und dann kannst Du Deiner POI-Tabelle eine Ländercode-Spalte verpassen und sie befüllen lassen:

alter table my_poi add column country_code varchar(5);
update my_poi 
set country_code=isocode 
from laender 
where st_contains(laender.geom,my_poi.geom);

Danke erst mal. muß ich sehen wie ich das angepaßt bekomme.

Meine Pois existieren schon als SQLite Datenbank mit folgenden Spalten,
Longitude, Latitude, Platzanzahl, Platztyp, Platznummer, Preis, Name, Offen, Land, Plz, Ort, Strasse, Telefon, Email, Web, Beschreibung.
Bei den meisten sind die Adressen kpl. aber leider nicht immer richtig.
Für Sygic braucht man aber eine exakte Zuordnung zu den Ländern.

hallo und guten Abend Woodpeck hallo Hannus57

vielen Dank für diesen Thread das ist alles sehr sehr interessant. Ich glaube ich wede auch mit einer Postgres-Datenbank anfangen

vielen Dank nochmas - für die Tipps.

Da meine POIs nicht in OSM vorkommen, also auch nicht die passenden Koordinaten haben, wird das ganze so nicht funktionieren.

Du solltest mal detailliert beschreiben was du hast und was erreichen willst.

Also ich erstelle Camping- und Stellplatzpois für alle möglichen Apps und Navis. Ist halt mein Hobby.

Einige Versionen von Sygic verlangen dafür eine exakte Trennung nach Ländern. Schon ein falsch liegender Poi läßt das Ganze scheitern
Da meine Quellen unter anderem die sehr unzuverlässigen Daten einiger Naviapps wie Park4nigt oder WohnmobilEU sind, bei denen Die Länderzuordnung oftmals fehlt oder falsch ist, suche ich nach einer einfachen Möglichkeit, diese zu korrigieren. Wobei die fehlenden Länder jetzt nicht das Problem sind, dafür hab ich eine Lösung.

Meine Daten liegen in einer Tabelle in einer SQLite Datenbank. Hieraus generiere ich durch entsprechende Abfragen fertige kml, gpx oder csv Dateien. Letztere auch als Vorstufen für TomTom, Sygic und andere.

Ich ermittle die Länderzugehärigkeit bei http://opencampingmap.org über das country_osm_grid.sql von Nominatim.

Eventuell möchtest Du Dir einfach mein Backend aufsetzen:
https://github.com/giggls/osmpoidb/blob/master/INSTALL.md

Gruss

Sven

Hallo Sven
Erst mal danke.

Ich komme mit der SQLite Datenbank ganz gut zurecht, aber mir jetzt noch den Umgang mit einer neuen Datenbank beizubringen, dazu fehlt mir glaub ich in meinem Alter die Lust. Ich suche eigendlich was fertiges.

Bei den meisten Pois die ich verwende stehen die Länder sowieso dabei. Bei den Restlichen laß ich zur Zeit einfach den RouteConverter die Adressen raus suchen. Muß ich auch bloß einmal mit ner größeren Anzahl machen, danach nur noch für die Updates.

Gruß Egon