x

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


  1. POIs für ganz Europa nach Länderzugehörigkeit auftrennen. · Hannus57 (Gast) · 05.06.2021 13:15 · [flux]

    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.


    • Re: POIs für ganz Europa nach Länderzugehörigkeit auftrennen. · woodpeck (Gast) · 05.06.2021 15:11 · [flux]

      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);
      

    • Re: POIs für ganz Europa nach Länderzugehörigkeit auftrennen. · Hannus57 (Gast) · 05.06.2021 18:12 · [flux]

      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.


    • Re: POIs für ganz Europa nach Länderzugehörigkeit auftrennen. · tagtheworld (Gast) · 05.06.2021 22:36 · [flux]

      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

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

      vielen Dank nochmas - für die Tipps.


    • Re: POIs für ganz Europa nach Länderzugehörigkeit auftrennen. · Hannus57 (Gast) · 07.06.2021 17:02 · [flux]

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


    • Re: POIs für ganz Europa nach Länderzugehörigkeit auftrennen. · toc-rox (Gast) · 08.06.2021 05:40 · [flux]

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


    • Re: POIs für ganz Europa nach Länderzugehörigkeit auftrennen. · Hannus57 (Gast) · 08.06.2021 09:01 · [flux]

      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.


    • Re: POIs für ganz Europa nach Länderzugehörigkeit auftrennen. · giggls (Gast) · 31.08.2021 10:40 · [flux]

      Hannus57 wrote:

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

      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 … INSTALL.md

      Gruss

      Sven


    • Re: POIs für ganz Europa nach Länderzugehörigkeit auftrennen. · Hannus57 (Gast) · 31.08.2021 15:47 · [flux]

      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