【问题标题】:A new coordinate 50metres away from another in C#, how?C# 中距离另一个 50 米的新坐标,如何?
【发布时间】:2012-08-03 07:55:22
【问题描述】:

我有一个坐标和一个航向,如何在 C# 函数中获得第二个坐标,比如距离第一个坐标 50 米?

示例信息:

Lat: 56.33908260  
Lon: 17.01194088

Radians:             -1.7453292519943295  
RadiansToDegrees:     57.295779513082323  
GeographicalDegrees: -170.0  
MathematicalDegrees: -100.00

【问题讨论】:

  • 你认为世界是一个球体吗(大多数模型不是)?您是用直线测量距离还是沿表面测量距离?你的新观点应该在哪个方向?这样的点有一整圈。
  • 就像 Markus Palme 下面写的解决方案,也许你有一个更简单的功能。沿着我猜的表面和我在示例信息中写的方向。
  • 我在您的示例中看不到任何方向。但我一开始没有得到你的例子。如果您将地球视为球体,您仍然没有说明。
  • 最后四行是不同格式的方向。如果它是根据 WGS 84 的球体,那么是,否则不是。
  • WSG 84 基于一个非常接近地球实际形状的参考椭球。如果准确性不那么重要(例如,如果距离相当小),我会假设一个球体,如果不使用更复杂的模型,如 WSG 84。

标签: c# gps maps coordinates calculus


【解决方案1】:

不是我真正熟悉的领域,但我会看看如何使用纬度和经度计算英里并将其转换为函数。

发布一些您尝试过的代码,然后我们可以从那里获取它?

编辑:可能的答案

How do I find the lat/long that is x km north of a given lat/long

【讨论】:

    【解决方案2】:

    这取决于您正在使用/想要使用的大地测量系统。

    使用大地测量系统或大地测量数据 [...] 将其产品上指示的位置转换为它们在地球上的真实位置。

    最常用的系统之一是 WGS 84。

    一些背景: https://math.stackexchange.com/questions/720/how-to-calculate-a-heading-on-the-earths-surface

    在我看来,您要查找的内容类似于“直接问题”。 http://en.wikipedia.org/wiki/Vincenty's_formulae#Direct_Problem

    在这里你可以找到一个 C++ 实现,它应该很容易移植(尊重许可证):

    https://github.com/pkohut/GeoFormulas/blob/master/GeoFormulas/VincentyDestination.cpp

    这个实现来源于这个公式: http://www.movable-type.co.uk/scripts/latlong-vincenty-direct.html

    【讨论】:

      猜你喜欢
      • 2011-10-01
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多