다음 튜토리얼 (http://code.google.com/p/osmbonuspack/wiki/Tutorial_1)에서 얻은 코드를 사용하여 경로 오버레이를 OSM 드로이드 맵에 배치하는 데 다음 코드를 사용하지만 사용자 정의 메서드로 약간 수정 한 코드를 사용합니다. OnCrerate 메소드.튜토리얼을 수행 할 때 OSMDroid 라우팅 문제
이제지도에서 녹색 오버레이가 만들어지고 생성됩니다. 그러나 For 루프 이후에는 문제가 있습니다. 이는 road.mNodes가 항상 크기가 0이므로 명령어가 내려 오지 않음을 나타냅니다.
우연히도 RoadNodes 및 RoadItems를 검사했으며 둘 다 크기가 0입니다. 즉, 거품 (ExtendedOVerlayItems)이 경로에 표시되지 않습니다.
모든 조언을 주시면 감사하겠습니다.
//======================================================================================================
/**
* Add a route overlay between two geopoints with Bubble overlays on the route points.
*
* @param startPoint Route start.
* @param endPoint Route end.
*//
//======================================================================================================
public void addRouteOverlay(GeoPoint startPoint, GeoPoint endPoint)
{
//1 Routing via road manager
RoadManager roadManager = new OSRMRoadManager();
roadManager.addRequestOption("routeType=bicycle");
//Then, retreive the road between your start and end point:
ArrayList<GeoPoint> waypoints = new ArrayList<GeoPoint>();
waypoints.add(startPoint);
waypoints.add(endPoint); //end point
Road road = roadManager.getRoad(waypoints);
// then, build an overlay with the route shape:
PathOverlay roadOverlay = RoadManager.buildRoadOverlay(road, map.getContext());
roadOverlay.setColor(Color.GREEN);
//Add Route Overlays into map
map.getOverlays().add(roadOverlay);
map.invalidate();//refesh map
Drawable marker = ctx.getResources().getDrawable(R.drawable.map_marker_blue);
final ArrayList<ExtendedOverlayItem> roadItems =
new ArrayList<ExtendedOverlayItem>();
ItemizedOverlayWithBubble<ExtendedOverlayItem> roadNodes =
new ItemizedOverlayWithBubble<ExtendedOverlayItem>(ctx, roadItems, map);
for (int i=0; i<road.mNodes.size(); i++)
{
RoadNode node = road.mNodes.get(i);
ExtendedOverlayItem nodeMarker = new ExtendedOverlayItem("Step "+i, "", node.mLocation, ctx);
nodeMarker.setMarkerHotspot(OverlayItem.HotspotPlace.CENTER);
nodeMarker.setMarker(marker);
roadNodes.addItem(nodeMarker);
nodeMarker.setDescription(node.mInstructions);
nodeMarker.setSubDescription(road.getLengthDurationText(node.mLength, node.mDuration));
Drawable icon = ctx.getResources().getDrawable(R.drawable.ic_continue);
nodeMarker.setImage(icon);
}//end for
map.getOverlays().add(roadNodes);
}//===================================================================================================
앤드류 솔루션을 찾았습니까? – user1840255