如何識別具有LAT,LONG座標格式的點是否靠近其他點。如何查找給定座標的最近點
可以說,我想找到附近所有點:
-38.9086621 ,-68.082214
這是在不到1公里的距離。我已經知道如何在給定象限中找到座標,但不知道如何在點附近找到象限。
如何識別具有LAT,LONG座標格式的點是否靠近其他點。如何查找給定座標的最近點
可以說,我想找到附近所有點:
-38.9086621 ,-68.082214
這是在不到1公里的距離。我已經知道如何在給定象限中找到座標,但不知道如何在點附近找到象限。
可以使用正弦表達式計算兩個給定座標之間的距離。計算出的距離是給定座標(直線)之間的直接連接。
JavaScript示例(Source):
var R = 6371e3; // meters
var lat1Radians = lat1.toRadians();
var lat2Radians = lat2.toRadians();
var deltaLat = (lat2-lat1).toRadians();
var deltaLon = (lon2-lon1).toRadians();
var a = Math.sin(deltaLat/2) * Math.sin(deltaLat/2) +
Math.cos(lat1Radians) * Math.cos(lat2Radians) *
Math.sin(deltaLon/2) * Math.sin(deltaLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
請避免使用非拉丁字母作爲變量名稱。可能導致很多問題;) – veritas
剛剛從源複製它,但它現在已被更正。謝謝 – KRONWALLED
如果你需要的精度,你應該變換地理座標爲指標參照系統(如EPSG:3857),然後你可以用簡單的數學。你可以看看proj4js(http://proj4js.org)。 –
@MarcCompte您在測量距離時做了什麼樣的精度提升?在大地測量工作角度或距離測量中,補償,測量誤差......在全球座標系統(例如ECEF)中是可取的,以避免有關參考框架的錯誤。 –
@JoseHermosillaRodrigo我們談論距離。兩點之間的距離是飛機上的一項指標。地理座標是三維的。除了從3D轉換到平面以外,沒有其他方法可以計算度量距離。當然,你可以使用基本的三角函數來做到這一點,但是假設地球是一個完美的球體,這很少像使用橢球體(對地球3D形狀更復雜的近似)一樣精確。這就是爲什麼轉換是實現高精度距離計算的關鍵,除了使用激光測量。 –