Boundaries Map 4.0-Beta Tester gesucht

Hi,

ich hab mal wieder was Neues: Eine OSM-Boundaries-Anwendung, die dynamische Downloads für Boundaries in den verschiedensten Formaten anbieten soll.




(auf Bilder klicken)

Dafür such ich mal wieder mutige Betatester, die mich mit konstruktiven Feedback versorgen. Hier nachfragen oder eine kurze PN an mich und ich schick den URL rüber.

Aktuelle Features:

  • Administrative Grenzen von DACH (natürlich Live-Daten)
  • Auswahl über einen Navigationsbaum
  • Export im Shape-, JSON- und POLY-Format

Geplant bzw. in Arbeit:

  • PLZ-Grenzen
  • Export im OSM, Poly- und Buffered Poly-Format (*) ; weitere Formate (KML?, GPX?, …) auf begründete Anfrage.

Machbar:

  • andere “Grenzen” wie Zonen, Wahlkreise, “Gebiete” sollten machbar sein.

Aktuelle Fehler und fehlende Features wie immer auf der TODO-Seite. An einem Wiki arbeite ich noch.

Gruß
walter

*) Poly-Files, die einen gewissen Bereich (Buffer) größer sind als die Grenzen und zudem einfachere Polygone enthalten. Damit gibt es beim Clippen weniger Probleme, da wirklich alle Objekte des gewünschten Bereiches enthalten sein werden. Außerdem erhöhen gröbere Poly-Files die Performance beim Clippen. Für die PostGIS-Profies: st_buffer() und st_simplify().

kann man damit auch historische grenzen visualisieren. OSM soll ja immer die aktuelle situation darstellen. könnte man denn nicht irgendwie extern sich aus vorhandenen ways relationen zusammenbasteln und mit deinem programm darstellen lassen?

Das ist nicht der Sinn des Programmes. Die Karte ist eigentlich nur dafür da, daß man sieht, was man gleich beim Download - hoffentlich - bekommt.
Visualisieren kannst du die “ganz einfach” indem du im Osm-Browser die Relation angibst: http://openstreetmap.org/browse/relation/403139

Aber als Idee für mein Programm: Relation eingeben und dann wie gehabt weitermachen - das könnte gehen. Ist es sowas etwa, was du meinst?

Gruss
walter

Ab sofort steht die Betaversion zum offenen Test unter dem Link http://osm.wno-edv-service.de/boundaries zur Verfügung.
Ich hoffe, daß ich einige Hinweise dazu von euch bekomme.

Gruss
walter

Tolle Sache! Danke!

Kleine Frage: Würde Dein Tool immer noch “sauber” arbeiten, wenn verschiedene administrative Ebenen als “subareas” miteinander verbunden wären? Das kriegen osmosis und osmfilter ja noch nicht hin.

nein, da Subareas den Standards für Multipolygone widersprechen.

Wir haben die bei uns in Deutschland kürzlich komplett rausgeschmissen und ich verstehe auch nicht, wieso Polen die so vehement verteidigt. Sie machen keinen Sinn, sind redundant, nutzlos und sogar störend.

Solange diese “Subareas” allerdings saubere Admin-Level haben, ist es aber kein Problem, dafür Poly-Files zu erzeugen. Aber natürlich für jede Grenze/Relation ein eigenes Poly-File. Allerdings verstehe ich nicht, wozu das gut sein soll.

Gruss
walter

edit: ich hab Polen mal mit reingenommen. sieht doch ganz sauber aus - ohne daß ich irgendwas mit subareas gemacht hätte. die sind wirklich hirnrissig unnötig.

Hallo Walter,

wieder großes Lob an dich für deine Arbeit!!!

Frage:
Macht es vielleicht Sinn oder ist es eher Unsinn, im Baum links bei den Gemeinde-Namen auch noch name:prefix= und name:postfix= auszuwerten?

Denn es gibt hier und da irgendwelche Samtgemeinden, die beinhalten u.a. noch eine kleinere gleichnamige Gemeinde mit admin_level=8

Technisch kein großes Problem. Aber reicht denn nicht das Admin-level aus, das in Klammern dahinter steht? Da steht dann xyz (7) und da drin xyz (8)

Irgendwie hab ich das Gefühl, daß da recht komische Namen rauskämen, wenn ich “name:prefix || name || name:suffix” ausgebe.
ich mach mal ne kleine Liste, wie das aussehen würde.

Gruss
walter

hier:


   id    |                 tree                 |                 Full Name                  
---------+--------------------------------------+--------------------------------------------
  453166 | Lochum (8)                           | Gemeinde Lochum
 1077559 | Winkelhofer Forst (8)                | Gemeindefreies Gebiet Winkelhofer Forst
   62558 | Landkreis Wolfenbüttel (6)           | Landkreis Landkreis Wolfenbüttel
 1432634 | Oderwald (7)                         | Samtgemeinde Oderwald
 1336408 | Vechta (8)                           | Stadt Vechta
 1432646 | Asse (7)                             | Samtgemeinde Asse
 1432631 | Sickte (7)                           | Samtgemeinde Sickte
 1419919 | Woldegk (8)                          | Stadt Woldegk
 1432808 | Usedom-Nord (7)                      | Amt Usedom-Nord
 1437549 | Bergen auf Rügen (7)                 | Amt Bergen auf Rügen
 1437951 | Nord-Rügen (7)                       | Amt Nord-Rügen
 1433091 | Usedom (8)                           | Stadt Usedom
 1433099 | Usedom-Süd (7)                       | Amt Usedom-Süd
 1451577 | Dömitz-Malliß (7)                    | Amt Dömitz-Malliß
 1573498 | Pellworm (7)                         | Amt Pellworm
  422700 | Dannstadt-Schauernheim (8)           | Ortsgemeinde Dannstadt-Schauernheim
  418406 | Dannstadt-Schauernheim (7)           | Verbandsgemeinde Dannstadt-Schauernheim
  418405 | Mutterstadt (8)                      | Verbandsfreie Gemeinde Mutterstadt
   62599 | Wismar (8)                           | Hansestadt Wismar
   62350 | Mittelsachsen (6)                    | Landkreis Mittelsachsen
   62345 | Görlitz (6)                          | Landkreis Görlitz
   62485 | Sächsische Schweiz-Osterzgebirge (6) | Landkreis Sächsische Schweiz-Osterzgebirge
   62771 | Niedersachsen (4)                    | Bundesland Niedersachsen
   62405 | Rostock (6)                          | Kreisfreie Hansestadt Rostock
   62466 | Saarlouis (6)                        | Landkreis Saarlouis
   62590 | Memmingen (6)                        | Kreisfreie Stadt Memmingen
   62357 | Altenkirchen (Westerwald) (6)        | Landkreis Altenkirchen (Westerwald)
   62384 | Bautzen (6)                          | Landkreis Bautzen
   62495 | Ulm (6)                              | Universitätsstadt Ulm
   62712 | Berchtesgadener Land (6)             | Landkreis Berchtesgadener Land
   62363 | Greifswald (8)                       | Hansestadt Greifswald
  446434 | Apensen (8)                          | Gemeinde Apensen
  444927 | Nottensdorf (8)                      | Gemeinde Nottensdorf
 1428589 | Föhr-Amrum (7)                       | Amt Föhr-Amrum
 1808966 | Walsrode (8)                         | Stadt Walsrode
 1079028 | Sittensen (8)                        | Gemeinde Sittensen
 1079023 | Tiste (8)                            | Gemeinde Tiste
   27021 | Kiel (6)                             | Landeshauptstadt Kiel
  382407 | Süsel (8)                            | Gemeinde Süsel
  382434 | Sierksdorf (8)                       | Gemeinde Sierksdorf
  569763 | Preetz-Land (7)                      | Amt Preetz-Land
  569759 | Schrevenborn (7)                     | Amt Schrevenborn
  970762 | Eider (7)                            | Amt Kirchspielslandgemeinden Eider
 1529660 | Ostholstein-Mitte (7)                | Amt Ostholstein-Mitte
  403810 | Mitteldithmarschen (7)               | Amt Mitteldithmarschen
  569751 | Probstei (7)                         | Amt Probstei
  401824 | Heider-Umland (7)                    | Amt Heider-Umland
  192988 | Cossebaude (9)                       | Ortschaft Cossebaude
   62532 | Aschaffenburg (6)                    | Kreisfreie Stadt Aschaffenburg
   91859 | Algermissen (8)                      | Gemeinde Algermissen
  421919 | Gebhardshain (8)                     | Ortsgemeinde Gebhardshain
  191645 | Dresden (6)                          | Kreisfreie Stadt Dresden
   88741 | Brüggen (8)                          | Burggemeinde Brüggen
  161967 | Kühbach (7)                          | Verwaltungsgemeinschaft Kühbach
  403578 | Bad Doberan-Land (7)                 | Amt Bad Doberan-Land
  382448 | Fehmarn (8)                          | Stadt Fehmarn
  394348 | Bad Doberan (8)                      | Stadt Bad Doberan
  420583 | Forst bei Wissen (Sieg) (8)          | Ortsgemeinde Forst bei Wissen (Sieg)
  421228 | Birken-Honigsessen (8)               | Ortsgemeinde Birken-Honigsessen
  422286 | Marienberg (8)                       | Stadt Marienberg
  420573 | Hamm (Sieg) (7)                      | Verbandsgemeinde Hamm (Sieg)
  422318 | Kirchen (Sieg) (7)                   | Verbandsgemeinde Kirchen (Sieg)
 1419838 | Neverin (7)                          | Amt Neverin
 1444879 | Rehna (8)                            | Stadt Rehna
 1769567 | Neustadt-Glewe (7)                   | Amt Neustadt-Glewe
 1444894 | Gadebusch (7)                        | Amt Gadebusch
 3422276 | Crivitz (7)                          | Amt Crivitz
  449793 | Parchimer Umland (7)                 | Amt Parchimer Umland
 1444913 | Gadebusch (8)                        | Stadt Gadebusch
  181162 | Zell a. Main (8)                     | Markt Zell a. Main
 1424421 | Penzlin (8)                          | Stadt Penzlin
 1444916 | Rehna (7)                            | Amt Rehna
  446508 | Büsum-Wesselburen (7)                | Amt Büsum-Wesselburen
 1606239 | Oranienbaum-Wörlitz (8)              | Stadt Oranienbaum-Wörlitz
 1427503 | Loitz (8)                            | Stadt Loitz
 1432545 | Anklam-Land (7)                      | Amt Anklam-Land
 1427695 | Stavenhagen (7)                      | Amt Stavenhagen
 1457062 | Neustadt-Glewe (8)                   | Stadt Neustadt-Glewe
 1419709 | Friedland (8)                        | Stadt Friedland
 1327655 | Gadegast (9)                         | Ortschaft Gadegast
 1427213 | Demmin-Land (7)                      | Amt Demmin-Land
 2020630 | Gnoien (7)                           | Amt Gnoien
 1419595 | Neustrelitz-Land (7)                 | Amt Neustrelitz-Land
 1419706 | Friedland (7)                        | Amt Friedland
 1427212 | Dargun (8)                           | Stadt Dargun
 1427697 | Treptower Tollensewinkel (7)         | Amt Treptower Tollensewinkel
 1424300 | Seenlandschaft Waren (7)             | Amt Seenlandschaft Waren
 1424311 | Waren (Müritz) (8)                   | Stadt Waren (Müritz)
 1427501 | Peenetal/Loitz (7)                   | Amt Peenetal/Loitz
 1427276 | Malchin am Kummerower See (7)        | Amt Malchin am Kummerower See
 1424419 | Penzliner Land (7)                   | Amt Penzliner Land
 1739376 | Mecklenburgische Seenplatte (6)      | Landkreis Mecklenburgische Seenplatte
 1739377 | Landkreis Rostock (6)                | Landkreis Landkreis Rostock
 1788279 | Recknitz-Trebeltal (7)               | Amt Recknitz-Trebeltal
 1785654 | Franzburg-Richtenberg (7)            | Amt Franzburg-Richtenberg
   28322 | Mecklenburg-Vorpommern (4)           | Bundesland Mecklenburg-Vorpommern
 1334121 | Brüssow (Uckermark) (7)              | Amt Brüssow (Uckermark)
 1408059 | Am Stettiner Haff (7)                | Amt Am Stettiner Haff
 1407863 | Löcknitz-Penkun (7)                  | Amt Löcknitz-Penkun
 1410891 | Uecker-Randow-Tal (7)                | Amt Uecker-Randow-Tal
(100 rows)

und in Polen sähe das so aus:


   id    |        tree        |                Full Name                 
---------+--------------------+------------------------------------------
  336075 | Warszawa (6)       | miasto na prawach powiatu Warszawa
 2668633 | Tarnów (6)         | powiat grodzki Tarnów
 1937072 | Toruń (6)          | powiat grodzki Toruń
 1553160 | Słupsk (6)         | miasto na prawach powiatu Słupsk
 2456294 | Poznań (6)         | miasto na prawach powiatu Poznań
 2106876 | Kalisz (6)         | miasto na prawach powiatu Kalisz
 2670362 | Łomża (6)          | powiat grodzki Łomża
 2414842 | Skierniewice (6)   | powiat grodzki Skierniewice
 1122507 | Leszno (6)         | miasto na prawach powiatu Leszno
 2132418 | Zielona Góra (6)   | powiat grodzki Zielona Góra
 1788653 | Suwałki (6)        | powiat grodzki Suwałki
  337131 | Płock (6)          | miasto na prawach powiatu Płock
  449696 | Kraków (6)         | powiat grodzki Kraków
 1475698 | Tarnobrzeg (6)     | powiat grodzki Tarnobrzeg

Aber ich habe einen Vorschlag: ich möchte eh einen Tooltip ausgeben wenn der Cursor links im Tree über einer Stadt steht. Dort sollte bisher die Relations-ID hin. Da pack ich das mal rein, wenn der Tooltip endlich läuft. Jstree ziert sich da noch ein wenig.

Vielen Dank für Dein Arbeit und das Tool, Walter!

Das stimmt wohl im Prinzip für Multipolygone, für boundaries aber übrigens nicht unbedingt. Der deutsche und englische Artikel sind da uneins. Es bleibt ein Disput. Ich habe ja so meine eigene Meinung dazu (Hierarchien hierarchisch abbilden).
Du siehst aber auch, dass Multipolygone den OGC-Standards widersprechen bzw. diese nicht abbilden. Ich könnte mir vorstellen, dass Subareas eine Methode sind (werden können), um OGC in OSM umzusetzen.

Hallo,

ich sehe gerade, daß in Brandenburg ein Adminlevel 5 “Brandenburg-Südwest-Südost” verbastelt wurde. Regierungsbezirke welche über Adminlevel 5 abgebildet werden, gibt es in Brandenburg nicht. Dies müsste bereinigt werden. Die Nummer der Relation hab ich auf die Schnelle nicht parat.

Sven

http://www.openstreetmap.org/relation/23861

Gibt es so schon ewig. Die Relation hat keinen Regionalschlüssel. Meine Queries ignorieren sie daher als “inoffiziell”.
Ist Die nun zu löschen oder umzutaggen?

Übrigens: Eigentlich ist das wohl OT. Brauchen wir diese wiederkehrenden Anmerkungen und Probleme einen Faden “Pflege der deutschen Admin-Relationen” osä.?

ja.

Ich meine, das wäre hilfreich.

Sven

Da ist was dran (wenn man aus “Subarea” “Area” macht) - aber soweit sind wir leider noch nicht. (*)

Gruss
walter

*) Bin schon über 30 - ob ich API 0.7 noch erleben werde? :wink:

Glaube schon. da ist soviel im Argen, daß die PLZ-Aktion harmlos dagegen war.

Danke für den Versuch! Ich weiß allerdings nicht, was Du alles ausprobiert hast - die Grenzen der Woiwodschaften sehen noch richtig aus, aber ich hab jetzt z.Bsp. mal innerhalb der Woiwodschaft Dolnoslaskie (Niederschlesien) noch die Ebene 6 (Powiaty) ausgewählt und mir als shp exportieren lassen. Da wird mir in QGIS nur eine zusätzliche Grenze innerhalb der Woiwodschaft angezeigt, die anderen fehlen. Ähnliches passiert, wenn ich z.Bsp. nur einige Gminy (Gemeinden, Ebene 7) auswähle. Schätze, das ist mein altes Problem mit der polnischen Karte?

sehe ich auch so.

Ich “probiere” da nichts aus, ich nehme die Daten so wie sie sind. Dabei interpretiere ich keinerlei irgendwie händisch eingetragenen Informationen wie “das ist die Sub-Area von der Master-Area”, sondern benutze dafür Spatiale Abfragen. “In welchen Grenzen liegt ein bestimmtes Gebiet?” - also allein die Geometrie der Objekte.
Dauert etwas (ca 20 Minuten für die 6699 Administrativen Grenzen Polens), sollte aber 100% sicher sein.


insert into boundaries 
	  select -osm_id osm_id,'PL','admin',name,admin_level,wno_FindPath(-osm_id,1),st_multi(way),st_pointonsurface(way)
	     from planet_osm_polygon
	    where boundary = 'administrative'
              and admin_level in ('2','3','4','5','6','7','8','9','10','11','12')
	      and osm_id < 0
	      and st_contains((select way from planet_osm_polygon where osm_id=-:country),pointonsurface)
;

und der Kern von wno_FindPath:


      temp = (select array_agg("outer") from (
                 select o.admin_level,-o.osm_id "outer",-i.osm_id "inner" 
                   from planet_osm_polygon o, 
                        planet_osm_polygon i
                  where st_contains(o.way,i.pointonsurface)
                    and i.boundary='administrative' 
                    and o.boundary='administrative'
                    and i.osm_id < 0
                    and o.osm_id < 0
                    and i.osm_id = -boundary_id
                    and o.admin_level::float <= al  -- wegen 4x al 9.5 in Ungarn!!!
                  order by wno_number(o.admin_level)  
                 ) foo 
                 right outer join generate_series(2,11) gal   
                    on (foo.admin_level::int = gal)
             );

Sorry, für den GIS-Laien wohl etwas undeutlich (und für einen richtigen GIS-Profi eventuell zu umständlich?) aber ich glaube, meine “Denke” sollte rüberkommen.

Gruss
walter

eventuell muß ich meiner vorigen Antwort widersprechen :frowning:

Wenn die im Tree ausgewählten “gewünschten” Grenzen in der Karte angezeigt werden, sollten sie auch im Export drin sein - ich check das mal nach.

Gruss
walter

Zwischenergebnis: 30 Grenzen (1x al4, 29x al6) sind in dem Shapefile drin :slight_smile: - angezeigt werden in QGIS aber nur 2 :frowning:

Grübel Grübel

ausgegrübelt: Mach den Fill-Modus aus, dann sind alle da. In der Attribut-Tabelle sieht man, dass al4 an Position 29 und das einzige angezeigte Gebiet an Pos 30 steht. Damit werden die ersten 28 überdeckt.

Ich werde die mal nach al aufsteigend sortieren.

Funzt:

Hi, habe gerade mal beim Shape-Export die Namen der Files von Zufallszahlen auf Timestamp geändert. Da kann man wohl besser den Überblick behalten.

Wenn irgendwer 'ne bessere Idee hat, 4 Files mit x Shapes in einen Download zu packen, gerne her damit.
Das Teil ist immer noch Beta und manche Sachen sollten wohl besser sein.

Gruss
walter

ps: aktuell bin ich an den Poly-Files dran.

Bitteschön: http://forum.openstreetmap.org/viewtopic.php?pid=396375

Super! Danke für’s Grübeln. Newbie-Frage: Was ist der Fill-Modus? Der Bearbeitungsmodus, wenn die Attributtabelle geöffnet ist?