问题标签 [bearing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
3502 浏览

coordinates - 通过距离和方位从已知位置查找点坐标的地理算法

我想使用谷歌地图静态 API 来显示带有指示边界的路径覆盖的地图。

AFAICT 静态 API 不支持多边形,所以我打算通过使用路径绘制边界来规避这个问题。

为此,我需要确定在它们之间绘制直线(路径)的点;所以我想要一种算法,它返回给定方位角和距已知点的距离的地理位置(即 WGS84 坐标)。

谁能指出我这样的算法。最好在 C# 中,但其他语言是否可以接受?

0 投票
6 回答
34093 浏览

algorithm - 计算给定方位和距离的坐标

我在实现此处描述的功能时遇到问题。

这是我的 Java 实现:

在调用函数之前,我将方位角转换为弧度并将距离(km)转换为弧度距离 - 所以这不是问题。

但是,当我输入坐标时,例如: lat = 49.25705; lon = -123.140259; 方位角225(西南),距离1公里

我得到这个返回:纬度:-1.0085434360125864 经度:-3.7595299668539504

它显然不正确,谁能看到我做错了什么?

谢谢

0 投票
1 回答
2798 浏览

android - 从 Location.distanceBetween() 返回的初始方位角是多少

调用 Location.distanceBetween() 并获取初始和最终方位时,方位的比例是多少?我得到了负值,这对我来说没有意义。方位角从 0 度到 360 度(相对或绝对,没关系)。我唯一能想到的是 N 到 E 到 S 是 0 到 180 度,而 N 到 W 到 S 是 0 到 -180 度。

有人可以对此有所了解吗?

0 投票
0 回答
485 浏览

iphone - iPhone 指南针 GPS 方向

可能重复:
iPhone 指南针 GPS 方向

嗨,我正在尝试开发一个使用 iPhone 的 GPS 和指南针的应用程序,以便将某种指针指向特定位置(如指南针总是指向北方)。该位置是固定的,无论用户位于何处,我总是需要指针指向该特定位置。我有这个位置的纬度/经度坐标,但不知道如何使用指南针和 GPS 指向那个位置......就像http://www.youtube.com/watch?v=iC0Xn8hY80w这个链接 1: 20' 我已经知道一些程序标题 = atan2( sin(lon2-lon1)*cos(lat2), cos(lat1)*sin(lat2) - sin(lat1)*cos(lat2)*cos(lon2-lon1) ) 然后乘以 180/π 然后加上 360 例如 -(CLLocationDirection)directionToLocationCLLocation *)location {

CLLocationCoordinate2D coord1 = self.coordinate; CLLocationCoordinate2D coord2 = location.coordinate;

CLLocationDegrees deltaLong = coord2.longitude - coord1.longitude; CLLocationDegrees yComponent = sin(deltaLong) * cos(coord2.latitude); CLLocationDegrees xComponent = (cos(coord1.latitude) * sin(coord2.latitude)) - (sin(coord1.latitude) * cos(coord2.latitude) * cos(deltaLong));

CLLocationDegrees 弧度 = atan2(yComponent, xComponent); CLLocationDegrees 度数 = RAD_TO_DEG(弧度) + 360;

返回 fmod(度数,360);我设置了一个箭头,想让箭头旋转。但结果不对。而且它不使用当前标题。我认为它必须使用当前标题与结果相结合来旋转箭头。

所以任何人都可以给我一些解决方案。

0 投票
11 回答
130178 浏览

android - 在Android中计算指南针方位/航向

我想在谷歌地图视图上的我的位置显示一个箭头,显示我相对于目的地位置(而不是北方)的方向。

a)我使用磁力计和加速度计的传感器值计算了北。我知道这是正确的,因为它与 Google 地图视图中使用的指南针一致。

b) 我使用 myLocation.bearingTo(destLocation) 计算了从我所在位置到目标位置的初始方位;

我错过了最后一步;从这两个值(a 和 b)中,我使用什么公式来获取手机相对于目标位置指向的方向?

感谢任何对头脑混乱的帮助!

0 投票
1 回答
12357 浏览

android - 如何在 MapView 中绘制显示行车方向的箭头?

MapView我在 Android 应用程序中使用该 Google 地图组件。我可以使用 GPS 位置以一个点显示我的位置。但我想显示一个箭头,它指出行驶方向(方位)。我认为我可以使用该bearing值来获取箭头的角度。

我怎样才能做到这一点?

0 投票
4 回答
11494 浏览

python - 在给定点、方位角和距离的情况下计算 gps 坐标

我有一个问题让我在某个项目中退缩了一段时间。

我基本上是在寻找使用我编写的一些脚本绘制的 x、y 点来捕获多边形。lat, lon 是多边形的中心 GPS 线,我正在寻找它周围的多边形。

这是我在 python 中的代码的一部分:

我的输入是这样的:

  • lat, lon - 以十进制度数给出。
  • dr - 是以英里为单位的距离除以地球的半径计算的角度(=3958.82)
  • 轴承 - 0-360 度之间。

但是对于输入:

我得到输出: [-1.3485899508698462, -76.8576637627568],但是[42.2516666666667, -76.8097222222222]是正确的答案。

至于角距离,我只需将距离(以英里为单位)除以地球半径(= 3958.82)即可计算得出。

有人吗?

0 投票
4 回答
46563 浏览

android - Android 手机方向概览,包括指南针

一段时间以来,我一直试图了解 Android 方向传感器。我以为我明白了。然后我意识到我没有。现在我想(希望)我再次对它有更好的感觉,但我仍然不是 100%。我将尝试解释我对它的不完整的理解,如果我在部分错误或填写任何空白处,希望人们能够纠正我。

我想我站在经度 0 度(本初子午线)和纬度 0 度(赤道)。这个位置实际上是在非洲海岸附近的海域,但请耐心等待。我把手机放在脸前,让手机底部指向我的脚;我面向北方(朝向格林威治),因此电话的右侧指向东方,指向非洲。在这个方向(参考下图)我有 X 轴指向东方,Z 轴指向南方,Y 轴指向天空。

现在,手机上的传感器允许您在这种情况下计算出设备的方向(而不是位置)。这部分一直让我感到困惑,可能是因为在我接受它确实有效之前,我想了解它是如何工作的。手机似乎使用两种不同技术的组合来确定其方向。

在我开始之前,想象一下你站在那块假想的 0 度纬度和经度的土地上,站在上面提到的方向。还想象一下,你被蒙上眼睛,你的鞋子被固定在操场上的环形交叉路口。如果有人从背后推你,你会向前(朝北)摔倒并伸出双手来阻止摔倒。同样,如果有人推你的左肩,你会用右手摔倒。您的内耳有“重力传感器” (youtube 剪辑),可让您检测您是向前/向后跌倒,还是向左/向右跌倒或跌倒(或向上!!)。因此,人类可以检测到与手机相同的 X 轴和 Z 轴周围的对齐和旋转。

现在想象有人现在在环形交叉路口将你旋转 90 度,这样你现在面向东方。您正在绕 Y 轴旋转。这个轴是不同的,因为我们无法从生物学上检测到它。我们知道我们有一定的角度,但我们不知道相对于地球磁北极的方向。相反,我们需要使用外部工具……磁罗盘。这使我们能够确定我们所面对的方向。我们的手机也是如此。

现在这款手机还配备了一个 3 轴加速度计。我没有了解它们实际上是如何工作的,但我想象它的方式是将重力想象为从天而降的恒定且均匀的“雨”,并将上图中的轴想象为可以检测流过的雨水量的管子。当手机直立时,所有的雨水都会流过 Y '管'。如果手机逐渐旋转,使其屏幕面向天空,流过 Y 的雨量将减少到零,而流过 Z 的音量将稳步增加,直到流过的雨量达到最大。同样,如果我们现在将手机倾斜到一侧,X 管最终将收集到最大量的雨水。因此,根据手机的方向,通过测量流过 3 个管子的雨水量,您可以计算出方向。

这款手机还有一个电子罗盘,其行为类似于普通罗盘——它的“虚拟指针”指向磁北。Android 会合并来自这两个传感器的信息,因此每当生成a SensorEventof时,数组都有 值 [0]:方位角 - (磁北以东的罗盘方位) 值 [1]:俯仰,绕 x 轴旋转(是手机向前或向后倾斜) 值[2]:滚动,围绕 y 轴旋转(手机是向左侧还是右侧倾斜)TYPE_ORIENTATIONvalues[3]


所以我认为(即我不知道)Android 给出方位角(罗盘方位)而不是第三个加速度计读数的原因是罗盘方位更有用。我不确定他们为什么不推荐使用这种类型的传感器,因为现在看来您需要为SensorEvents 类型的系统注册一个侦听器TYPE_MAGNETIC_FIELD。事件的value[]数组需要传递到SensorManger.getRotationMatrix(..)方法中以获取旋转矩阵(见下文),然后将其传递到SensorManager.getOrientation(..)方法中。有谁知道为什么Android团队不推荐使用Sensor.TYPE_ORIENTATION?是效率问题吗?这就是对类似问题的评论之一所暗示的内容,但您仍然需要在development/samples/Compass/src/com/example/android/compass/CompassActivity.java示例。

我现在想谈谈旋转矩阵。(这是我最不确定的地方)所以上面我们有来自 Android 文档的三个数字,我们将它们称为 A、B 和 C。

A = SensorManger.getRotationMatrix(..) 方法图,代表世界坐标系

B = SensorEvent API 使用的坐标系。

C= SensorManager.getOrientation(..) 方法图

所以我的理解是,A 代表“世界坐标系”,我认为它是指地球上的位置以(纬度,经度)和可选(高度)的形式给出的方式。X 是“东”坐标,Y 是“北”坐标。Z 指向天空,代表高度。

手机坐标系如图B所示是固定的。它的 Y 轴总是指向顶部。手机不断计算旋转矩阵,并允许两者之间的映射。那么我认为旋转矩阵将 B 的坐标系转换为 C 的想法是否正确?因此,当您调用SensorManager.getOrientation(..)方法时,您使用的values[]数组的值对应于图 C。当手机指向天空时,旋转矩阵是单位矩阵(矩阵数学等价于 1),这意味着在设备对齐时不需要映射与世界坐标系。

行。我想我现在最好停下来。就像我之前说的那样,我希望人们会告诉我我在哪里搞砸了或帮助了人们(或者让人们更加困惑!)

0 投票
10 回答
180784 浏览

python - Python中的Haversine公式(两个GPS点之间的方位和距离)

问题

我想知道如何获得2 个 GPS 点之间的距离和方位。我研究了haversine公式。有人告诉我,我也可以使用相同的数据找到方位。

编辑

一切正常,但轴承还不能正常工作。轴承输出负值,但应在 0 - 360 度之间。设定的数据应该是水平方向的96.02166666666666 ,并且是:

这是我的新代码:

0 投票
2 回答
14112 浏览

python - 两点之间的轴承

我一直在使用 geopy 包,它做得很好,但是我得到的一些结果不一致或位移相对较大,我怀疑问题出在我的方位计算上:

我需要计算方位角,st center_x 和 center_y 是支点。之后我使用geopy对gps坐标进行逆向工程:

谁能指出我做错了什么?