2016-06-30 25 views
0

Ich entwickle eine UWP-App und nutze die MapControl. Ich füge auch Elemente wie MapIcon und MapPolyLine zum MapControl, aber ich habe Probleme mit der MapPolyLine:UWP MapControl: MapPolyLine verzerrt/fehlerhaft

Irgendwann, wenn eine solche Linienzug Zugabe erscheint es völlig verzerrt/malformed: Malformed PolyLine

Wenn der Wechsel Zoomlevel der MapControl es geht oft zurück auf die beabsichtigte Polylinie, aber es würde wieder falsch erscheinen, wenn Sie die vorherige Zoomstufe verwenden. Wellformed PolyLine

(In den geben Screenshots verwendet die MapControl eine OSM-Schicht, aber es passiert auch mit der Standard-Bing-Karten-Layer-; beide Screenshots zeigen genau die gleiche MapPolyLine mit unterschiedlichen Perspektiven)

+0

Leider bleibt dieses Problem bestehen, jemand eine Idee? –

Antwort

1

Sieht aus wie Vielleicht speichern Sie auch die Höhe? Ich denke, die Map Control beim Zoomen zeigt den Punkt im 3D-Raum.

Versuchen Sie folgendes:

// We are not Plotting Alititue to keep map 'flat' [ Also Emulator sets Altitude = 0 ] 

BasicGeoposition _newPlotPos = new BasicGeoposition() { 
    Latitude = position.Latitude, 
    Longitude = position.Longitude, 
    Altitude = 0  
}; 
+0

Entschuldigung für meine späte Antwort. Ziemlich gute Idee, ich habe tatsächlich die Höhe gespeichert - leider bleibt das Problem bei einer künstlichen Höhe von 0 bestehen. Irgendwelche weiteren Ideen? –

+0

Vielleicht vermisse ich das Problem zu verstehen, wie von Screenshots Im nicht wirklich sehen, wo die "missgebildeten" Zeilen sind? Sind das nur die, die vom Bildschirm verschwinden? –

0

Vielleicht verstehen im vermissen die Frage, wie sich aus Bildschirme Schüsse Im nicht wirklich sehen, wo die ‚malformed‘ Linien sind? Sind das nur die, die vom Bildschirm verschwinden?

Wenn es Linien sind, die zu einem entfernten Punkt ablaufen, dann könnte es dasselbe sein, das ich aus zwei Gründen hatte. Erstens, wenn Sie den Emulator verwenden, ist manchmal die erste GPS-Position, wenn sie gestartet wird, in Seattle irgendwo weit weg, und das kann der erste Punkt sein, den Sie bekommen, wenn Sie beispielsweise 'local geo' Daten aus einer Datenbank ziehen. und der erste Punkt ist Seattle, dann ist der nächste Punkt Ihre lokalen Daten, Sie bekommen eine Linie nach Seattle. Zweitens arbeitet MapPloyLine Punkt für Punkt in Listenform, so dass jeder Eintrag in der Trickzeile von hier -> nach hier geht. Wenn also Ihre Positionsdaten "Lücken" aufweisen, werden Sie möglicherweise riesige Linien sehen, die zu merkwürdigen, aber korrekten Positionen führen. Ich protokolliere Daten von GPS zu einer Datenbank, und wenn die Protokollierung aufhört, inkrementiere ich ein 'RecordingCount' in den Daten zu repräsentieren und neue 'Segment'. Ich verwende auch einen FIFO-Puffer, um meine Polylinien zu plotten, überspringe den ersten Plotpunkt (es ist der Beginn eines neuen Segments) und gehe dann von diesem Startpunkt zum nächsten ... zum nächsten ... zum nächsten.

+0

Ja, das Problem sind die Zeilen auf dem Bildschirm. Beide Screenshots, die ich zur Verfügung gestellt habe, zeigen exakt die gleichen Polylinien mit unterschiedlichen Zoomstufen, aber auf der oberen Zeile erscheinen diese Linien plötzlich auf dem Bildschirm. Die Daten für diese Linien stammen von einer serverseitigen Routenberechnung (nicht GPS). Außerdem: Diese Screenshots stammen von einem tatsächlichen Gerät (kein Emulator). –