Ich arbeite an einer Aufgabe, bei der ich alle 1000 km entlang der Küsten Probenpunkte sammeln muss, und bin auf ein Problem mit der Antarktis gestoßen. Soweit ich das beurteilen kann, scheint es ein Problem mit der Verwendung von Geometrie in den Funktionen zu sein, wenn ich wirklich denke, dass Geografie für diese Operation verwendet werden sollte.
Mit der Funktion aus dieser sehr ähnlichen Frage kann ich ein Ergebnis erzielen, das folgendermaßen aussieht : .
Wie Sie sehen können ST_AddMeasure()
und ST_LocateAlong()
die Geometrie nicht kugelförmig zu behandeln scheinen, entstehen viele Punkte am Südpol. Auf dem Clip entlang der Datumsgrenze (linke Seite) wurde sogar ein Punkt hinzugefügt. Gemäß der Dokumentation dieser beiden Funktionen kann nur Geometrie verwendet werden.
Der zum Generieren des Polygons und der Punkte verwendete Code befindet sich hier . Dies ist jedoch die SQL, die zum Generieren der Punkte verwendet wird:
CREATE TABLE atest AS WITH line AS
(SELECT
id,
ST_ExteriorRing((ST_Dump(geom)).geom) AS geom
FROM line_sample_test),
linemeasure AS
(SELECT
ST_AddMeasure(line.geom, 0, (ST_Length(line.geom))::int) AS linem,
generate_series(0, (ST_Length(line.geom))::int, 10) AS i
FROM line),
geometries AS (
SELECT
i,
ST_LocateAlong(linem, i) AS geom
FROM linemeasure)
SELECT
* from geometries;
Wie kann ich alle 1000 km entlang dieser Küste Punkte generieren?