Карта Bing на Windows Phone 8.1

#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 класс:

http://msdn.microsoft.com/en-us/library/windowsphone/develop/windows.devices.geolocation.geoboundingbox.aspx

И вот пример (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 . Ни один не установлен, но все равно ничего не делает