You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2015-07-15 14:27:58

hhcm
Member
Registered: 2015-07-15
Posts: 3

Deutschland rastern und PLZ ermitteln.

Hallo zusammen,

für ein Projekt suche ich eine Möglichkeit die Deutschlandkarte in ein 20km Raster aufzuteilen.
Von den einzelnen Quadraten benötige ich dann den Mittelpunkt und von diesem Mittelpunk die Postleitzahl (falls vorhanden).

Ich habe schon hin und her überlegt, leider habe ich noch nicht mal einen ansatzpunkt.

Hat jemand einen Tip wie ich das ganze angehen könnte? (Als nicht Mathematiker)

Offline

#2 2015-07-15 14:58:16

Gehrke
Member
From: Bremen, DE
Registered: 2013-10-19
Posts: 1,894
Website

Re: Deutschland rastern und PLZ ermitteln.

Das Raster und die Mittelpunkte dürften ja einfach sein. Welche PLZ-Grenze zu dem Punkt gehört, kannst Du mit PostGIS (Funktion ST_Contains für boundary=postal_code) und einer OSM-Datenbank ermitteln (siehe osmosis).

Aber ist es wirklich so sinnvoll, für einem 20km-Raster eine PLZ zu ermitteln?

Last edited by Gehrke (2015-07-15 14:58:46)

Offline

#3 2015-07-15 15:17:37

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Deutschland rastern und PLZ ermitteln.

hhcm wrote:

für ein Projekt suche ich eine Möglichkeit die Deutschlandkarte in ein 20km Raster aufzuteilen.
Von den einzelnen Quadraten benötige ich dann den Mittelpunkt und von diesem Mittelpunk die Postleitzahl (falls vorhanden).

Hi, und erstmal herzlich willkommen im Forum!

Tips hab ich noch nicht sondern erstmal nur Fragen:

- Magst du uns ein wenig zu dem Projekt sagen? Privat? Schule/Uni? Firma? Wenn Firma nur Branche, Namen und so sind unwichtig. Damit könne wir ungefähr einordnem, wo es lang gehen könnte.

- Vorhandener Rechner? Auch nur ganz grob, weil auf nem Notebook kriegst du das bestimmt nicht hin.

- Kompjuterkentnisse? Sprachen? - und so'n Kram. geht aber auch noch später.

Gruss
walter

Offline

#4 2015-07-15 20:17:07

free_as_a_bird
Member
Registered: 2010-01-26
Posts: 171

Re: Deutschland rastern und PLZ ermitteln.

Da ich grade an einem ähnlichen Problem sitz (leider mit weltweiten Daten..), vielleicht zwei Ideen als Anregung:

Spatialite hat ein tesselation-Modul: Du gibtst ein Polygon, z. B. die Grenzen Deutschlands vor, und das Ding zerlegt dir die Fläche in Rechtecke, Hexagone oder Voronoj-Flächen. (siehe die Screenshots auf der verlinkten Seite)

Alternativ könntest Du's mit QGIS und dem MMQGIS-Plugin versuchen..
Damit liessen sich ebenfalls regelmäßige Flächen errechnen (Menüpunkt Create Grid Lines Layer)

Damit hättest Du schon einmal den ersten Schritt, nämlich die Mittelpunkte. Im zweiten Schritt bräuchtest Du zu den Mittelpunkten die Postleitzahlen..
Fixe Idee: der Nominatim Reverse Geocoder (Bsp. http://nominatim.openstreetmap.org/reve … sdetails=1, Doku hier http://wiki.openstreetmap.org/wiki/Nomi … Geocoding)

Vielleicht geht's aber auch viel, viel einfacher mit der PLZ-Karte?

Walter, lassen sich die PLZ-Gebiete denn auch als Shape-Datei downloaden?

Offline

#5 2015-07-15 21:29:07

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Deutschland rastern und PLZ ermitteln.

free_as_a_bird wrote:

Walter, lassen sich die PLZ-Gebiete denn auch als Shape-Datei downloaden?

klaro. allerdings nur DE

Last edited by wambacher (2015-07-15 21:30:00)

Offline

#6 2015-07-15 21:48:43

free_as_a_bird
Member
Registered: 2010-01-26
Posts: 171

Re: Deutschland rastern und PLZ ermitteln.

Mhhhm, die naive Herangehensweise, unter https://osm.wno-edv-service.de/pcboundaries/ Deutschland aufzureissen und Select Children zu wählen hat mir grade den Browser in den Tod gerissen big_smile

Gibt's denn einen DE-Komplettdownload mit allen Postleitzahlengebieten?

Offline

#7 2015-07-15 22:07:34

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Deutschland rastern und PLZ ermitteln.

free_as_a_bird wrote:

Gibt's denn einen DE-Komplettdownload mit allen Postleitzahlengebieten?

Nö, noch nicht. Steht aber in meiner Pipeline, da der Boundaries-Export das ja inzwischen kann.

Gruss
walter

Offline

#8 2015-07-16 06:04:24

hhcm
Member
Registered: 2015-07-15
Posts: 3

Re: Deutschland rastern und PLZ ermitteln.

Gehrke wrote:

Das Raster und die Mittelpunkte dürften ja einfach sein. Welche PLZ-Grenze zu dem Punkt gehört, kannst Du mit PostGIS (Funktion ST_Contains für boundary=postal_code) und einer OSM-Datenbank ermitteln (siehe osmosis).

Für mich ist das nicht so einfach. Das ganze ist noch relatives Neuland.

wambacher wrote:

- Magst du uns ein wenig zu dem Projekt sagen? Privat? Schule/Uni? Firma? Wenn Firma nur Branche, Namen und so sind unwichtig. Damit könne wir ungefähr einordnem, wo es lang gehen könnte.

Es soll mal eine Suche nach Servicepoints werden. Das ganze soll so Flächendeckend werden, dass ich bei der Suche IMMER mindestens einen Treffer erhalte. Ich benötige die Mitte einer solchen Rasterkachel um dort einen Servicepoint zu suchen und die Daten in meiner DB zu versenken.
Wenn nun jemand 5km weiter einen Servicepoint sucht, bekommt er min. einen Treffer.
Über Sinn und Unsinn kann man sich sicherlich streiten tongue

wambacher wrote:

- Vorhandener Rechner? Auch nur ganz grob, weil auf nem Notebook kriegst du das bestimmt nicht hin.

Ich habe auf der vorhandenen Hardware schonmal ein nominatim installiert.
Es hat etwas gedauert aber ich denke die Rechenleistung reicht.

wambacher wrote:

- Kompjuterkentnisse? Sprachen? - und so'n Kram. geht aber auch noch später.

Hmm. Kurzfassung. Ich spreche (Englisch, Deutsch), Object Pascal, PHP, JAVA, (eingerostetes C/C++) und Javascript.
Mit Computern beschäftige ich mich seit meinem 8 Lebensjahr. Das ist nun auch schon fast 30 Jahre her smile

Trotz allem bekomme ich bei "free_as_a_bird´s" Vorschlägen erst mal Hautausschlag. Zu viel Input smile

Das Tesselations Modul sieht schon mal nach einem Plan aus. Dafür schon mal danke.

Vielleicht denke ich aber auch viel zu quer. Eigentlich bräuchte ich nur jede 20km eine Postleitzahl.
Die opengeodb habe ich mir z.B schon angesehen aber irgendwie stehe ich komplett auf dem Schlauch.

Offline

#9 2015-07-16 07:52:53

Gehrke
Member
From: Bremen, DE
Registered: 2013-10-19
Posts: 1,894
Website

Re: Deutschland rastern und PLZ ermitteln.

hhcm wrote:

Die opengeodb habe ich mir z.B schon angesehen aber irgendwie stehe ich komplett auf dem Schlauch.

Auf die Aktualität der PLZs würde ich mich dort nicht verlassen. Nimm OSM!

Offline

#10 2015-07-16 09:54:52

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Deutschland rastern und PLZ ermitteln.

hhcm wrote:

Es soll mal eine Suche nach Servicepoints werden. Das ganze soll so Flächendeckend werden, dass ich bei der Suche IMMER mindestens einen Treffer erhalte. Ich benötige die Mitte einer solchen Rasterkachel um dort einen Servicepoint zu suchen und die Daten in meiner DB zu versenken.
Wenn nun jemand 5km weiter einen Servicepoint sucht, bekommt er min. einen Treffer.

Verstehe nicht, wieso du keine Umkreissuche mit Nominatim machst. Oder möchstes du eine Liste erstellen? Dann müsstest du natürlich ganz DE "abklappern" und dir das Suchergebniss pro "Messpunkt" merken. Da kommt wohl das Raster her?

Ich habe auf der vorhandenen Hardware schonmal ein nominatim installiert.

Ja, sollte. Das bedeutet für mich aber auch, dass du da eine PostGIS-DB mit OSM-Daten am Laufen hast - und das ist optimal. Denn  PostGIS ist genau das Richtige dafür.

Object Pascal, PHP, JAVA, (eingerostetes C/C++) und Javascript.

Klasse!

Ansatz: JAVA mit JDBC auf die Datenbank zugreifen lassen und dort die Daten raussuchen. In dem Programm eine Schleife von Nord nach Süd und West nach Ost laufen lassen und für jeden Messpunt die Auswertung machen. 
Oder das Ganze direkt in PL/pgSQL machen. Da weiss ich aber nicht, wie du an Nominatim rankommst.

Gruss
walter

Ps: ich mach 95% meiner Sachen mit Java, JavaScript und PL/pgSQL. Als Webserver setzte ich Jetty9 von Apache ein. Das Teil arbeitet mit Servlets, die dann in Java (richtigem Java!) geschrieben sind. Sowas ähnliches wie TomCat, gaub ich.

Offline

#11 2015-07-16 11:02:48

hhcm
Member
Registered: 2015-07-15
Posts: 3

Re: Deutschland rastern und PLZ ermitteln.

wambacher wrote:

Verstehe nicht, wieso du keine Umkreissuche mit Nominatim machst. Oder möchstes du eine Liste erstellen? Dann müsstest du natürlich ganz DE "abklappern" und dir das Suchergebniss pro "Messpunkt" merken. Da kommt wohl das Raster her?

Die Umkreissuche wird ja nachher das Ergebnis sein. Wenn ich denn die Servicepoints alle erfasst habe.
Ich benötige die Liste mit den Mittelpunkten, um den gefundenen Servicepoint dann für die Umkreissuche zu einzupflegen.

warmbacher wrote:

Ansatz: JAVA mit JDBC auf die Datenbank zugreifen lassen und dort die Daten raussuchen. In dem Programm eine Schleife von Nord nach Süd und West nach Ost laufen lassen und für jeden Messpunt die Auswertung machen.

Nochmal der kurze hinweis auf mein Eingangsposting ""(Als nicht Mathematiker)"" smile
Ich werde mir dann mal die Datenbank zu gemüte führen. Mal sehen wie weit ich damit komme.

Schon mal danke für den Schubs in die scheinbar richtige Richtung.

Offline

#12 2015-07-16 11:45:51

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Deutschland rastern und PLZ ermitteln.

hhcm wrote:

Ich benötige die Liste mit den Mittelpunkten, um den gefundenen Servicepoint dann für die Umkreissuche zu einzupflegen.

Wie schon angedeutet: Eine doppelte Schleife mit lat/lon, passende Schrittweiten und an der Position das PLZ-Gebiet suchen.

  for (var x=5.5;x< 16;x=x+DX)
     for (var y=47;y< 55.5;y=y+DY) {
     plz= tags->'postal_code' 
            from planet_osm_polygon 
           where st_contains((select way from planet_osm_polygon where boundary='postal_code'),st_point(x,y));
    ... 
  }

halber Pseudocode, ist also nicht per Copy/Paste zu verwenden. Aber in etwa so sollte es laufen.

den Job macht st_contains() aus Kapitel 8 von http://postgis.net/docs/manual-2.0/

Gruss
walter

ach ja: Nominatim wird hier nicht gebraucht, du solltest die DB aber mit osm2pgsql und dem üblicherweise zum Rendern verwendeten Style importieren. Nicht den Style für Nominatim nehmen, der ist total anders aufgebaut.

Solltest du aber dennoch Nominatin verwenden wollen/müssen, musst du selber sehen wie du an die PLZ-Grenzen herankommst - ich kann dir dann nicht weiter helfen.

Last edited by wambacher (2015-07-16 11:46:47)

Offline

#13 2015-07-16 13:00:55

moenk
Member
From: N52.466 E13.335
Registered: 2012-04-02
Posts: 493
Website

Re: Deutschland rastern und PLZ ermitteln.

Moin,

das einfachste dürfte sein Du versenkst die Mittelpunkte der PLZ-Gebiete in Deiner Datenbank und machst dann eine Abfrage bei der sowas steht wie "... order by dist asc limit 1" für gegebene Koordinaten.

LG,

-moenk

Offline

Board footer

Powered by FluxBB