You are not logged in.

#1 2014-10-30 09:54:26

Ali Sabahi
Member
Registered: 2014-10-30
Posts: 5

Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

Hallo,
Ich habe nur den Namen einer Stadt, z.B. Stuttgart. mit welcher Abfrage kann ich die PLZ(s) in XML bekommen?
Die folgende Abfrage gibt nur 8 spezifische PLZs in einigen Stadtteilen zurück:
http://nominatim.openstreetmap.org/sear … sdetails=1
obwohl Stuttgart fast 3 Duzend PLZs hat.
Vielen Dank!

Offline

#2 2014-10-30 10:02:46

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

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

Kann ich nicht allg. beantworten. Mit PostGIS und OSM-DB geht es. Beispiel Stuttgart als CSV (Stand 1.10.2014):

"schluessel";"postcode";"area_qm";"centroid_latlon";"surface_refpoint_latlon"
"081110000000";"70173";1544743;"48.7816 9.1819";"48.7816 9.1831"
"081110000000";"70174";1258732;"48.7829 9.1703";"48.7819 9.1712"
"081110000000";"70176";942632;"48.7774 9.1617";"48.7778 9.1620"
"081110000000";"70178";1066739;"48.7691 9.1676";"48.7682 9.1666"
"081110000000";"70180";1351740;"48.7628 9.1750";"48.7630 9.1744"
"081110000000";"70182";591381;"48.7752 9.1855";"48.7767 9.1874"
"081110000000";"70184";4330263;"48.7646 9.1957";"48.7668 9.1896"
"081110000000";"70186";2907732;"48.7736 9.2111";"48.7735 9.2110"
"081110000000";"70188";2243482;"48.7846 9.2135";"48.7863 9.2154"
"081110000000";"70190";2113973;"48.7914 9.2030";"48.7903 9.2021"
"081110000000";"70191";3407302;"48.7986 9.1849";"48.7979 9.1885"
"081110000000";"70192";3308451;"48.7962 9.1634";"48.7979 9.1652"
"081110000000";"70193";2670693;"48.7812 9.1459";"48.7828 9.1467"
"081110000000";"70195";5753033;"48.7870 9.1266";"48.7857 9.1243"
"081110000000";"70197";10626496;"48.7712 9.1129";"48.7743 9.1023"
"081110000000";"70199";3229669;"48.7576 9.1463";"48.7574 9.1454"
"081110000000";"70327";10110359;"48.7793 9.2518";"48.7786 9.2461"
"081110000000";"70329";11966896;"48.7648 9.2603";"48.7644 9.2247"
"081110000000";"70372";4392976;"48.7988 9.2253";"48.8000 9.2221"
"081110000000";"70374";5611847;"48.8115 9.2405";"48.8109 9.2409"
"081110000000";"70376";7183803;"48.8160 9.2031";"48.8183 9.2065"
"081110000000";"70378";8907720;"48.8436 9.2232";"48.8453 9.2260"
"081110000000";"70435";6400385;"48.8306 9.1615";"48.8314 9.1589"
"081110000000";"70437";5897464;"48.8391 9.1931";"48.8358 9.1926"
"081110000000";"70439";4815467;"48.8481 9.1517";"48.8495 9.1553"
"081110000000";"70469";7759430;"48.8111 9.1539";"48.8055 9.1479"
"081110000000";"70499";15287219;"48.8096 9.1058";"48.8085 9.1087"
"081110000000";"70563";4557746;"48.7305 9.1049";"48.7292 9.1028"
"081110000000";"70565";7833133;"48.7163 9.1240";"48.7170 9.1116"
"081110000000";"70567";8550295;"48.7253 9.1559";"48.7215 9.1560"
"081110000000";"70569";17000499;"48.7452 9.0901";"48.7446 9.0891"
"081110000000";"70597";9055460;"48.7452 9.1686";"48.7447 9.1677"
"081110000000";"70599";17119991;"48.7123 9.2044";"48.7181 9.2015"
"081110000000";"70619";7530735;"48.7449 9.2213";"48.7422 9.2222"

Last edited by Gehrke (2014-10-30 10:03:43)

Offline

#3 2014-10-30 10:14:26

viw
Member
Registered: 2010-05-15
Posts: 2,623

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

Ali Sabahi wrote:

Hallo,
Ich habe nur den Namen einer Stadt, z.B. Stuttgart. mit welcher Abfrage kann ich die PLZ(s) in XML bekommen?
Die folgende Abfrage gibt nur 8 spezifische PLZs in einigen Stadtteilen zurück:
http://nominatim.openstreetmap.org/sear … sdetails=1
obwohl Stuttgart fast 3 Duzend PLZs hat.
Vielen Dank!

Wie oft machst du das denn? Für wenige Abfragen bietet sich vielleicht die Overpassapi an.

Offline

#4 2014-10-30 13:09:47

gormo
Member
Registered: 2013-08-01
Posts: 2,101
Website

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

Gehrke wrote:

Kann ich nicht allg. beantworten. Mit PostGIS und OSM-DB geht es. Beispiel Stuttgart als CSV (Stand 1.10.2014):

Wenn du noch die Abfrage dazu schreibst kann man gucken, ob man die auch gegen die Overpass-API formuliert kriegt.

edit: erster Versuch: http://overpass-turbo.eu/s/5GW

boundary=postal_code in Stuttgart

über den Wizard.

Last edited by gormo (2014-10-30 13:12:13)


OSM hat nicht das Ziel bis Ende des Monats einen vollständigen Datensatz der Welt zu enthalten.
(nach S.W.) - Aber weil die Welt vielfältig ist, weil sie auch im Detail interessant ist, mag ich genaue Karten (nach C.)

Offline

#5 2014-10-30 21:07:43

der-martin
Member
Registered: 2014-10-10
Posts: 140

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

Die meiner Meinung nach einfachste Variante: Gib auf http://www.postdirekt.de/plzserver/ bei "Ort" "Stuttgart" und bei "Straße und Hausnummer" nichts ein, klicke beim Ergebnis auf "Stuttgart", und Dir werden Dir alle PLZ von Stuttgart ausgespuckt.

Last edited by der-martin (2014-10-30 21:23:24)

Offline

#6 2014-10-30 21:09:54

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

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

gormo wrote:

Wenn du noch die Abfrage dazu schreibst kann man gucken, ob man die auch gegen die Overpass-API formuliert kriegt.
edit: erster Versuch: http://overpass-turbo.eu/s/5GW

Das verlinkte Overpass sollte sich auf Relationen beschränken.
Es fehlen evtl. noch PLZ-Relationen, die nur teils in der Gemeinde liegen (kenn Overpass zu schlecht). Sonst schon entsprechend meinem Query.

Last edited by Gehrke (2014-10-30 21:13:00)

Offline

#7 2014-10-31 08:51:15

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

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

der-martin wrote:

Die meiner Meinung nach einfachste Variante: Gib auf http://www.postdirekt.de/plzserver/ bei "Ort" "Stuttgart" und bei "Straße und Hausnummer" nichts ein, klicke beim Ergebnis auf "Stuttgart", und Dir werden Dir alle PLZ von Stuttgart ausgespuckt.

Ja, generell schon. Funktioniert aber nicht, wenn man wirklich alle haben will, aber die DPAG die PLZ für die Gemeinde nicht listet (vgl. z.B. Süsel in Schleswig-Holstein).
Außerdem muss man sich im Zweifel länger durchklicken. Und ne größere Auswertung über mehrere Gemeinden ist damit natürlich auch nicht angenehm.

Last edited by Gehrke (2014-10-31 08:52:16)

Offline

#8 2014-10-31 09:19:24

gormo
Member
Registered: 2013-08-01
Posts: 2,101
Website

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

Gehrke wrote:
gormo wrote:

Wenn du noch die Abfrage dazu schreibst kann man gucken, ob man die auch gegen die Overpass-API formuliert kriegt.
edit: erster Versuch: http://overpass-turbo.eu/s/5GW

[...]
Es fehlen evtl. noch PLZ-Relationen, die nur teils in der Gemeinde liegen [...]

Hast du da mal ein Gebiet, das man testen könnte - also die PLZ/Nummer einer PLZ-Relation die nur halb in einer Gemeinde liegt?


OSM hat nicht das Ziel bis Ende des Monats einen vollständigen Datensatz der Welt zu enthalten.
(nach S.W.) - Aber weil die Welt vielfältig ist, weil sie auch im Detail interessant ist, mag ich genaue Karten (nach C.)

Offline

#9 2014-10-31 09:22:43

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

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

gormo wrote:

Hast du da mal ein Gebiet, das man testen könnte - also die PLZ/Nummer einer PLZ-Relation die nur halb in einer Gemeinde liegt?

Probier's zuerst mal mit 49779 Oberlangen und 49779 Niederlangen (nördlich von Meppen und Haren).

Auch relevant als Grundlagenwissen: http://en.wikipedia.org/wiki/DE-9IM

Last edited by Gehrke (2014-10-31 09:30:07)

Offline

#10 2014-10-31 09:27:23

Ali Sabahi
Member
Registered: 2014-10-30
Posts: 5

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

Danke Leute für die Antworte.
Aber wie ihr schon gesehen habt, brauche ich eine NOMINATIM online Abfrage (und keine SQL) die mir die Daten (PLZs) via XML zurück gibt. Ich weiß nur nicht wie ich diese Abfrage zusammensetzen soll damit die richtige Daten zurück kommen, wenn es überhaupt möglich ist. Als Eingangs-Data habe ich nur den Stadtnamen und nichts weiter.
Jedwede Hilfe ist willkommen!

Offline

#11 2014-10-31 09:29:39

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

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

Ali Sabahi wrote:

Aber wie ihr schon gesehen habt, brauche ich eine NOMINATIM online Abfrage (und keine SQL) die mir die Daten (PLZs) via XML zurück gibt.

Da bin ich raus. Geht wahrscheinlich auch nicht, weil Nominatim da im Zweifel eh' Mist macht.

Offline

#12 2014-10-31 09:36:15

gormo
Member
Registered: 2013-08-01
Posts: 2,101
Website

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

Ali Sabahi wrote:

Danke Leute für die Antworte.
Aber wie ihr schon gesehen habt, brauche ich eine NOMINATIM online Abfrage (und keine SQL) die mir die Daten (PLZs) via XML zurück gibt.

Abfragen gegen die Overpass Turbo-API gehen also ganz sicher nicht? Da kommen auch Daten raus. Halt als geoJSON.

Du kannst mit (beispielsweise) [url]http://overpass-api.de/api/interpreter?data=%2F*%0AThis%20has%20been%20generated%20by%20the%20overpass-turbo%20wizard.%0AThe%20original%20search%20was%3A%0A%E2%80%9Cboundary%3Dpostal_code%20in%20%22Stuttgart%22%E2%80%9D%0A*%2F%0A[out%3Ajson][timeout%3A25]%3B%0A%2F%2F%20fetch%20area%20%E2%80%9CStuttgart%E2%80%9D%20to%20search%20in%0Aarea%283602793104%29-%3E.searchArea%3B%0A%2F%2F%20gather%20results%0A%28%0A%20%20%2F%2F%20query%20part%20for%3A%20%E2%80%9Cboundary%3Dpostal_code%E2%80%9D%0A%20%20relation[%22boundary%22%3D%22postal_code%22]%28area.searchArea%29%3B%0A%29%3B%0A%2F%2F%20print%20results%0Aout%20body%3B%0A%3E%3B%0Aout%20skel%20qt%3B[/url]

die Abfrage gegen die Overpass API stellen.

Für deine Programmierung müsstest du jetzt nurnoch im Query String der Abfrage jeweils Stuttgart durch deine Stadt ersetzen - halt sofern du das Ergebnis als geoJSON verarbeiten kannst.


OSM hat nicht das Ziel bis Ende des Monats einen vollständigen Datensatz der Welt zu enthalten.
(nach S.W.) - Aber weil die Welt vielfältig ist, weil sie auch im Detail interessant ist, mag ich genaue Karten (nach C.)

Offline

#13 2014-10-31 09:41:32

Ali Sabahi
Member
Registered: 2014-10-30
Posts: 5

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

viw wrote:
Ali Sabahi wrote:

Hallo,
Ich habe nur den Namen einer Stadt, z.B. Stuttgart. mit welcher Abfrage kann ich die PLZ(s) in XML bekommen?
Die folgende Abfrage gibt nur 8 spezifische PLZs in einigen Stadtteilen zurück:
http://nominatim.openstreetmap.org/sear … sdetails=1
obwohl Stuttgart fast 3 Duzend PLZs hat.
Vielen Dank!

Wie oft machst du das denn? Für wenige Abfragen bietet sich vielleicht die Overpassapi an.

Nicht oft. Normalerweise hat der Benutzer meiner Anwendung, auch eine Straße eingegeben. Dann bekomme ich immer die PLZs problemlos. Aber es kann auch ab und zu vorkommen dass der Benutzer, die Straßennamen nicht hat und nur den Namen der Stadt/Gemeine/Dorf etc.  weiß, dann möchte ich das meine Anwendung in der Lage ist, durch einen NOMINATIM online-Abfrage, eine richtige PLZ (oder PLZ-Liste) aus der XML lesen und dem Benutzer vorschlagen kann.

Offline

#14 2014-10-31 09:43:04

couchmapper
Member
Registered: 2013-02-17
Posts: 462

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

gormo wrote:

Für deine Programmierung müsstest du jetzt nurnoch im Query String der Abfrage jeweils Stuttgart durch deine Stadt ersetzen - halt sofern du das Ergebnis als geoJSON verarbeiten kannst.

Das stimmt so nicht. Overpass API liefert JSON, aber kein geoJSON.

Offline

#15 2014-10-31 09:43:08

Ali Sabahi
Member
Registered: 2014-10-30
Posts: 5

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

Gehrke wrote:
Ali Sabahi wrote:

Aber wie ihr schon gesehen habt, brauche ich eine NOMINATIM online Abfrage (und keine SQL) die mir die Daten (PLZs) via XML zurück gibt.

Da bin ich raus. Geht wahrscheinlich auch nicht, weil Nominatim da im Zweifel eh' Mist macht.

Habe ich auch allmählich den Eindruck ! sad
Ich dachte aber vielleicht gibt es hier einen Query-Spezialist für Nominatim!

Last edited by Ali Sabahi (2014-10-31 09:44:03)

Offline

#16 2014-10-31 09:52:07

Ali Sabahi
Member
Registered: 2014-10-30
Posts: 5

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

gormo wrote:
Ali Sabahi wrote:

Danke Leute für die Antworte.
Aber wie ihr schon gesehen habt, brauche ich eine NOMINATIM online Abfrage (und keine SQL) die mir die Daten (PLZs) via XML zurück gibt.

Abfragen gegen die Overpass Turbo-API gehen also ganz sicher nicht? Da kommen auch Daten raus. Halt als geoJSON.

Du kannst mit (beispielsweise) [url]http://overpass-api.de/api/interpreter?data=%2F*%0AThis%20has%20been%20generated%20by%20the%20overpass-turbo%20wizard.%0AThe%20original%20search%20was%3A%0A%E2%80%9Cboundary%3Dpostal_code%20in%20%22Stuttgart%22%E2%80%9D%0A*%2F%0A[out%3Ajson][timeout%3A25]%3B%0A%2F%2F%20fetch%20area%20%E2%80%9CStuttgart%E2%80%9D%20to%20search%20in%0Aarea%283602793104%29-%3E.searchArea%3B%0A%2F%2F%20gather%20results%0A%28%0A%20%20%2F%2F%20query%20part%20for%3A%20%E2%80%9Cboundary%3Dpostal_code%E2%80%9D%0A%20%20relation[%22boundary%22%3D%22postal_code%22]%28area.searchArea%29%3B%0A%29%3B%0A%2F%2F%20print%20results%0Aout%20body%3B%0A%3E%3B%0Aout%20skel%20qt%3B[/url]

die Abfrage gegen die Overpass API stellen.

Für deine Programmierung müsstest du jetzt nurnoch im Query String der Abfrage jeweils Stuttgart durch deine Stadt ersetzen - halt sofern du das Ergebnis als geoJSON verarbeiten kannst.

Danke , ich werde versuchen es einzubauen, muss ich aber einen weg finden, *.json-Datei programmatisch zu lesen. Ist dass XML-verwandt?

Offline

#17 2014-10-31 10:50:19

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

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

Ali Sabahi wrote:

Danke , ich werde versuchen es einzubauen, muss ich aber einen weg finden, *.json-Datei programmatisch zu lesen. Ist dass XML-verwandt?

Jain,

es ist natürlich kein XML sondern ein anderes struktuiertes Format. JSON ist aufgrund seines einfacheren Aufbaus wesentlich leichter zu handhaben und kann schon als der Nachfolger von XML angesehen werden. In jeder (vernünftigen) Programmsprache gibt es inzwischen Interfaces dafür, kommt halt drauf an, was du benutzt.

Gruss
walter

ps: wofür brauchst du denn die PLZ einer Stadt? Ist dir inzwischen klar, dass das nicht immer stimmt? Es gibt auch PLZ-Gebiete, die mehrere Städte enthalten oder über Stadtgrenzen hinausgehen. Die pauschale Annahme "eine PLZ in einer Stadt und nur dort" ist falsch.

Last edited by wambacher (2014-10-31 10:50:57)

Offline

#18 2014-10-31 11:04:24

fx99
Member
From: Baden-Württemberg
Registered: 2009-06-02
Posts: 1,684

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

Overpass kann auch XML ausgeben.
Wahrscheinlich kann man auch verhindern, dass alle ways mit ausgegeben werden.

@gormo
Kannst Du Deine interessante Overpass Abfrage auch mal im "Klartext" posten?

Offline

#19 2014-10-31 11:16:29

rayquaza
Member
From: DE-BW
Registered: 2012-11-18
Posts: 2,007

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

fx99 wrote:

Kannst Du Deine interessante Overpass Abfrage auch mal im "Klartext" posten?

Ausgabe von decodeURIComponent():

/*
This has been generated by the overpass-turbo wizard.
The original search was:
“boundary=postal_code in "Stuttgart"”
*/
[out:json][timeout:25];
// fetch area “Stuttgart” to search in
area(3602793104)->.searchArea;
// gather results
(
  // query part for: “boundary=postal_code”
  relation["boundary"="postal_code"](area.searchArea);
);
// print results
out body;
>;
out skel qt;
fx99 wrote:

Wahrscheinlich kann man auch verhindern, dass alle ways mit ausgegeben werden.

Ja, einfach die Suche nach Unterelementen (">;") weglassen.

Offline

#20 2014-10-31 14:00:09

viw
Member
Registered: 2010-05-15
Posts: 2,623

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

Hier mein Vorschlag:
http://overpass-turbo.eu/?Q=area[name%3D%22Stuttgart%22]%3B%0Arel%28area%29[%22boundary%22%3D%22postal_code%22]%3B%0Aout%20%20tags%3B&C=52.5214;13.4137;17

area[name="Stuttgart"];
rel(area)["boundary"="postal_code"];
out  tags;

Last edited by viw (2014-10-31 14:08:38)

Offline

#21 2014-10-31 14:07:09

fx99
Member
From: Baden-Württemberg
Registered: 2009-06-02
Posts: 1,684

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

/* overpass-turbo wizard to search :
“boundary=postal_code in "Stuttgart"”
*/
[timeout:25];
// fetch area “Stuttgart” to search in
area[admin_level~"[68]"][name~Stuttgart]->.searchArea;
// gather results
(
// query part for: “boundary=postal_code”
  relation[boundary=postal_code](area.searchArea);
);
// print results
 out body;
  >;
out skel qt;

direkte Suche nach Ortsnamen: [68] weil Stuttgart nur als level 6 getaggt.

Offline

#22 2014-10-31 14:16:48

gormo
Member
Registered: 2013-08-01
Posts: 2,101
Website

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

fx99 wrote:

@gormo
Kannst Du Deine interessante Overpass Abfrage auch mal im "Klartext" posten?

/*
This has been generated by the overpass-turbo wizard.
The original search was:
“boundary=postal_code in "Stuttgart"”
*/
[out:json][timeout:25];
// fetch area “Stuttgart” to search in
{{geocodeArea:Stuttgart}}->.searchArea;
// gather results
(
  // query part for: “boundary=postal_code”
  node["boundary"="postal_code"](area.searchArea);
  way["boundary"="postal_code"](area.searchArea);
  relation["boundary"="postal_code"](area.searchArea);
);
// print results
out body;
>;
out skel qt;

Müsste man vermutlich noch nodes und ways rauswerfen, weil man die nicht braucht.

Mit welchem Parameter gibt die Overpass-API denn XML raus? Ich hab &format=xml versucht, das brachte nix, dann hab ich aufgegeben.


OSM hat nicht das Ziel bis Ende des Monats einen vollständigen Datensatz der Welt zu enthalten.
(nach S.W.) - Aber weil die Welt vielfältig ist, weil sie auch im Detail interessant ist, mag ich genaue Karten (nach C.)

Offline

#23 2014-10-31 14:29:22

couchmapper
Member
Registered: 2013-02-17
Posts: 462

Re: Wie kann ich PLZ / alle PLZs von einer Stadt bekommen?

gormo wrote:

Müsste man vermutlich noch nodes und ways rauswerfen, weil man die nicht braucht.

Kann man beim Wizard auch gleich angeben, dann wird die Query nur für Relationen gebaut:

type:relation and boundary=postal_code in "Stuttgart"

Mit welchem Parameter gibt die Overpass-API denn XML raus? Ich hab &format=xml versucht, das brachte nix, dann hab ich aufgegeben.

Einfach das generierte [out:json] durch [out:xml] ersetzen.

Offline

Board footer

Powered by FluxBB