如何在Google Maps for Android上显示路线

时间:2017-06-17 18:29:04

标签: java android google-maps google-maps-api-3

我有一个应用程序,它通过com.google.maps.DirectionsApi类检索路由列表,并返回类型对象中的路由 com.google.maps.model.DirectionsResult,如何在Google Maps Activity中显示此对象中包含的路线?

1 个答案:

答案 0 :(得分:1)

我知道您使用的是Java Client for Google Maps Services

您应该遍历com.google.maps.model.DirectionsResult的结构以获取所有LatLng并使用Polyline在地图上绘制路线。

com.google.maps.model.DirectionsResult包含一系列路线(DirectionsRoute)。 com.google.maps.model.DirectionsRoute包含一系列分支(DirectionsLeg)。 com.google.maps.model.DirectionsLeg包含一系列步骤(DirectionsStep)。 com.google.maps.model.DirectionsStep包含已编码的折线。您可以从每个编码折线获取LatLng列表,并使用它来构造Polyline对象。

代码段可能类似于

for (int i=0; i<result.routes.length; i++) {
    DirectionsRoute route = result.routes[i];
    PolylineOptions polyOptions = new PolylineOptions();
    for (int j=0; j<route.legs.length; j++) {
        DirectionsLeg leg = route.legs[j];
        for (int k=0; k<leg.steps.length; k++) {
            DirectionsStep step = leg.steps[k];
            EncodedPolyline encpoly = step.polyline;
            List<LatLng> points = encpoly.decodePath();
            polyOptions.addAll(points);
        }
    } 
    Polyline p = googleMap.addPolyline(polyOptions);
}