Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将给定观察者位置的太阳路径投影到谷歌地图上_Javascript_Google Maps_Math_Coordinates_Astronomy - Fatal编程技术网

Javascript 将给定观察者位置的太阳路径投影到谷歌地图上

Javascript 将给定观察者位置的太阳路径投影到谷歌地图上,javascript,google-maps,math,coordinates,astronomy,Javascript,Google Maps,Math,Coordinates,Astronomy,我有以下的详细清单 Latitude and Longitude, Date/Time Altitude and Azimuth 我想做的是计算一个相对的纬度和经度,这样我就可以用GoogleMapsV3(JavaScript)绘制一个椭圆形 这是可能的,还是我应该将我的lat/lng转换为页面像素并这样做(但这不是我想要实现任务的方式) [编辑] 我试图根据单个观察者观察到的高度和方位角来收集纬度和经度坐标,因此我想在地图上的一个点上可视化一天/一段时间内太阳的路径。更新:与Dave聊天后,

我有以下的详细清单

Latitude and Longitude,
Date/Time
Altitude and Azimuth
我想做的是计算一个相对的纬度和经度,这样我就可以用GoogleMapsV3(JavaScript)绘制一个椭圆形

这是可能的,还是我应该将我的lat/lng转换为页面像素并这样做(但这不是我想要实现任务的方式)

[编辑]


我试图根据单个观察者观察到的高度和方位角来收集纬度和经度坐标,因此我想在地图上的一个点上可视化一天/一段时间内太阳的路径。

更新:与Dave聊天后,我相信下面的方法可以在地图上精确地投影太阳的位置

这里有一个投影的快速草图。它应该是3D的。我们希望将太阳投影到2D曲面上,其中x和y是观察者的偏移量,z是到投影太阳的距离:

已知:

  • 从地球到太阳的距离,S=1495978700m
  • φ(太阳方位角)
  • θ(太阳高度)
我们真正想要的是z(距离)和φ,轴承。φ是已知的,所以我们需要z。记住S是巨大的,所以我们应该把它缩小到一个较小的数字,这样我们的坐标就可以在地图上看到。只要我们保持新的S不变,这就不重要了。现在,要找到z:

sin(theta) = z / S, therefore z = S * sin(theta)
一旦我们有了距离z和方位角φ,我们就可以使用这些方程来计算纬度/液化天然气坐标:

var lat2 = Math.asin( Math.sin(lat1)*Math.cos(d/R) + 
          Math.cos(lat1)*Math.sin(d/R)*Math.cos(brng) );

var lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(lat1), 
                 Math.cos(d/R)-Math.sin(lat1)*Math.sin(lat2));
其中
d=行驶距离=我们的z
R=地球半径=6371000(米)

那很容易!现在只需迭代所有太阳位置,并在地图上绘制它们

下面是一些使用S=1000的快速结果:

Azimuth    altitude    z
110        5           87
150        20          342
180        70          939
210        20          342

请注意,如果您处理的是非常大的距离,由于地球建模的困难,这将不会完全准确。

什么是“相对”纬度和经度?相对于观察者。在我当前的纬度和经度周围有点像一个圆弧/圆圈。那么你想在地图上画一个圆圈,围绕列表中的每个坐标?或者在您当前位置附近?在我的地图上的一组坐标(纬度/经度)上显示当前太阳的位置/路径。我试图根据单个观察者观察到的高度和方位收集纬度和经度坐标,所以在我的地图上有一个点我想把太阳在一天/一段时间内的运行轨迹可视化,我想我明白了。我认为你仍然可以使用上述方法。对于每个azim/alt,确定您希望太阳标记显示的距离(对于d),然后确定您的方位角=方位角。谢谢,我现在就开始实现。我会回来报告的,有没有任何文章你可以参考这个计算,以便我可以进一步阅读它。只是我链接的网站。它有大量的资源来做这类事情。我以前也做过类似的事情。令人困惑,但也有可能。祝你好运突然的想法(和duh!瞬间)我没有距离,我只有一个不变的静态点。我错过什么了吗?