![](/img/trans.png)
[英]Unsuccessful in getting out KML-file placemarks when looping out an arraylist in Xamarin Forms Android
[英]How to add KML-file routes to a Xamarin.Forms.Android google map?
我在xamarin.forms.android項目中有一些帶有路由的KML文件,希望將其添加到地圖中。 我已經創建了一個自定義渲染器,如下所示,但是現在我不確定如何將本地kml文件(我在資源文件夾中)添加到地圖中。 ( https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/custom-renderer/map/polyline-map-overlay/ )
類:
public class CustomMap : Map
{
public List<Position> RouteCoordinates { get; set; }
public CustomMap()
{
RouteCoordinates = new List<Position>();
}
}
渲染:
GoogleMap map;
List<Position> routeCoordinates;
protected override void OnElementChanged(Xamarin.Forms.Platform.Android.ElementChangedEventArgs<Map> e)
{
base.OnElementChanged(e);
if (e.OldElement != null)
{
// Unsubscribe
}
if (e.NewElement != null)
{
var formsMap = (CustomMap)e.NewElement;
routeCoordinates = formsMap.RouteCoordinates;
((MapView)Control).GetMapAsync(this);
}
}
public void OnMapReady(GoogleMap googleMap)
{
map = googleMap;
var polylineOptions = new PolylineOptions();
polylineOptions.InvokeColor(0x66FF0000);
foreach (var position in routeCoordinates)
{
polylineOptions.Add(new LatLng(position.Latitude, position.Longitude));
}
map.AddPolyline(polylineOptions);
}
如果我想嘗試路線,這就是我使用它的方式(customMap是我在XAML中創建的地圖):
customMap.RouteCoordinates.Add (new Position (37.785559, -122.396728));
customMap.RouteCoordinates.Add (new Position (37.780624, -122.390541));
但我希望將KML文件添加到地圖上並自動創建路線。
我現在如何將KML文件添加到渲染器?
您可以使用Google Maps Android API實用程序庫(通過Xamarin綁定庫)將KML圖層添加/刪除到地圖中:
KML可以作為資源ID或流提供,對於我要做的工作,我使用緩存目錄中下載文件中的流:
var kmlLayer = new KmlLayer(googleMap, kmlfileStream, ApplicationContext);
kmlLayer.AddLayerToMap();
回復: https : //developers.google.com/maps/documentation/android-api/utility
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.