Wie kann ich das Steuerelement Microsoft.Phone.Controls.Maps.Map auf die korrekte Zoomstufe von Windows Phone 7 zoomen?
Ich habe eine LocationCollection von GeoCoordinates und ich habe das Center selbst berechnet, aber wie berechne ich nun die richtige Zoomstufe für die LocationCollection?
P.S. Gibt es eine Out-of-the-Box-Methode, um den Mittelpunkt von GeoCoordinates zu berechnen, damit ich ihn nicht selbst berechnen muss?
BEARBEITEN: Ich habe eine andere gute Lösung gefunden: Ссылка
map.SetView(LocationRect.CreateLocationRect(points));
Sie können den folgenden Code verwenden, um die LocationRect
zu berechnen, die eine Menge von Punkten begrenzt, und dann die LocationRect
an die Methode SetView()
im Kartensteuerelement zu übergeben:
Das Map-Steuerelement übernimmt die Animation von der aktuellen Position zum neuen Speicherort.
HINWEIS: Sie benötigen eine using
-Anweisung für System.Linq
, um die Methoden Min
und Max
zu erhalten.
Derek hat bereits die Antwort gegeben, also sollten Sie seine akzeptieren, ich biete einen alternativen Code für Fälle an, in denen es viele Punkte gibt. Dieser Ansatz iteriert die Punktesammlung nur einmal statt 4 Mal, aber es ist nicht so ästhetisch ansprechend.
%Vor% Wie von den anderen Antworten vorgeschlagen, verwende ich SetView
mit einem LocationRect
.
Allerdings habe ich festgestellt, dass es immer zu einem niedrigen Zoomlevel führt, da nur ganzzahlige Werte verwendet wurden. Wenn beispielsweise die perfekte Zoomstufe 5,5 wäre, würden Sie 5,0 erhalten. Um eine korrekte Anpassung zu erhalten, berechne ich eine neue Zoomstufe von TargetZoomLevel
und TargetBoundingRectangle
:
In diesem Beispiel wird die Zoomstufe so eingestellt, dass sie der Höhe von viewRect
auf dem Bildschirm entspricht.
Tags und Links windows-phone-7 location zoom bing-maps