/**
* 设置路线数据。
*
* @param line 路线数据
*/
public void setData(BikingRouteLine line) {
mRouteLine = line;
}
@Override
public final List getOverlayOptions() {
if (mRouteLine == null) {
return null;
}
List overlayList = new ArrayList();
if (mRouteLine.getAllStep() != null
&& mRouteLine.getAllStep().size() > 0) {
for (BikingRouteLine.BikingStep step : mRouteLine.getAllStep()) {
Bundle b = new Bundle();
b.putInt("index", mRouteLine.getAllStep().indexOf(step));
if (step.getEntrance() != null) {
overlayList.add((new MarkerOptions()).position(step.getEntrance().getLocation())
.rotate((360 - step.getDirection())).zIndex(10).anchor(0.5f, 0.5f)
.extraInfo(b)
.icon(BitmapDescriptorFactory.fromAssetWithDpi("Icon_line_node.png")));
}
// 最后路段绘制出口点
if (mRouteLine.getAllStep().indexOf(step) == (mRouteLine
.getAllStep().size() - 1)
&& step.getExit() != null) {
overlayList.add((new MarkerOptions()).position(step.getExit().getLocation())
.anchor(0.5f, 0.5f).zIndex(10)
.icon(BitmapDescriptorFactory.fromAssetWithDpi("Icon_line_node.png")));
}
}
}
// starting
if (mRouteLine.getStarting() != null) {
overlayList.add((new MarkerOptions()).position(mRouteLine.getStarting().getLocation())
.icon(getStartMarker() != null ? getStartMarker()
: BitmapDescriptorFactory.fromAssetWithDpi("Icon_start.png"))
.zIndex(10));
}
// terminal
if (mRouteLine.getTerminal() != null) {
overlayList.add((new MarkerOptions()).position(mRouteLine.getTerminal().getLocation())
.icon(getTerminalMarker() != null ? getTerminalMarker()
: BitmapDescriptorFactory.fromAssetWithDpi("Icon_end.png"))
.zIndex(10));
}
// poly line list
if (mRouteLine.getAllStep() != null
&& mRouteLine.getAllStep().size() > 0) {
LatLng lastStepLastPoint = null;
for (BikingRouteLine.BikingStep step : mRouteLine.getAllStep()) {
List watPoints = step.getWayPoints();
if (watPoints != null) {
List points = new ArrayList();
if (lastStepLastPoint != null) {
points.add(lastStepLastPoint);
}
points.addAll(watPoints);
overlayList.add(new PolylineOptions().points(points).width(18).dottedLine(true)
.customTexture(getBikeRoadCustomTexture()).zIndex(0));
lastStepLastPoint = watPoints.get(watPoints.size() - 1);
}
}
}
return overlayList;
}
public BitmapDescriptor getBikeRoadCustomTexture() {
return BitmapDescriptorFactory.fromAsset("Icon_road_blue_arrow.png");
}
复制
深色
复制成功