Apakah ada penghitungan sederhana yang dapat saya lakukan yang akan mengubah km menjadi nilai yang dapat saya tambahkan ke pelampung lintang atau bujur untuk menghitung kotak pembatas untuk penelusuran? Tidak perlu akurat sepenuhnya.
Misalnya: jika saya diberi garis lintang / bujur untuk London, Inggris (51.5001524, -0.1262362) dan saya ingin menghitung garis lintang 25 km timur / barat dari titik itu, dan berapa lon akan menjadi 25 km di utara / selatan itu titik, apa yang harus saya lakukan untuk mengubah 25km menjadi desimal untuk ditambahkan ke nilai di atas?
Saya mencari aturan umum, yaitu: 1km == +/- 0.XXX
Edit:
Penelusuran asli saya untuk "lat lon" tidak memberikan hasil ini:
Bagaimana cara menghitung kotak pembatas untuk lokasi lintang / bujur tertentu?
Jawaban yang diterima tampaknya cukup untuk kebutuhan saya.
sumber
Jawaban:
Perkiraan konversinya adalah:
Ini tidak sepenuhnya benar untuk perataan kutub Bumi - untuk itu Anda mungkin menginginkan rumus yang lebih rumit menggunakan ellipsoid referensi WGS84 (model yang digunakan untuk GPS). Tetapi kesalahan tersebut mungkin dapat diabaikan untuk tujuan Anda.
Sumber: http://en.wikipedia.org/wiki/Latitude
Perhatian : Ketahuilah bahwa koordinat garis lintang dinyatakan dalam derajat, sedangkan
cos
fungsi di sebagian besar bahasa (semua?) Biasanya menerima radian, oleh karena itu diperlukan konversi derajat ke radian .sumber
cos(0°) = 1
=> Oleh karena itu tidak ada faktor koreksi yang diterapkan dalam melakukan perhitungan di ekuator. Garis bujur adalah yang terluas di sana.cos(90°) = 0
=> Di kutub, bujur bertemu di satu titik. Tidak ada jarak yang bisa dihitung.Jika Anda menggunakan Java, Javascript atau PHP, maka ada perpustakaan yang akan melakukan perhitungan ini dengan tepat, menggunakan beberapa trigonometri yang sangat rumit (tapi tetap cepat):
http://www.jstott.me.uk/jcoord/
sumber
http://www.jstott.me.uk/jcoord/ - gunakan perpustakaan ini
sumber
Menarik bahwa saya tidak melihat menyebutkan koordinat UTM.
https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system .
Setidaknya jika Anda ingin menambahkan km ke zona yang sama, itu harus langsung (dengan Python: https://pypi.org/project/utm/ )
utm.from_latlon dan utm.to_latlon.
sumber
Terima kasih Jim Lewis atas jawabannya yang luar biasa dan saya ingin mengilustrasikan solusi ini dengan fungsi saya di Swift:
Dalam fungsi ini untuk mengubah jarak saya menggunakan rumus berikut:
sumber
Mengapa tidak menggunakan kueri geospasial yang dirumuskan dengan benar ???
Berikut adalah halaman referensi server SQL di ST Berisi fungsi geospasial:
https://docs.microsoft.com/en-us/sql/t-sql/spatial-geography/stcontains-geography-data-type?view=sql-server-ver15
atau jika Anda tidak ragu untuk menggunakan konversi kotak dan radian, Anda dapat selalu menggunakan fungsi jarak untuk mencari titik-titik yang Anda butuhkan:
Harus ada fungsi serupa untuk hampir semua database di luar sana.
Jika Anda telah menerapkan pengindeksan geospasial dengan benar, pencarian Anda akan jauh lebih cepat daripada pendekatan yang Anda gunakan
sumber