【问题标题】:Setting locations latitude & longitude in facing direction设置面向方向的位置纬度和经度
【发布时间】:2012-12-04 13:32:13
【问题描述】:

如何克隆自己的位置,然后向所需方向添加一些额外的米?

现在我的 android 应用可以获取方位角和我的 GPS 位置,并且我硬编码了所需的距离,例如 10 米。

然后我的应用程序应该创建一个新位置,正好在我所面对的前方 10 米处。

所以如果我的位置是:经度 17.537200603552526,纬度 25.70358496181195

我想让它直接向北移动 8 米,向东直接移动 2 米。

新的经度和纬度会是什么样子:

当前经度 + 0.00008 ,当前纬度 + 0.00002

这是我计算梯度和新位置的一些代码:

public double[] calculateXYLength(double[] vals, double distance)
{
    double x = vals[0];
    double y = vals[1];

    if (vals[0] < 0)
        {
            x = x * -1;
        }
    if (vals[1] < 0)
        {
            y = y * -1;
        }
    // Log.d("lengths", "K = " + distance + " / (" + x + " + " + y + " )" );
    double k = distance / (x + y);

    // Log.d("lengths", "vals[0]: " + vals[0] + "  vals[1]: " + vals[1]);
    // Log.d("lengths", "x: " + (vals[0] * k) + "  y: " + (vals[1] * k) +
    // "  k: " + k);
    return new double[] { (vals[0] * k), (vals[1] * k) };
}

注意 vals 是我已经计算的梯度,我返回的结果将用于添加到我的新位置点。

    Location newPosition = currentPosition
    newPosition.setLongitude(myPosition.getLongitude() + val[0]);
    newPosition.setLatitude(myPosition.getLatitude() + val[1]);

但问题是,我没有得到这两个位置之间所需的距离。我不知道为什么。如何在纬度/经度上添加所需的距离?

谢谢, 约翰

【问题讨论】:

标签: android location latitude-longitude compass-geolocation


【解决方案1】:

经度和纬度的度量是度而不是米,我认为这是问题所在。 1 度 = 111.12 公里

【讨论】:

  • 是的,我对此进行了调查,但我如何才能将其转换为地理点或坐标?因为我看不出还有什么方法可以找到我的新位置。
  • 是的,我发现了另一个类似的问题。 stackoverflow.com/questions/2187657/…
  • 好的,那你解决了吗?如果您还有其他问题,我也在使用 Android 中的 google maps + Directions,希望我们能互相帮助。
猜你喜欢
  • 1970-01-01
  • 2012-11-08
  • 1970-01-01
  • 1970-01-01
  • 2017-11-10
  • 1970-01-01
  • 1970-01-01
  • 2020-09-13
  • 1970-01-01
相关资源
最近更新 更多