2017-01-24 2 views
0

Ich habe eine Geometrie von Polygonen, die Boxen sind, die ein Gitter über einen Bereich machen.Erstellen Sie eine Grenze um Polygone (ST_ExteriorRing?)

Ich möchte die Grenze der äußersten Kästchen des Gitters abfragen.

Es sah aus wie ST_ExteriorRing könnte die Lösung sein, aber diese Abfrage spiegelt meine vorhandene Geometrie genau.

SELECT ST_AsGeoJSON(ST_ExteriorRing(geom)) AS bounds 
    FROM myzones 

Wie würde ich eine Bounding Box abrufen, die den äußersten Rand meines Rasters umreißt?

Hinweis: Auch wenn mein Geom besteht aus Kisten, ist die Form von allen von ihnen nicht quadratisch.

Antwort

0

St_Exteriorring ist kein Aggregatoperator, daher erhalten Sie einen Ausgabedatensatz für jeden Eingabedatensatz.

Ich glaube, Sie müssen entweder st_union oder st_collect (st_collect schneller sein könnte, aber es könnte die ST_ExteriorRing fehlschlagen, wenn es eine GeometryCollection zurückgibt): das heißt

SELECT ST_AsGeoJSON(ST_ExteriorRing(st_union(geom))) AS bounds 
    FROM myzones