在Google地图上绘制路线

时间:2010-08-04 10:09:47

标签: google-maps

如何使用Google Maps API绘制路线?例如,将一堆路点加载到地图上(我目前有这个)并从每个路线中画出一条线,向用户显示他们可以看到所有路线的路线?当用户看到地图时,我该如何加载?

3 个答案:

答案 0 :(得分:29)

您可以在DirectionsService对象上设置 waypoints 属性,它将通过数组中的所有点绘制从源到目标的路径:

  

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

设置航路点属性后,调用路线方法来计算路线:

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。请注意,除非您切换到商家帐户,否则您的阵列中最多只能使用8个航点。

答案 1 :(得分:2)

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

类似的东西:

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

答案 2 :(得分: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/

希望这有帮助。