Я пытаюсь изменить видовое окно карты в приложении Windows Phone 8.1. Я должен установить центр (он работает) и координаты lowerLeft/upperRight, чтобы установить границы карты, но у меня есть только свойство ZoomLevel, которое не может помочь мне точно установить границы карты.
Это то, что у меня есть:
XAML
xmlns:Maps="using:Windows.UI.Xaml.Controls.Maps"
...
<Maps:MapControl x:Name="myMap" MapServiceToken="<token>"/>
КОД
this.myMap.Center = new Geopoint(new BasicGeoposition() { Latitude = 46.85, Longitude = 8.94});
Теперь я хочу установить верхний правый и нижний угол, чтобы установить границы. Я видел эту статью ЗДЕСЬ, но она не работает для меня.. ConvertGeoCoordinateToViewportPoint
не существует с пространством имен Windows.UI.Xaml.Controls.Maps
и я не знаю почему.
Спасибо.
У вас есть специальный метод для установки границ текущего MapControl
который является TrySetViewBoundsAsync
, см.
http://msdn.microsoft.com/en-us/library/windowsphone/develop/dn637065.aspx
И вам может быть интересен класс GeoboundingBox
:
И вот пример (Map - ваш MapControl):
List<BasicGeoposition> basicPositions = new List<BasicGeoposition>();
basicPositions.Add(new BasicGeoposition() { Latitude = 50, Longitude = 3 });
basicPositions.Add(new BasicGeoposition() { Latitude = 55, Longitude = 8 });
basicPositions.Add(new BasicGeoposition() { Latitude = 42, Longitude = 0 });
this.Map.TrySetViewBoundsAsync(GeoboundingBox.TryCompute(basicPositions), null, MapAnimationKind.Default);