[英]OSMDroid PathOverlay
今天我很期待如何在OSMDroid中使用PathOverlay。
我找不到任何解釋它是如何工作的。
我需要創建一個建議的路線(不像導航系統),只需要一個點開始,做一個“電路”,然后返回起點。
就像這樣(在谷歌地圖中繪制):
我在這里要問的是,正確的方法是什么,指定一個自定義路徑,做我想要的轉彎。
謝謝!
它將在地圖上方為您繪制一系列直線,因此您需要知道所有路口的緯度和經度(以及它們從直線彎曲的任何地方)。 將所有這些點添加到疊加層。 例如,此代碼將在倫敦市中心繪制一個矩形框。
public class OsmdroidDemoMap extends Activity {
private MapView mMapView;
private MapController mMapController;
int mIncr = 10000;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.osm_main);
mMapView = (MapView) findViewById(R.id.mapview);
mMapView.setTileSource(TileSourceFactory.MAPNIK);
mMapView.setBuiltInZoomControls(true);
mMapView.setMultiTouchControls(true);
mMapController = mMapView.getController();
mMapController.setZoom(13);
GeoPoint gPt0 = new GeoPoint(51500000, -150000);
GeoPoint gPt1 = new GeoPoint(gPt0.getLatitudeE6()+ mIncr, gPt0.getLongitudeE6());
GeoPoint gPt2 = new GeoPoint(gPt0.getLatitudeE6()+ mIncr, gPt0.getLongitudeE6() + mIncr);
GeoPoint gPt3 = new GeoPoint(gPt0.getLatitudeE6(), gPt0.getLongitudeE6() + mIncr);
mMapController.setCenter(gPt0);
PathOverlay myPath = new PathOverlay(Color.RED, this);
myPath.addPoint(gPt0);
myPath.addPoint(gPt1);
myPath.addPoint(gPt2);
myPath.addPoint(gPt3);
myPath.addPoint(gPt0);
mMapView.getOverlays().add(myPath);
}
}
。
以下是如何在OSMBonusPack中使用Polyline繪制道路的教程: https : //github.com/MKergall/osmbonuspack/wiki/Tutorial_1
這很簡單,我在我的應用程序中成功使用了它。
我基於該教程的代碼如下所示:
RoadManager roadManager = new OSRMRoadManager();
ArrayList<GeoPoint> track = new ArrayList<>();
// TODO: Fill the list with your track points
Road road = roadManager.getRoad(track);
Polyline roadOverlay = RoadManager.buildRoadOverlay(road, context);
mapView.getOverlays().add(roadOverlay);
mapView.invalidate();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.