Bagaimana cara menambahkan offset ke lat / lon untuk mendapatkan poin baru menggunakan PostGIS

9

Menggunakan PostGIS saya memiliki titik lat / lon dan ingin menambahkan offset timur / barat dan utara / selatan dalam meter untuk mendapatkan titik baru. Apakah itu mungkin?

Dave Jennings
sumber

Jawaban:

8

Anda dapat menggunakan ST_Translate:

Fungsi ST_Translate mengambil geometri apa pun (linestring, multiline, dll.) Mengembalikan geometri baru yang merupakan geometri asli yang digerakkan oleh vektor yang ditentukan oleh X, Y, Z. Catatan satuan pengukuran selalu dalam satuan sistem referensi spasial dari argumen geometri. ST_Translate ada dua bentuk. ST_Translate (geometri, X, Y, Z) dan ST_Translate (geometri, X, Y).

Sumber: http://www.bostongis.com/postgis_translate.snippet

Anda harus mengubah lat / lon menjadi meter terlebih dahulu. Anda dapat menggunakan ST_Transformasi untuk mencapai ini:

ST_Transform - Mengembalikan geometri baru dengan koordinatnya diubah menjadi SRID yang dirujuk oleh parameter integer.

Sumber: http://postgis.net/docs/ST_Transform.html

underdark
sumber
Bagian lat / lon ke meter yang saya punya masalah dengan. Ada saran tentang itu?
Dave Jennings
Saya menambahkan fungsi yang sesuai ke jawabannya. Jika Anda tidak tahu target SRID mana yang harus Anda pilih, Anda harus memberi tahu menggunakan batas geografis data Anda.
underdark
Terima kasih. Penelitian saya yang lain akhirnya memberi tahu saya hal yang sama. Dengan naif saya pikir itu mungkin lebih sederhana dan akan ada SRID tunggal yang bisa saya gunakan, tetapi tampaknya Anda harus memilih satu berdasarkan lokasi Anda.
Dave Jennings