【发布时间】:2015-07-09 04:41:45
【问题描述】:
我正在开发一个高度依赖地理位置和基于它的计算的应用程序。其中一个视图是列表视图,它提供了用户位置后面的移动 POI 列表。
+---------------------------+
+------ . ------+
+----- . -----+
+---- . [POI1] ----+
+--- . / ---+
+-- . / --+
+- . / -+
+ [ME] +
+- . -+
+-- . --+
+--- . ---+
+---- [POI2] . ----+
+----- . -----+
+------ .------+
+---------------------------+
/ = user course
..= perpendicular line
[POI1] = in front
[POI2] = Behind
到目前为止,我已经制定了以下步骤:
- 获取用户位置
- 检索半径 5 公里内的 POI
- 以更高的速度和相同的航向(自身航向的 +/- 45 度)过滤所有 POI
下一步是确定哪些 POI 在用户前面,哪些在后面。我想出的方法是创建一条垂直于用户路线的无限线(矢量)。 (例如,在东北方向的 45 度航道上,该线将是西北-东南)。然后我需要弄清楚每个 poi 的经纬度是在这条线的前面还是后面,以便知道它是在用户前面还是后面。
所有这些都是在 javascript 中使用纬度和经度完成的。所以我可能需要某种公式或函数来比较两个 latlng 点,相对于第一个点的过程。
到目前为止,Google 的帮助并不大,所以我真的希望有人能解决这个问题!与此同时,我会因为在数学课上没有足够的注意力而感到羞耻。
【问题讨论】:
标签: javascript math geolocation geometry geo