簡體   English   中英

如何將KML文件路由添加到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.

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