找出范围内的路线

18 views
Skip to first unread message

Molly

unread,
Oct 7, 2009, 9:24:46 AM10/7/09
to 谷歌地图 API 论坛

目前资料库中有多笔路径,存有起点终点这样子的路径
假设我输入一个位址,想要显示出一定范围内比如说5公里内的范围
有路径经过的路线,或是起终点在范围内的路线...
最后再让使用者挑出最适合的那条。

这样子的话该怎么做呢?
谢谢

Fei Chen

unread,
Oct 7, 2009, 10:07:17 AM10/7/09
to google-map...@googlegroups.com
你的需求单纯依赖Maps API很难实现,我的思路大概是:

1、根据输入地址使用API解析出地址坐标;
2、根据坐标计算出范围为5公里的bounds;
3、在你的DB中搜索起终点在该bounds中的路径返回前端,自己实现“根据给定Bounds搜索经过该Bounds的点”;
4、根据返回的起终点使用API查询对应路线,并在页面中显示供用户选择;

如果你的DB中保存路径较少,那么第3步可以直接在前端使用GBounds.containsPoint()方法判断,但估计你的情况肯定要在Server端自己搜索判断了。
另外,按照你的描述,在DB里只保存起终点,要查找有路径经过的路线肯定比较困难,除非你缓存所有API提供的路线,然后在你自己的Server端实现“根据给定Bounds搜索经过该Bounds的路线”;


2009/10/7 Molly <shgg...@hotmail.com>

Molly

unread,
Oct 7, 2009, 10:25:28 AM10/7/09
to 谷歌地图 API 论坛
> 3、在你的DB中搜索起終點在該bounds中的路徑返回前端,自己實現“根據給定Bounds搜索經過該Bounds的點”;

不太懂这一点的描述...可以再说明详细一点吗?

> 如果你的DB中保存路徑較少,那麼第3步可以直接在前端使用GBounds.containsPoint()方法判斷,但估計你的情況肯定要在Server端自己搜索判斷了。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
这里也不是很懂可以再详述一下吗?
不好意思...

Fei Chen

unread,
Oct 7, 2009, 10:50:17 AM10/7/09
to google-map...@googlegroups.com

2009/10/7 Molly <shgg...@hotmail.com>

> 3、在你的DB中搜索起終點在該bounds中的路徑返回前端,自己實現“根據給定Bounds搜索經過該Bounds的點”;

不太懂这一点的描述...可以再说明详细一点吗?

就是说,在开始这一步之前,已经确定在地图上的搜索范围了,即长宽为5公里的正方形,这一步需要做的就是找出你的DB里哪些起终点在这个正方形里。这个查找算法需要你自己来实现。
 

> 如果你的DB中保存路徑較少,那麼第3步可以直接在前端使用GBounds.containsPoint()方法判斷,但估計你的情況肯定要在Server端自己搜索判斷了。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
这里也不是很懂可以再详述一下吗?

GBounds.containsPoint(point)方法就是Map API提供的根据给定的矩形区域(Bounds)判断给定参数point是否在该区域的方法。你的DB里面保存的起终点数据如果比较多的话都拿到前端使用API提供的containsPoint方法做判断当然不现实了,所以需要你在自己的Server端实现类似于GBounds.containsPoint(point)方法。

不知道说明白没有,呵呵。

不好意思...

没关系,我的思路不一定是最好的,呵呵,可以看看其他人有没有更好的方法。

Thanks,
--Fei Chen
 



Reply all
Reply to author
Forward
0 new messages