MULTIPOLYGON

Probleme, Fragen die mit der Installation und Anwendung der PostGIS-Erweiterung zu tun haben.
tomalkis
Neuer Benutzer
Beiträge: 25
Registriert: Fr 14. Sep 2018, 11:01
Wohnort: Olching

Re: MULTIPOLYGON

Beitrag von tomalkis » Mi 7. Nov 2018, 14:17

Gisman hat geschrieben:
Di 6. Nov 2018, 14:58
Ich würde an deiner Stelle mit dem textparsen aufhören, wie schon erwähnt ist das eher ungut beim Fehlersuchen. In der PostGIS-Doku findest du eine Beschreibung wie das WKT für Polygone aussehen soll.

Ich hab dir mal was zusammengebaut, wie ich es tun würde bei dem gegebenen Koordinatenstring:

Code: Alles auswählen

select st_makepolygon(
         st_makeline(
           st_setsrid(
             st_makepoint(tb.xcoord, tb.ycoord), 4326))) as geom
  from (select split_part(t.a, ',', 1)::numeric as ycoord, split_part(t.a, ',', 2)::numeric as xcoord
          from unnest(string_to_array('48.13716763477679,11.559044122695923 48.136865128775696,11.559038758277893 48.13686333879406,11.559277474880219 48.13716763477679,11.559277474880219 48.13716763477679,11.559044122695923', ' ')) t(a)
          ) tb
Zur Erklärung: Das unnest macht aus dem mit string_to_array erzeugten Array eine Tabelle aus einzelnen Koordinatenstrings. Diese werden dann im Subselect zu x und y Koordinaten gemacht und mit den st_funktionen zu Geometrien verarbeitet.
(select split_part(t.a, ',', 1)::numeric as ycoord, split_part(t.a, ',', 2)::numeric as xcoord
from unnest(string_to_array('48.13716763477679,11.559044122695923 48.136865128775696,11.559038758277893 48.13686333879406,11.559277474880219 48.13716763477679,11.559277474880219 48.13716763477679,11.559044122695923', ' ')) t(a)

Könntest du mir bitte kurz erklären, was die rot markierte Ausdrücke bedeuten? Oder einfach sagen, wie die Funktion auf Deutsch heißt, damit ich sie in der Doku das finden könnte.

Grüße
Tamara.

frastr
Benutzer
Beiträge: 39
Registriert: Di 9. Sep 2014, 12:20
Wohnort: Hoyerswerda, Sachsen

Re: MULTIPOLYGON

Beitrag von frastr » Mi 7. Nov 2018, 17:24

Es ist kein Funktionsaufruf! ist der Tabellen Alias für

Code: Alles auswählen

unnest(string_to_array())
und bedeute das Funktionsergebnis soll als Tabelle t mit Spalte a verstanden werden.

Über wird dann auf die Tabelle.Spalte zugegriffen.

Siehe https://www.postgresql.org/docs/11/sql-select.html

tomalkis
Neuer Benutzer
Beiträge: 25
Registriert: Fr 14. Sep 2018, 11:01
Wohnort: Olching

Re: MULTIPOLYGON

Beitrag von tomalkis » Do 8. Nov 2018, 10:15

frastr hat geschrieben:
Mi 7. Nov 2018, 17:24
Es ist kein Funktionsaufruf! ist der Tabellen Alias für

Code: Alles auswählen

unnest(string_to_array())
und bedeute das Funktionsergebnis soll als Tabelle t mit Spalte a verstanden werden.

Über wird dann auf die Tabelle.Spalte zugegriffen.

Siehe https://www.postgresql.org/docs/11/sql-select.html
Super, danke nochmal!

Antworten