“移动”从 LatLonA 到 LatLonB (WGS84) # 米(地面以上)
我需要 C# 中的一个函数来执行以下操作:从 GPS 点 A 向 GPS 点 B 的方向移动 50 米,并计算该点的 GPS 坐标。
例如,我有两个坐标:
LatLon LatLonA = new LatLon(51.83966, 5.04631); // Latitude 51.83966, Longitude 5.04631
LatLon LatLonB = new LatLon(51.84172, 5.01961); // Latitude 51.84172, Longitude 5.01961
我想要的是这样的函数:
function LatLon MoveTowards(LatLon A, LatLon B, double MetersOverGround)
{
//code here
}
该函数将返回在 B 方向上距 A x 米的坐标。
I need a function in C# to do the following: move 50 meters from gps-point A in the direction of gps-point B and calculate the GPS-coordinates for that point.
For instance I've got two coordinates:
LatLon LatLonA = new LatLon(51.83966, 5.04631); // Latitude 51.83966, Longitude 5.04631
LatLon LatLonB = new LatLon(51.84172, 5.01961); // Latitude 51.84172, Longitude 5.01961
What I would like is a function like this:
function LatLon MoveTowards(LatLon A, LatLon B, double MetersOverGround)
{
//code here
}
That function would return the coordinate which is x meters away from A in the direction of B.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
地球不是球体,甚至也不是椭圆形。在不购买商业图书馆的情况下,您所能期望的最好结果就是一个近似值(对于大多数人来说这已经足够好了)。
您可以首先研究Haversine 公式,以及此页面将会有很大帮助。
或者,如果您想要一个商业库,我已经使用 ProLat 取得了巨大成功
The Earth is not a sphere, nor even an ellipse. The best you can hope for without purchasing a commercial library would be an approximation (which for most people is good enough).
You could start by looking into the Haversine formula, and this page will be of great help.
Or if you want a commercial library, I have used ProLat with great success
这就是你想要的。只需使用 Math.Atan2 即可获取 A 到 B 向量的方位角并获取
bearing
参数。Here is what you want. Just use
Math.Atan2
to obtain the bearing of your A-to-B vector and obtain thebearing
parameter.