我对Windows 10 UWP中的新地图控件有疑问。我需要添加一个包含一组多边形的地图图层,每个多边形都必须保存一些绑定到它的数据,我想知道如何处理多边形上的点击事件以显示与其相关的详细信息。但是没有属性DataContext,并且在MapPolygon类中没有事件Tapped。我们怎样才能实现它?
答案 0 :(得分:1)
您可以在数据模板中定义多边形,并且可以将多边形的路径绑定到BasicGeoposition列表。对于tapped事件,当用户点击Polygon时,您可以从mapElementClick事件获取地理位置。
我尝试使用以下代码从多边形中获取tap事件,它似乎正常工作
1)创建多边形
QTableWidget::text()
2)设置多边形的路径
var polygon = new MapPolygon();
polygon.FillColor = Color.FromArgb(80, 255, 0, 0);
polygon.StrokeColor = Colors.Red;
polygon.StrokeThickness = 15;
3)将多边形添加到MapElemetns
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);
4)设置地图中心和缩放级别
myMap.MapElements.Add(polygon);
5)添加MapElementClick事件以处理多边形
上的点击myMap.Center = new Geopoint((new BasicGeoposition { Latitude =
25.251231, Longitude = 55.305957 }));
myMap.ZoomLevel = 18;