我有一个应用程序,它通过com.google.maps.DirectionsApi类检索路由列表,并返回类型对象中的路由 com.google.maps.model.DirectionsResult,如何在Google Maps Activity中显示此对象中包含的路线?
答案 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);
}