ฉันกำลังทำงานที่ต้องให้ฉันได้รับคะแนนตัวอย่างทุก ๆ 1,000 กม. ตามแนวชายฝั่งและพบปัญหากับแอนตาร์กติกา จากสิ่งที่ฉันสามารถบอกได้ดูเหมือนว่าจะมีปัญหากับการใช้รูปทรงเรขาคณิตในฟังก์ชั่นเมื่อฉันคิดว่าควรจะใช้ภูมิศาสตร์สำหรับการดำเนินการนี้
การใช้ฟังก์ชั่นจากคำถามที่คล้ายกันอย่างนี้ผมก็สามารถที่จะผลิตผลที่มีลักษณะเช่นนี้
อย่างที่คุณเห็นST_AddMeasure()
และST_LocateAlong()
ไม่ดูเหมือนว่าจะรักษารูปทรงกลมซึ่งส่งผลให้มีหลายจุดที่อยู่บนขั้วโลกใต้ มีการเพิ่มจุดบนคลิปตามบรรทัดวันที่ (ด้านซ้าย) ตามเอกสารของทั้งสองฟังก์ชั่นสามารถใช้รูปทรงเรขาคณิตเท่านั้น
รหัสที่ใช้ในการสร้างรูปหลายเหลี่ยมและจุดสามารถพบได้ที่นี่แต่นี่คือ 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;
ฉันจะสร้างคะแนนได้ทุก ๆ 1,000 กม. ตามแนวชายฝั่งนี้ได้อย่างไร