【发布时间】:2017-06-19 20:34:27
【问题描述】:
我有一个应用程序,它通过 com.google.maps.DirectionsApi 类检索路线列表并返回类型对象中的路线 com.google.maps.model.DirectionsResult,如何在 Google Maps Activity 中显示此对象中包含的路线?
【问题讨论】:
标签: java android google-maps google-maps-api-3
我有一个应用程序,它通过 com.google.maps.DirectionsApi 类检索路线列表并返回类型对象中的路线 com.google.maps.model.DirectionsResult,如何在 Google Maps Activity 中显示此对象中包含的路线?
【问题讨论】:
标签: java android google-maps google-maps-api-3
我了解到您使用的是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 列表,并使用它来构造折线对象。
代码 sn-p 可能类似于
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);
}
【讨论】: