请随意安排您的旅程
使用过谷歌地图的驾车路线查询吗?即使没用过,大概也能想象得出这是怎么回事——输入起点和终点,回车,地图上就会标出起点到终点的路线详情,欧~~了。
不错,我可不是要来这里告诉你怎么使用这种基本操作的!
截个图,先睹为快!
估计你知道我要说什么吧,图上都有提示了!
对,现在使用谷歌地图的驾车路线查询,把你的鼠标移到代表驾车路线的这条蓝线上,就会出现一个小圆圈,把它拖到你想经过的地点,地图就会自动重新查询,重新计算出从起点到终点、并且经过你所设定的中间点的新路线。而且,这样的中间点可以设置多个!
注意了,只要能计算出有效路线,不等你松开鼠标,只要你稍微停顿,新路线就会动态给出,同时,给出里程和参考耗时,比如

注意了,只要能计算出有效路线,不等你松开鼠标,只要你稍微停顿,新路线就会动态给出,同时,给出里程和参考耗时,比如
所以,拖动的目的,除了设置需要经过的地点,驾车路线查询现在也可以成为你避开某个地点或者规划行程的工具,比如需要回避拥堵或者管制路段。不知道怎么做?在回避路段周围多设几个经过点,我就不信避不开 :)
也许你会问,如果我不仅仅需要经过某个地点,还想在这个地点上停靠,该怎么办呢?很简单,在拖动后出现的圆圈上点右键,选择“目的地”,或者在路线上的任何一点点击右键,选择“添加目的地”,如图:

也许你会问,如果我不仅仅需要经过某个地点,还想在这个地点上停靠,该怎么办呢?很简单,在拖动后出现的圆圈上点右键,选择“目的地”,或者在路线上的任何一点点击右键,选择“添加目的地”,如图:
这样路线上就会增加一个绿色的图标作为新增的目的地,同时左边的驾车指示就会以目的地分割,一目了然。当然,你也可以在地图上任何一条路上点击右键并选择“添加为目的地”,查询路线会自动延伸至你新加的目的地。
说到这里,就不能不提另一个与驾车路线有关的右键菜单——在地图上直接点击右键。
如果你并不确定你的目的地或出发地的准确地址,那么,直接在地图上右键点击的的目标吧,并分别在弹出的菜单中选择“以此处为出发点的路线”或“到达此目的地的路线”就可以了。

说到这里,就不能不提另一个与驾车路线有关的右键菜单——在地图上直接点击右键。
如果你并不确定你的目的地或出发地的准确地址,那么,直接在地图上右键点击的的目标吧,并分别在弹出的菜单中选择“以此处为出发点的路线”或“到达此目的地的路线”就可以了。
谷歌地图的驾车路线查询是没有范围限制的,不管你是查询城里的上班路线还是远隔千里的驾车旅游,相信你都能找到适合你的路线,请随意安排您的旅程吧!
等等,你出门旅游还不想走高速,也不想走任何收费道路?这个......
好吧,谷歌地图想到了,使用谷歌地图查询驾车路线,你现在可以选择“避开高速路”和“避免通行费”,赶紧到谷歌地图主页上找找下面这个截图藏在哪里吧,或许你会有更多新的发现,比如查找步行路线!当然,别忘了先指定出发地址和目的地址哦。
如果你有新的建议和需求,可以到我们的用户论坛里提出,我们会努力把地图做得更好!
等等,你出门旅游还不想走高速,也不想走任何收费道路?这个......
好吧,谷歌地图想到了,使用谷歌地图查询驾车路线,你现在可以选择“避开高速路”和“避免通行费”,赶紧到谷歌地图主页上找找下面这个截图藏在哪里吧,或许你会有更多新的发现,比如查找步行路线!当然,别忘了先指定出发地址和目的地址哦。
问:这个在谷歌地图API里面有对应的方法吗?可以使用谷歌地图API在自己的地图上实现这个功能吗?
答:嗯,现在还没有直接的方法可以让你一步到位,但使用谷歌地图API我们可以实现相似的功能。还是看一下API中的哪些类和方法和这个能够拖拽的驾车路线查询有关系吧。
1、在API中使用驾车路线的核心类是GDirections:
- 使用GDirections的loadFromWaypoints()方法,可以查询经过多个点的路线,这些点可以是地址名称,也可以是坐标,但是要保证这些地址和坐标都能够被正确解析。示例代码如下:
var directions = new GDirections (map, panel);
var wayPoints = ["北京市清华园科建大厦","北京市海淀区中关村大街","北京市王府井"];
directions.loadFromWaypoints(wayPoints);
- 使用GDirections的getPolyline()方法,可以取得查询路线对应的polyline,但是需要注意polyline必须在查询结果可用之后才可以取到,所以,你需要监听GDirection的addoverlay事件,这个事件是在polyline添加到地图上以后才触发的,所以这能保证我们可以得到正确的polyline。比如:
polyline = directions.getPolyline();
});
- 使用GDirectionsOptions,你可以设定avoidHighways属性为true,那么你的地图查询结果也可以避开高速路了。GDirectionsOptions里还有其他一些有趣的属性,比如可以设定travelMode,指定查询驾车路线或步行路线。
2、要让用户通过拖拽动态改变路线,接下来需要关注的就是GPolyline类了:
- 你需要动态改变polyline的editing状态,这里需要注意GPolyline的drawing和editing状态的区别,你可以把下面两个方法里面的Editing换成Drawing,看看会是什么样的结果比如:
GEvent.addListener(polyline, "mouseover", function(){
polyline.enableEditing();
});
GEvent.addListener(polyline, "mouseout", function(){
polyline.disableEditing();
});
- polyline改变后会触发lineupdated事件,你需要监听这个事件,并再次调用directions.loadFromWaypoints()方法得到新的路线。
3、其他还有一些问题需要考虑,比如怎么得到和验证新的地点坐标,判断新的地点在wayPoints数组中的index等等,相信这些都不会难住聪明的你。
怎么样,赶紧动手试试吧,说不定你能做出更好更方便的驾车路线查询,别忘了和大家分享奥。
3 Comments:
你的博客很不错,我做了一个将1000个博客链接拼成一幅大图的博客拼图网,其中就收录了你的博客,欢迎你来找找看,也欢迎交换链接。我的博客,面谱 www.mianpu1000.com
By
licufa, At
March 12, 2009 9:23 AM
虽然谷歌的市场份额不大,但是还是喜欢谷歌,而不喜欢百度。
By
Bruce GAO, At
March 29, 2009 6:51 AM
欣赏你的博客,喜欢谷歌页不是百度http://www.happygool.com
By
Anonymous, At
June 21, 2009 4:36 PM
Post a Comment
Links to this post:
Create a Link
<< Home