Saya punya pertanyaan sederhana tentang menghitung jarak di PostGIS.
Saya ingin mendapatkan jarak antara dua geometri. Saya menggunakan sid ini: 4269 dalam meter apa yang saya lakukan sekarang adalah ini: ST_Distance((a.geom,b.geom)) FROM ...
tetapi saya mendapatkan hasil dalam derajat. Saya pikir saya harus bekerja dengan geografi tetapi bagaimana saya bisa melemparkan geom ke geografi? Saya mencoba dengan (a.geom :: geografi) tetapi saya mendapatkan kesalahan.
Apa yang bisa saya lakukan untuk mendapatkan hasil saya dalam meter?
Terima kasih
postgis
coordinate-system
postgresql
distance
YassineGeoma
sumber
sumber
SELECT ST_Distance_Sphere(ST_GeomFromEWKT('SRID=4326;POINT(-72.1235 42.3521 4)'), ST_GeomFromEWKT('SRID=4326;POINT(-72.1260 42.45 15)'))
Satuan SRID 4269 ( NAD 83 ) bukan meter - ini adalah proyeksi geodetik , yaitu koordinatnya adalah derajat (koordinat geografis).
Jawaban pacofvf akan memberi Anda jarak dalam meter, tetapi jika Anda benar-benar telah menetapkan koordinat awal Anda dalam meter maka Anda harus menggunakan sistem koordinat yang diproyeksikan. Mungkin untuk Amerika Utara Anda menginginkan sesuatu seperti Sistem Koordinat Pesawat Negara yang memiliki sejumlah proyeksi berbeda tergantung pada wilayah mana yang ingin Anda petakan.
Saya menduga bahwa Anda hanya menggunakan nilai lat / lon jadi mungkin paragraf kedua ini tidak relevan - cukup gunakan
ST_Distance_Sphere
fungsi seperti di atas.sumber