So zoomen Sie, um in WP7 zu passen Bing Maps-Steuerelement mit LocationCollection?

8

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));

    
Buju 14.01.2011, 17:12
quelle

3 Antworten

8

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:

%Vor%

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 Lakin 14.01.2011, 17:35
quelle
1

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%     
AnthonyWJones 14.01.2011 20:48
quelle
0

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 :

%Vor%

In diesem Beispiel wird die Zoomstufe so eingestellt, dass sie der Höhe von viewRect auf dem Bildschirm entspricht.

    
Love 11.11.2013 17:56
quelle