Seit langer Zeit versuche ich, eine Polylinie für Kreuzplattenform arbeiten zu machen. Ich habe es getan und es funktioniert gut, ich folgte der Map Control Tutorial zuerst, und dann Highlight a Route on a Map Tutorial.Xamarin Forms - Markieren Sie Route für WinPhone 8.1 Teil
Ich aktualisiere den Code, um es neu zu laden, wenn eine Änderungen kommt, aber ich bekomme ein Problem und ich konnte es nicht herausfinden ... Es funktioniert für Android & iOS.
polyline.Path = neuer Geopath (Koordinaten); wirft Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
Das Problem ist, dass meine beiden anderen Renderer (Android & iOS) funktioniert .. Vielleicht ist etwas nicht möglich, weil ich mit WinPhone8.1 arbeiten im Gegensatz zu dem Tutorial, das UWP ist.
public class CustomMapRenderer : MapRenderer
{
MapControl nativeMap;
CustomMap formsMap;
protected override void OnElementChanged(ElementChangedEventArgs<Map> e)
{
base.OnElementChanged(e);
if (e.OldElement != null)
{
nativeMap = Control as MapControl;
}
if (e.NewElement != null)
{
formsMap = (CustomMap)e.NewElement;
nativeMap = Control as MapControl;
UpdatePolyLine();
}
}
protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (this.Element == null || this.Control == null)
return;
if (e.PropertyName == CustomMap.RouteCoordinatesProperty.PropertyName)
{
UpdatePolyLine();
}
}
private void UpdatePolyLine()
{
if (nativeMap != null)
{
var coordinates = new List<BasicGeoposition>();
foreach (var position in formsMap.RouteCoordinates)
{
coordinates.Add(new BasicGeoposition() { Latitude = position.Latitude, Longitude = position.Longitude });
}
var polyline = new MapPolyline();
polyline.StrokeColor = Color.FromArgb(128, 255, 0, 0);
polyline.StrokeThickness = 5;
polyline.Path = new Geopath(coordinates);
nativeMap.MapElements.Add(polyline);
}
}
}
Ich habe auch gelesen, dass ein Schlüssel benötigt wird, so vielleicht ich nicht diese Schlüssel verwendet in einer guten Art und Weise .. Ich habe versucht, mit UWP Public Key und WinPhone8.X und früher Key, aber ohne Erfolg auch ..
Hat jemand eine Idee? Dieser Teil ein wirklich großes Problem in meiner App ..
Vielen Dank im Voraus!