Rob*_*obD 3 google-maps geolocation
我想使用Google maps API在我的客户办公室和他们的客户之间生成一条路线.
然后,我想找到位于该路线两侧10英里范围内的任何客户(来自我的内部数据库).
基本上我想复制这个功能:http: //gis5.com/pois_along_route/gm_pois_along_route.php
我很感激您对此有任何指示
小智 8
通常,您必须找到给定点(您的客户)和折线(路线)的距离.来自谷歌方向响应的路线被划分为腿,腿由多个步骤组成...在每个步骤中,您有路径[]阵列位置(纬度和经度对).让我们调用path []数组中的每个位置,即"顶点".您必须遍历路径中的所有顶点(从路径中的所有步骤获取所有顶点)并计算从当前"观察"顶点创建的折线与您的POI(兴趣点 - 客户)之间的距离最短可以通过将两个顶点和客户的位置显示为nVector来计算距离.在此之后,通过矢量的矢量交叉乘积,你发现点和折线之间的最短(正交)距离我最近有类似的问题,我就这样解决了.我从这里的例子中得到了这个想法(看看DISTANCE POINT TO POLYLINE OR POLYGON示例源代码)
如果您对所涉及的数学感到困惑,也许这个链接可能会帮助您解释Vector Cross Product的概念.此外,这也可以帮助你了解nVector概念.
因为这种计算距离非常耗时(如果数据库中有许多客户位置),您可能有兴趣从数据库中过滤某些位置而不对它们执行计算...看看我的答案在这个关于如何根据被显示在地图上的路线上做上的位置的过滤问题.希望这会有所帮助,并为您提供有关如何开始解决问题的基本想法.我花了很多时间才弄明白.干杯.