私は、海岸線に沿って1000 kmごとにサンプルポイントを取得する必要があるタスクに取り組んでおり、南極大陸の問題に遭遇しました。私が知ることができることから、実際にこの操作に地理を使用すべきだと思うとき、それは関数での幾何学の使用に関する問題のようです。
このよく似た質問の関数を使用して、次のような結果を生成できます。
あなたが見ることができる、通りST_AddMeasure()
やST_LocateAlong()
南極の上に座って、多くの点でその結果、球状ジオメトリを扱うようには見えません。日付線(左側)に沿ってクリップにポイントが追加されました。これら2つの関数のドキュメントに従って、ジオメトリのみを使用できます。
ポリゴンとポイントの生成に使用されるコードはここにありますが、これはポイントの生成に使用されるSQLです。
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;
この海岸線に沿って1000 Kmごとにポイントを生成するにはどうすればよいですか?
ST_Segmentizeを試しましたか?また、ジオメトリでのみ機能しますが、少なくともポイントを生成するより迅速な方法のようです。とにかく、なぜポールでポイントを削除しないのですか?これは、バグというよりは使用済みの投影の副作用のようです。
—
lynxlynxlynx
写真から、EPSG:4326にジオメトリがあるように見えます。南極大陸は、EPSG:3031などの極立体投影に適しています。それでも、日付変更線に沿って、ポールへのカットラインとバックへの対応が必要なようです。
—
トビースパイト