У меня вопрос о новом управлении картой в Windows 10 UWP. Мне нужно добавить слой карты, который будет содержать множество полигонов, каждый многоугольник должен содержать некоторые данные, привязанные к нему, и я хочу знать, как обрабатывать событие перехода на полигоне, чтобы отображать связанные с ним детали. Но нет свойства DataContext, и никакое событие не используется в классе MapPolygon. как мы можем достичь этого?Нет свойства DataContext и Tapped в New Map Control - Windows 10
1
A
ответ
1
Вы можете определить Polygon в шаблоне данных, и вы можете связать Pathgog с полигоном в списке BasicGeoposition. Для задействованного события вы можете получить геолокацию из события mapElementClick, когда пользователь нажимает на Polygon.
Я попытался следующий код, чтобы получить событие водопроводную от полигона и, кажется, работает
1) Создание полигона
var polygon = new MapPolygon();
polygon.FillColor = Color.FromArgb(80, 255, 0, 0);
polygon.StrokeColor = Colors.Red;
polygon.StrokeThickness = 15;
2) Установка пути для полигона
List<BasicGeoposition> positions = new List<BasicGeoposition>();
positions.Add(new BasicGeoposition { Latitude = 25.251231, Longitude = 55.305957 });
positions.Add(new BasicGeoposition { Latitude = 25.251105, Longitude = 55.306445 });
positions.Add(new BasicGeoposition { Latitude = 25.249977, Longitude = 55.306091 });
positions.Add(new BasicGeoposition { Latitude = 25.250392, Longitude = 55.304441 });
positions.Add(new BasicGeoposition { Latitude = 25.250748, Longitude = 55.304661 });
positions.Add(new BasicGeoposition { Latitude = 25.250481, Longitude = 55.305726 });
polygon.Path = new Geopath(positions);
3) Добавить многоугольник в MapElemetns
myMap.MapElements.Add(polygon);
4) Установите центр карты и уровень масштабирования
myMap.Center = new Geopoint((new BasicGeoposition { Latitude =
25.251231, Longitude = 55.305957 }));
myMap.ZoomLevel = 18;
5) Добавить событие MapElementClick для обработки крана на полигоне
myMap.MapElementClick += MyMap_MapElementClick;
private void MyMap_MapElementClick(MapControl sender, MapElementClickEventArgs args)
{
// add your code to position the canvas (pop up) and display it here
}
Вы уже пытались последовать этому примеру ? http://dotnetbyexample.blogspot.be/2015/08/windows-10-maps-part-3-querying-map.html – Depechie