2011-04-05 71 views
2

我想使用谷歌地图API在我的客户的办公室和其客户之间生成一条路线。距离线路/路径n公里内的积分

然后我想找到位于例如内部的任何客户(来自我的内部数据库)。在该路线的任何一侧10英里。

基本上我想复制这一功能: http://gis5.com/pois_along_route/gm_pois_along_route.php

我会很感激你可能对这个

+0

比较指定的链接 - 您的客户将从链接的餐馆? – GoG 2011-04-06 23:09:13

+0

这是绝对正确的GoG。因此,我目前的过程大致如下:从Google获取路由点,然后使用Google的路由点/线作为操作数,对SQL2008数据库本地保存的数据执行搜索。 – RobD 2011-04-08 08:22:38

回答

6

一般而言,任何指针,你必须从给定的点(客户)发现距离和一条折线(路线)。从谷歌方向响应的路线分为双腿,腿由多个步骤组成......在每一步中,您都有路径[]阵列(纬度和经度对)。让我们调用path []数组中的每个位置,一个“顶点”。 您必须遍历路线中的所有顶点(获取路线中所有步骤中的所有顶点),并计算从当前“观察”顶点创建的多段线与您的POI(兴趣点 - 客户)之间的距离 最短距离可以通过将客户位置的两个顶点&呈现为nVector来计算。在此之后,通过做矢量跨产品的矢量,你发现点和多段线之间的最短(正交)距离 我最近有类似的问题,我解决了这种方式。我从例子Here(看远处点到折线或多边形例如Source code)的想法

如果从所涉及的数学困惑,也许this链接可能被解释向量跨产品的概念,帮助您。还要了解nVector概念的this could also help you

因为这种计算距离非常耗时(如果您在数据库中有很多客户位置),您可能有兴趣从数据库中过滤一些位置并且不对其执行计算。看看我的回答this有关如何根据地图上显示的路线对地点进行过滤的问题。 希望这有助于您,并告诉您如何开始解决您的问题。我花了很多时间才弄清楚。干杯。

+0

这是伟大的GOG!非常感谢,这已经让我走上了正确的道路。 – RobD 2011-04-11 09:13:28