2013-04-10 47 views

回答

7

Xamarin.Android地圖API是基於谷歌地圖的Android 1.0版API它被廢棄了截至12月3日,2012年如果你真的,真的要實現谷歌地圖我會建議看它使用Xamarin Maps and Location Demo v2Google Maps Android v2 API。然而,繪製路線仍然不是一件容易的事情 - 您可以使用Google Direction API獲取多段線並使用它在地圖上繪製形狀as described here(順便提一下,方向API可用的限制)。

我建議採用不同的方法。如果你確定使用開放街道地圖,我肯定會去OSM Droid圖書館和OSM Bonus Pack,它會爲你做所有的魔術。看看Xamarin OSM Droid Binding sample。要包括獎金包,你可以通過增加metadata.xml中的JAR添加到OSM的Droid約束力的解決方案和固定兩個知名度的問題:

<attr path="/api/package[@name='org.osmdroid.bonuspack.routing']/class[@name='RoadLink']" name="visibility">public</attr> 
<attr path="/api/package[@name='org.osmdroid.bonuspack.overlays']/class[@name='MapEventsOverlay']/method[@name='draw']" name="visibility">public</attr> 

有了這個設置有一個非常漂亮的道路管理者,將繪製爲我們路線。下面是一個示例代碼段:關於這個主題

public class MainActivity : Activity 
{ 
    private IMapController _mapController; 
    private MapView _mapView; 

    protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 
     SetContentView(Resource.Layout.Main); 

     _mapView = FindViewById<MapView>(Resource.Id.mapview); 
     _mapView.SetTileSource(TileSourceFactory.DefaultTileSource); 
     _mapView.SetMultiTouchControls(true); 

     _mapController = _mapView.Controller; 

     RoadManager roadManager = new MapQuestRoadManager(); 

     JavaList<GeoPoint> waypoints = new JavaList<GeoPoint>(); 
     waypoints.Add(new GeoPoint(51.776625, 19.454834)); //start point 
     waypoints.Add(new GeoPoint(51.770839, 19.464962)); //end point 
     Road road = roadManager.GetRoad(waypoints); 

     PathOverlay roadOverlay = RoadManager.BuildRoadOverlay(road, _mapView.Context); 
     _mapView.Overlays.Add(roadOverlay); 
     _mapView.Invalidate(); 

    } 
} 

更多教程位於here

+0

您還可以通過使用多段線和Google方向API實現兩點之間的繪製路徑,請檢查此http://www.appliedcodelog.blogspot.in/2015/08/draw-path-between-two-location-in html的 – Suchith 2015-08-24 05:53:30