簡體   English   中英

OSMDroid PathOverlay

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM