[Talk-de] Advanced Polygone in SQL zusammenbauen? Was: Strassenlistenabgleich - jetzt in Selbstbedienung

Frederik Ramm frederik at remote.org
So Feb 21 11:44:27 UTC 2010


Hallo,

Florian Lohoff wrote:
> Woa - Hat sichmal jemand "Fig. 7" angesehen und mal ueberlegt wie man
> das automatisiert zusammenbauen soll? IMHO gibt es ausser zufaelliges wuerfeln
> und gucken welches der inner und outer in welches andere wohl reinpasst
> keine systematische loesung. 

Wieso das? Am Fusse der Seite habe ich sogar einen Algorithmus verlinkt, 
der das korrekt macht.

> Hat jemand schoenes SQL das via postgis dafuer flaechen rauswirft?

Man kann diesen Algorithmus vermutlich in SQL bauen, aber ich wuerde 
davon abraten. "schoen" wird das bestimmt nicht.

> Bisher (das thema inner outer ignorierend) habe ich die flaechen so
> zusammengebaut:
> 
> 	select  ST_BuildArea(ST_Collect(linestring)) as geom

Ich hatte fuer meinen C-Code zunaechst in der GEOS-Library den 
PolygonBuilder benutzt, auf dem auch das ST_BuildArea aufsetzt, aber der 
fuehrt nicht in allen Faellen zu korrekten Resultaten, besonders dort, 
wo zwei "inner"-Flaechen sich beruehren.

> Und bevor hier wieder jemand schlaue Sprueche bringt - SQL das funktioniert
> bitte ...

Wie gesagt, ich sehe nicht, wie das in SQL gehen soll. Bestimmt kann man 
eine Stored Procedure machen, die das kann, aber das ist nicht mein 
Spezialgebiet.

Oder Du laedst Dir unter

http://download.geofabrik.de/polygon/polygon.tar.bz2

einen fertigen, weltweiten SQL-Dump mit allen Polygonen 
(simple+advanced) runter. Das ist noch nicht so richtig dokumentiert, 
weil wir noch ein paar Unklarheiten bezgl. des Taggings haben (wann und 
in welchem Umfang uebernimmt ein Multipolygon die Tags seiner Member?), 
aber der Plan ist, daraus einen regelmaessigen Service zu machen.

Bye
Frederik

-- 
Frederik Ramm  ##  eMail frederik at remote.org  ##  N49°00'09" E008°23'33"




Mehr Informationen über die Mailingliste Talk-de