问题标签 [azimuth]

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 投票
0 回答
57 浏览

android - 使用 Android 实现准确的指南针

尝试不同的方法来计算手机的方位角已经有 2 周了,但我基本上发现了两个问题:

我的问题

  1. 360º 转弯并不总是 360º。如果我快速转弯,我会在转弯结束前完成我的 360 度,如果我走得很慢,我会在转弯结束后完成我的 360 度。
  2. 当我把它放在桌子上时,方位角会随机移动。或者甚至保持在相同的位置,对于任何滴答声,我都会得到 +- 3 度,所以如果我保持在 200º 并等待,我可能是 197º。然后如果我继续等待,它可能会达到 194º,但我会留下来。

我在找什么?

对于问题1.-,我正在寻找 X 轴(方位角)上的精确运动。在HelloPanoramaGL 项目示例中可以找到一个很好的示例。它移动平稳,您可以获得移动真实全景的感觉。

对于问题2.-这个基于 iOS 全景图的项目同时执行 1.- 和 2.-。当你转弯时,它会得到相同的位置。

我试过的

好吧,两周后我敢说我已经完成了我在互联网上找到的所有内容,例如:

  • 试图设置Sensor.TYPE_ORIENTATION不推荐使用的,但它是为我提供最佳结果的那个。
  • 尝试Sensor.TYPE_ACCELEROMETER和的组合Sensor.TYPE_MAGNETIC_FIELD。还将低通滤波器添加到传感器
  • 使用其余的传感器就像Sensor.TYPE_ROTATION_VECTOR等待任何让它工作的希望。

但是我的问题没有解决。

这是我现在的代码:

声明所有传感器:

初始化 onCreate():

注册监听器 onResume():

并得到结果:

如果你能帮助我,那就太好了。

非常感谢。

问候。

拉斐尔。

0 投票
0 回答
302 浏览

matlab - azimuth 函数根据使用的单位产生不同的结果

我正在使用 matlab 函数azimuth来计算特征 [6378.1, 0.00335] (〜地球)椭球上坐标点(lon,lat)之间的角度。

令人惊讶的是,要求以弧度为单位的结果会产生非常不同的输出。例如,对于相隔 106.5925 公里的 (106,35.5)、(107,35) 对(参见第一个图),方位角函数返回121.1881度和 1.7571 弧度,即100.6746度,它们都不正确

在此处输入图像描述

在统计尺度上,这就是两个输出的样子(大约 19,000 对点的角度和弧度分布):

方位角函数以弧度和度数计算的角度分布

以弧度为单位的输出在南北方向有峰值,而以度为单位的输出在四个基本方向上显示峰值(这会在这四个基本方向周围产生低点)。

我很困惑。输入具有双精度,分别是 [0;360[ 和 [-90;90] 范围内的 (lon,lat) 对,没什么特别的。使用的椭球无关紧要,只要它的偏心率不为零。

以前有没有其他人遇到过这个问题?任何见解都值得赞赏。

0 投票
2 回答
942 浏览

lua - 太阳在 Lua 中的位置(方位角)

在 LUA 中我只能在网上找到一个函数,但它给出了错误的值(使用专业的在线工具测量)。

似乎从日出到中午之后的某个时间,数学是有效的,但是之后,太阳的角度又回到了日出的位置。应该是从 106° 到 253°,目前是从 106° 到 ~180° 到 106°。

我正在使用的功能:

示例请求:

结果是:

  • -0.1 度高度
  • 方位角 106 度。

结果应该是:

  • -0.1 度高度
  • 方位角 253 度。

我在其他编程语言中找到了多种解决方案,甚至尝试用 Lua 重写但没有任何成功。解决方案背后的数学太复杂了。

我将它用于我的Corona SDK应用程序,该应用程序将显示太阳相对于设备的位置。当前唯一可行的解​​决方案是我的应用程序可以通过 Internet 上的 API 调用询问的 PHP 或 Javascript 脚本,但我真的很想避免这种情况。

我非常感谢社区提供的任何帮助。谢谢你们,爱你们!:)

0 投票
0 回答
1287 浏览

python - 使用 pysolar 和 Pandas [Python] 计算太阳方位角

我正在尝试使用 Pysolar 和 Pandas 计算太阳方位角。我想计算DataFrame索引的方位角(如下代码所示)。但是在使用 i<2 时,所有日期和时间的结果都是相同的方位角,然后第二次 (i==1) 它对于所有日期和时间都不同但相同。我只想将每个日期和时间的方位角计算为单独的列。知道我做错了什么吗?

输出是

0 投票
0 回答
965 浏览

r - ggplot 为方位角创建玫瑰图

我想为 r 中的方位角数据绘制玫瑰图。我在这篇文章中找到了代码(How to shift bins in a rose diagram using package 'circular' in R)。我设法让代码与我的数据一起工作,但是,我想改进它的外观。具体来说,我希望挖起杆有黑色边框。我不知道如何在 ggplot2 中做到这一点。任何人都有几分钟的时间告诉我我将如何做到这一点?提前致谢。

0 投票
2 回答
219 浏览

r - 太阳位置的 R 函数给出了意想不到的结果

我想根据时间、纬度和经度计算太阳的位置。我在这里找到了这个很好的问题和答案:给定一天中的时间、纬度和经度的太阳位置。但是,当我评估函数时,我得到不正确的结果。鉴于答案的质量,我几乎可以肯定我的结果有问题,但我提出这个问题是为了记录试图解决问题。

为方便起见,下面转载了函数的代码:

如果我运行:

结果是:

Sys.time() 给出:

现在是早上 9 点,太阳已经升起。使用http://www.esrl.noaa.gov/gmd/grad/solcalc/我得到 124 的方位角和 38 的仰角,我认为这是正确的。

我想这可能是代码的问题,但我也从上面的答案中测试了 Josh 的原始 sunPosition 函数并得到了相同的结果。我的下一个想法是我的时间或时区有问题。


如上述问题中所做的那样测试冬至,仍然给出他们发现的相同结果并且看起来是正确的:

当我做同样的测试,但改变经度(-89)时,我在中午得到一个负海拔。

0 投票
0 回答
223 浏览

ios - 使用 CoreMotion / CoreLocation 从手机背面计算北航向

我想从手机背面(-Z 轴)获取增强现实应用程序的方位角。我的应用程序仅在 Landscape Right 中运行。在 iPhone 5S 上进行测试。

目前,我正在使用以下方法: CoreLocation heading base on back camera (Augmented reality)

这种方法有两个问题:

  1. 如果我将设备的背面指向北方,这样我目前处于 0 度,然后顺时针旋转(偏航)整整 360 度,我现在处于 -20 度。逆时针旋转增加 20 度。这种模式重复自身,从 0 旋转 720 度现在产生 -40 度,依此类推。此外,即使我不一定要进行这些清晰的旋转,而是混乱地移动手机(旋转、摇晃等),但最终会回到我最初所在的位置,我什至无法预测它会产生什么价值节目。
  2. 另一个问题是我认为所谓的陀螺漂移。如果我根本不移动设备,我可以清楚地看到该值如何随时间缓慢变化,比如说每隔几秒 0.1 度,有时在一个方向,有时在另一个方向,直到它决定停止的某个点.

问题是,我没有数学背景知道如何解释这些变化。特别有问题的是,我似乎无法从 deviceMotion.attitude 的 yaw/pitch/roll 计算旋转矩阵。我试过了:

我已经尝试了所有 Tait-Bryan 组合(uvw、uwv、vuw、vwu、wvu、wuv),其中一些非常接近,但仍然不够接近。

从我的观察来看,CLLocationManager 的磁航向似乎比 CMMotionManager 计算的航向准确得多,但同样,即使我得到了正确的角度,我也不知道应该从哪里开始在不同的坐标中获得等效角度系统参考系。任何帮助将不胜感激。

0 投票
1 回答
1423 浏览

javascript - Three.js:在两个方位角之间来回旋转对象

我有一个加载了 three.js 的 3D 对象,它应该只能从前面看到,因为它是一个平面,而从后面看它是透明的......

使用 orbitContronls,我限制了方位角和极角的偏移......

为了使 3D 吸引人,它应该开始旋转......

如何限制 -90° 和 90° 之间的来回运动?

0 投票
1 回答
808 浏览

android - 当手机面向用户时,Android 摄像头会影响传感器(加速度计和磁场)

对于我正在制作的应用程序,我需要一个相机和一个指南针。应用程序在清单中设置为横向模式。
首先,我实现了指南针。正如 Android Developers 中所建议的,我使用了两个传感器——加速度计磁场。这就是我的做法:
我有我的活动实施SensorEventListener。在onCreate()我初始化我的sensorManager使用:

我像这样注册我的听众onResume()

当然也可以在onPause(). 我不使用onAccuracyChanged(). 这就是我所做的onSensorChanged()

如您所见,我区分了手机平放在桌子上的时间和用户拿着手机的时间(就像拍照时一样)。当我单独使用这段代码时,一切都或多或少地工作得很好。当手机放在桌子上和垂直于桌子握住时(大约 5-10 度的差异,但我可以忍受),我都得到了正确的方位角值。

将相机预览添加到应用程序时,问题就开始了。我有我的活动工具SurfaceHolder.Callback。我初始化我的相机onCreate()

这就是我实现接口的方式:

当我将相机代码添加到我的项目中并在手机屏幕上显示相机时,当手机突然垂直时,我的传感器无法正常工作。如果手机平放在桌子上,我得到的方位角值是正确的。当手机与桌子垂直时,我的方位角值偏离了大约 40 度(虽然稳定)。

我已经尝试寻找解决方案(我自己和在线),但到目前为止我的努力都是徒劳的。我很想就如何解决这个问题获得一些指导。
谢谢!

0 投票
1 回答
388 浏览

java - Android:方位角问题取决于初始设备倾斜度

我目前正在编写一个 Android AR 应用程序,但我的方位角计算存在问题,具体取决于初始设备倾斜度。

我使用 ROTATION_VECTOR 传感器来获取方位角、高度和倾斜度。

当我启动我的应用程序并且手机与地面垂直时,我从北方获得了良好的方位角。当我启动应用程序并且手机与地面平行时,我的价值观很差。更改设备倾斜度时,我也有奇怪的值。

这是我的代码: