【问题标题】:Computing absolute position from relative and absolute base从相对和绝对基数计算绝对位置
【发布时间】:2013-07-15 18:28:53
【问题描述】:

我正在开发一个生成相对位置的系统,并为它提供了一个绝对基本位置。这样,我可以为每个相对位置计算出对应的绝对位置。

但是我很难找到解决方案,并且无法解决,因为它不是微不足道的(相对坐标基于平面坐标系,绝对坐标是纬度和经度,十进制度格式)。

为了进一步详细说明,我从 (0,0) 的相对位置开始,并记录该位置在绝对定位中的转换,即十进制度数符号,由 Android Location API 提供。然后我计算每个组件的偏移量,这将产生一个新的相对位置。

有没有人在 Java(或类似)编程语言中找到解决方案来计算与最后一个相对位置相对应的绝对位置(以我提到的相同十进制度格式)?即使只是公式也可以。

【问题讨论】:

  • 你的问题太模糊了?我的意思是相对坐标和绝对坐标可以定义为任何东西。你可以有两个对象,它们的相对坐标是它们的 X 和 Y 相互偏移,它们的绝对坐标是它们的 X 和 Y 相对于屏幕 (0, 0) 的偏移,但是你的问题是什么?
  • 我的意思是:我从连续的偏移量计算相对位置,从 (0,0) 开始,并以米为单位添加偏移量。我还注册了 (0,0) 上的绝对位置,我应该在其中添加该点和相对位置之间的偏移量(实际上,偏移量是坐标值,因为该点本身具有 X 和 Y 值0)。我将更新问题。
  • 现在需要定义绝对位置坐标系。
  • 你所说的“十进制度”是指地球表面的经度和纬度吗?
  • 就是这样!我认为这无关紧要,但是是的:这些是​​ GPS 单元发送的坐标,以十进制度为单位。

标签: java android gps coordinate-transformation


【解决方案1】:

您知道相对位置意味着差异。
所以

deltaLat = curLat - lastLat;
deltaLon : analog

使用绝对纬度/经度和所有增量,接收器可以重新创建绝对纬度/经度位置。 (有一些陷阱,一定要写一些单元测试!)

根据当前的 absPosition 和最后的 delta,您可以轻松计算距离(以米为单位)。

添加。信息:您的增量不应该以米为单位,这非常复杂。两个相同的 deltaLat/Lon 对的米数在地球上有所不同,因此您始终需要绝对位置(至少是绝对纬度)

【讨论】:

  • 让我看看我是否正确:从相对起始位置 (0,0) 和当前相对位置 (例如 (5,3)) 的距离,我们可以反转 Haversine两个 Lat., Long 的距离公式。点,用基点替换其中一个点。这总结起来了吗?
  • 地球上的距离不能用相对位置来测量,之后。你需要绝对的一个。所以想想为什么你需要那个相对位置。你的目标是什么?最后,您需要两个绝对位置来计算两者之间的距离。您可以通过拥有一个绝对位置并总结相对 delta lat,lon 的变化来实现这一目标。但最终你会得到两个绝对位置。
  • 我的目标是,通过知道每个动作的方向,以及每个动作的距离,以米为单位,知道我从 A 点开始,知道最终的目的地是什么。我害怕在那里没有办法使用相对位置,除了可能在纬度的差异中测量距离。和 Long.,这在我的场景中是不可能的。有没有办法可以将我的 X、Y 米差异转换为纬度/经度差异?
  • 你为什么不像大家一样计算最后两个绝对位置之间的方向和米数?
  • 您可以将 x,y 差异转换为纬度/经度,但前提是您知道绝对位置(至少是绝对纬度)。因为赤道两度经度的距离只有111.11公里。更北的距离是80公里,在北极它接近0。
猜你喜欢
  • 2014-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多