Lohnt es sich PostGIS zu verwenden?

Ich habe folgende Frage:
Ich benutze bisher den MS SQL-Server um GPS-Koordinaten (long/lat als decimal) abzuspeichern. Um nun zu genralisieren, also ähnliche Koordinaten zu einem Punkt zu gruppieren habe ich einfach nach der 3ten Kommastelle abgeschnitten, was einen (hier in Berlin) ovalen Kreis mit etwa 50m Radius ergibt. Das klappt so ganz gut, allerdings kann man mit den Nachkommastellen nicht feintunen (5m, 50m, 500m) und es ergibt sich ein Oval statt eines Kreises (ich hoffe alle hier wissen was gemeint ist). Wenn ich nun auf PostGIS umsteigen würde, hätte ich was davon? Also sowas wie “finde alle Koordinaten die sich paarweise höchstens 30 Meter voneinander entfernt befinden” (das wäre ja sowas wie Kommastellen abschneiden, nur eleganter)…
Ich freue mich über jeden Rat!

Das ist aber eher ein Problem der Berechnung als der DB, gell?

Wenn ich nun auf PostGIS umsteigen würde, hätte ich was davon? Also sowas wie “finde alle Koordinaten die sich paarweise höchstens 30 Meter voneinander entfernt befinden” (das wäre ja sowas wie Kommastellen abschneiden, nur eleganter)…
Ich freue mich über jeden Rat!

PostGIS hat IIRC eine Funktion zur Umkreissuche, ja. Vermutlich meldet sich noch gisman dazu…

Andreas

Na klar, bei der Menge der Daten sollte die “Berechnung” auch in der DB bleiben (dachte ich mir so). Ich frage ja nur ob PostGIS solche Berechnungen irgendwie anbietet, oder wäre es schlauer entsprechende Berechnungen selbst zu schreiben und die Daten dann mit diesem Tool zu manipulieren? Gibt es solche Funktionen schon irgendwo anders?

Kurze Google-Suche: GIS | PostGIS Tutorial - GISWiki

→ 6.2 und 6.3.


Andreas

Schon da :wink:

Du hast unter PostGIS natürlich sehr viel mehr Möglichkeiten zur Verarbeitung von Koordinaten und geographischen Objekten. Die von dir gestellte Aufgabe dürfte wohl je nach dem mit einer Distance- oder Buffer-Abfrage zu lösen sein.
Es ist natürlich schwer zu sagen, ob sich ein Umstieg (der auch mit entsprechender Einarbeitungszeit verbunden wäre) sich lohnt. Vorteil wäre natürlich z.B. die direkte Bearbeitung der Objekte in einem DesktopGIS, die Bildung und Verschneidung von Linien oder Flächen in der DB oder die Darstellung in einem Webmapservice zusammen mit anderen Daten. Auch die Verarbeitung unterschiedlicher geographischer Bezugsysteme spräche für PostGIS, genauso wie z.B. die Verwendung räumlicher Indices, was geographisch bezogene Abfragen sehr beschleunigt. Als ‘Nachteil’ bezeichne ich mal die Tatsache, das man sich schon etwas geographisches Wissen anzueignen hat, je nach Vorwissen halt mehr Geo- oder mehr DB-Kenntnisse eben :wink:
Falls du also mehr vorhast, wäre PostGIS sicher eine sehr gute Wahl ansonsten eine sicher interessante Beschäftigung :wink:

Gruß Uwe

Die Aussage kann ich nur unterstreichen. PostGIS kann auf dem Sektor verdammt viel. Wenn du wirklich nur das eine mit den Daten machen willst ist eben die Frage ob es den Aufwand und die Einarbeitung lohnt. Aber in dem Moment in dem du die Daten noch weiterverarbeiten oder darstellen willst, würde sich PostGIS z.B. in Verbindung mit QGIS zur Darstellung schon lohnen.
Wenn du dich mit SQL einigermaßen auskennst, dann hält sich die Einarbeitung meiner MEinung nach auch in Grenzen. Ok, man muss sich vielleicht ein bißchen mit Projektionen und Koordinatensystemen bzw. mit den PostGIS-Funktionen auseinandersetzen, aber wenn man mal den einstieg geschafft hat, dann ist das auch kein Hexenwerk.

Was die Funktionen die du benötigst angeht ist hier denke ich die Bufferfunktion der richtige Ansatz. Nachdem ein Buffer angelegt ist kannst du z.B. eine Intersection machen. In Verbindung mit einem Index sollte die Abfrage recht fix sein.
Je nachdem was genau du machen willst kommst du evtl auch um eine Distaanzberechnung nicht herum.
Wenn du dich für PostGIS entscheiden solltest kann ich dir das dann auch nochmal genauer erläutern.

Hallo,
ich habe PostGIS mal kurz angetestet und was mich stört ist das Datenformat “geometry”. Man kann mit einem Blick auf die Daten nun nicht mehr sagen, was sich hinter den Daten versteckt. Eine Koordinate aus Berlin wird zB so abgespeichert:“0101000020E61000006C95607138434A405F984C158CBA2A40”
Gibt es eine Möglichkeit die Daten “menschenfreundlicher” abzuspeichern und trotzdem GIS-kompatibel zu halten, oder eben nicht?

Die Daten werden halt binär im WKB-Format vorgehalten und können so in WKT sichtbar gemacht werden.

select astext(the_geom) from <table>

oder für 3D:

select asewkt(the_geom) from <table>

Die Formate sind im übrigen OGC-Standards (AFAIR)

Gruß Uwe

Ergänzend dazu: man könnte das sicher auch über einen VIEW machen, der die Daten der Quelltabelle in schön lesbar darstellt. Dazu gibt es VIEWS ja.


Andreas