GeoTools - 如何使用 GeoTools 类进行航位推算和路线计算
我目前正在使用 GeoTools 工具包对船舶数据进行计算,例如计算两个经度/纬度点之间的大圆距离。我还有两个需要满足的要求,但我不确定在 GeoTools 中哪里可以找到进行此类计算的类。
要求#1: 计算移动船舶的航位推算位置。
输入值:
- 当前经度
- 当前纬度
- 当前速度(可以很容易地转换为距离,给定时间“T”)
- 当前航向
预期输出:
- 时间“T”过去后估计的经度/纬度位置
要求#2: 计算从位置“A”到位置“B”的航向。
输入值:
- 经度 'A'
- 纬度 'A'
- 经度 'B'
- 纬度 'B'
预期输出:
- 直接从 'A' 指向 'B' 的航线
问题
谁能指导我GeoTools 中的类能够执行这些计算吗? GeoTools 中的类数量之多让我不知所措,但我似乎找不到执行此操作所需的内容。
I'm currently using the GeoTools toolkit to do calculations on marine vessel data, such as calculating the Great Circle distance between two lon/lat points. I have two other requirements that I need to satisfy, but I'm not sure where to look in GeoTools to find classes to do these kind of calculations.
REQUIREMENT #1:
Calculate a Dead Reckoning position for a moving vessel.
INPUT VALUES:
- current longitude
- current latitude
- current speed (which can be easily converted to a distance, given a time 'T')
- current course
EXPECTED OUTPUTS:
- estimated longitude/latitude position after time 'T' has elapsed
REQUIREMENT #2:
Calculate the course from position 'A' to position 'B'.
INPUT VALUES:
- longitude 'A'
- latitude 'A'
- longitude 'B'
- latitude 'B'
EXPECTED OUTPUTS:
- course that points directly from 'A' to 'B'
QUESTION
Can anyone direct me to classes in GeoTools that are capable of performing these calculations? I'm overwhelmed by the sheer number of classes in GeoTools and I can't seem to find what I need to do this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如何计算从位置“A”到位置“B”的航向
GeodeticCalculator
的实例classsetStartingGeographicPoint()
setDestinationGeographicPoint()
getAzimuth()
如何计算航位推算位置 ' X' 从位置“A”开始
GeodeticCalculator
类的实例setStartingGeographicPoint()
setDirection()
getDestinationGeographicPoint()
以下是我需要自己实现的一些简单的单位转换方法。方位角有点混乱。方位角范围从-180 到+180,其值随着方向“角度”沿顺时针方向增大而增大。所以 -180 是南,-90 是西,0 是正北,+90 是东,+180 也是南。
HOW TO CALCULATE COURSE FROM POSITION 'A' TO POSITION 'B'
GeodeticCalculator
classsetStartingGeographicPoint()
setDestinationGeographicPoint()
getAzimuth()
HOW TO CALCULATE DEAD RECKONING POSITION 'X' STARTING FROM POSITION 'A'
GeodeticCalculator
classsetStartingGeographicPoint()
setDirection()
getDestinationGeographicPoint()
Here are some simple units conversion methods that I needed to implement myself. The azimuth was a little confusing. The azimuth ranges from -180 to +180 with the values increasing as the direction "angle" increases in a clockwise direction. So -180 is south, -90 is west, 0 is true north, +90 is east and +180 is also south.