#c# #bing-maps #windows-phone-8.1
#c# #bing-карты #windows-phone-8.1
Вопрос:
Я пытаюсь изменить область просмотра карты в приложении Windows phone 8.1. Я должен установить центр (чтобы он работал) и координаты нижнего левого / верхнего края, чтобы установить границы карты, но у меня есть только свойство 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
имен, и я не знаю почему.
Спасибо.
Ответ №1:
У вас есть определенный метод для установки границ текущего 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);
Комментарии:
1. Добро пожаловать. Кроме того, не забудьте использовать второй параметр этого метода TrySetViewBoundsAsync, поскольку он может быть действительно полезен для установки дополнения к представлению, которое вы хотите получить. Приветствия.
2. Я только что попробовал это, и это ничего не дает. TrySetViewBoundsAsync возвращает false все время, за исключением случаев, когда MapAnimationKind . Ни один не установлен, но все равно ничего не делает