如何将距离(英里)转换为度?

Rak*_*eni 1 java gis geometry

我正在使用Spatial数据处理应用程序.在这里,我需要找到从质心到点的距离.可以知道如何在Java中将里程转换为度数吗?

小智 21

最终编辑:查看大圆距离测地线,以发现您在这个问题中真正要求的复杂性.这无疑是出于我对数学的熟悉.

[出于历史原因留下原始建议.虽然碎片可以帮助你,但它们不会直接回答你的问题.]

有关此问题的答案,请参阅/sf/answers/87748181/.

纬度:1度= 110.54公里

经度:1度= 111.320*cos(纬度)km

为了走向另一个方向,我想知道我们是否可以这样做(我的代数生锈了):

纬度:1 km = 1 deg/110.54 km
经度:1 km = 1 deg /(111.320*cos(纬度)km)

应用

你的距离总是严格东西或南北吗?如果是这样,你应该可以说:

Integer latTraveledMiles = 100;
Double latTraveledKM = 100 * 0.621371;
Double latTraveledDeg = (1 / 110.54) * latTraveledKM;
Run Code Online (Sandbox Code Playgroud)

要么

Double currentLat = 74.0064;
Integer longTraveledMiles = 100;
Double longTraveledKM = 100 * 0.621371;
Double longTraveledDeg = (1 / (111.320 * Math.cos(currentLat))) * longTraveledKM;
Run Code Online (Sandbox Code Playgroud)

更有可能的是,你需要知道南北和东西方向的距离(并将其带入"不直截了当"的境界.你可以看看毕达哥拉斯定理.你知道"长边"三角形(c ^ 2)并且可以计算经度(a ^ 2)和纬度(b ^ 2).

您应该能够应用我以前的代码片段的一部分来计算出
c = sqrt(a ^ 2 + b ^ 2).

祝好运.


Pat*_*han 5

如果这确实是一个直截了当的问题,我们应该忽略纬度和经度,只需看看半径到两点之间的角度,使它们之间的距离,沿着包含两个点的大圆,是m英里.

为了保持它真正的直线,我们应该假设地球是球形的,因此答案与位置无关.我使用的是平均半径3,958.761英里.

一个弧度是3,958.761英里长的线的角度,因此一条长m英里的线的角度是m/3,958.761弧度.如果您想要以度为单位的角度,请使用Math.toDegrees.