2010-08-04 134 views
22

如何使用Google Maps API绘制路线?例如,将一堆路点加载到地图上(我现在有这种情况),然后从每个路口划出一条线,向用户显示他们可以看到的所有路线?那么当用户看到地图的时候,我会如何加载呢?在Google地图上绘制路线

+0

如果我可以添加到我的答案澄清,请让我知道。 – RedBlueThing 2010-08-11 06:41:13

+0

@Cannonade是的,那很好..对不起。我可以举个例子吗?只是有点困惑 – Skizit 2010-08-11 10:40:34

+0

我会实施一个例子,并尽快更新我的答案,只要我有机会。 – RedBlueThing 2010-08-11 12:15:57

回答

28

您可以设置航点属性对象上,它会通过您的阵列中的所有点绘制从源到目的地的路线:

中间航点的数组。 方向将通过 这个数组中的每个路点从 原点到目的地计算。

一旦您设置了航点属性,调用路径法计算方向:

route(request:DirectionsRequest, callback:function(DirectionsResult, DirectionsStatus))) 

一旦你有你的DirectionsResult,您可以使用DirectionsRenderer对象上呈现结果一个Google地图。

// three points through which the directions pass 
var point1 = new google.maps.LatLng(-33.8975098545041,151.09962701797485); 
var point2 = new google.maps.LatLng(-33.8584421519279,151.0693073272705); 
var point3 = new google.maps.LatLng(-33.84525521656404,151.0421848297119); 

// build an array of the points 
var wps = [{ location: point1 }, { location: point2 }, {location: point3}]; 

// set the origin and destination 
var org = new google.maps.LatLng (-33.89192157947345,151.13604068756104); 
var dest = new google.maps.LatLng (-33.69727974097957,150.29047966003418); 

var request = { 
     origin: org, 
     destination: dest, 
     waypoints: wps, 
     travelMode: google.maps.DirectionsTravelMode.DRIVING 
     }; 

可以找到此代码的工作示例:

与工作实例

以下代码使经由三路点的阵列的硬编码的起点和终点之间的方向请求更新heresource)。

N.B.请记住,除非您切换到企业帐户,否则最多只能在阵列中使用八个航点。

+0

A B C在地图上显示为标记。他们在哪里设置?我该如何将这个变成空白或者是该地方的标题? – LTech 2014-06-24 09:46:23

+2

感谢航点限制信息 – 2015-04-22 09:39:54

3

您可以使用静态地图,然后遍历所有点并使用路径参数绘制点。

喜欢的东西:

&path=color:blue|weight:5|45.123,-123.595|46.456,-124.985 
+3

请分享您正在谈论的完整代码吗? – 2017-03-24 03:20:35

0

我已经在Android上完成了这项工作。 谷歌已为此服务这里是链接 https://developers.google.com/maps/documentation/roads/intro

你会在这里找到一个API调用示例。加上一些网页说明。 https://developers.google.com/maps/documentation/roads/snap

这是一个Web服务调用示例。 https://roads.googleapis.com/v1/snapToRoads?path=-35.27801,149.12958|-35.28032,149.12907|-35.28099,149.12929|-35.28144,149.12984|-35.28194,149.13003|-35.28282,149.12956|-35.28302,149.12881|-35.28473,149.12836&interpolate=true&key=YOUR_API_KEY

如果记忆服务,我相信每次打电话最多可以有100个积分,每次打电话都会收取费用,而不管积分数量多少。

上面的这个调用也可以配置成对齐道路。

就地图加载时绘制路线而言,这取决于您使用的是什么技术。我知道这很容易。NET WinForms

如果您对您的问题发表了评论,让我知道你使用的是什么技术我可能会给你一些进一步的建议。

如果你想测试你的路线自由,我发现了一个漂亮的小网站: https://www.darrinward.com/lat-long/

希望这有助于。