我正在构建一个Windows Phone 8.1应用程序,它可以读取文件(其中包含GPS点,每个点包含例如纬度和经度字段)。对于我拥有的每个点,它都会在地图控件上显示一个小图钉图标,基于它与上述文件的协调。有什么办法可以在push pin元素上实现click事件并将其用于例如显示另一个窗口,用户可以在其中更改/显示特定的点/图钉信息(纬度或经度)?这是我用来读取我的文件并在地图上显示的工具,它可以正常工作:
info:notes
是public ObservableCollection<Point> notes;
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
bool exist; // used to check if JSON file exists
// get current position and set the map to point at it
Geoposition position = await App.DataModel.GetCurrentPosition();
await MyMap.TrySetViewAsync(position.Coordinate.Point, 16D);
mySlider.Value = MyMap.ZoomLevel; // set it to 16D from previous line
exist = await App.DataModel.FileExistsAsync();
if (exist == true)
{
// read the file and load points into a list
await App.DataModel.ReadFile();
// put points on the map - little map icon
foreach (var point in App.DataModel.notes)
{
MapIcon myMapIcon = new MapIcon();
myMapIcon.Location = new Geopoint(new BasicGeoposition()
{
Latitude = point.Latitude,
Longitude = point.Longitude,
});
myMapIcon.NormalizedAnchorPoint = new Point(0.5, 1.0);
MyMap.MapElements.Add(myMapIcon);
}
}
}
答案 0 :(得分:3)
不是你已经实施,没有。如果您需要任何类型的最终用户事件,则需要使用MyMap.Children.Add(myXamlControl)
将基于XAML的图钉添加到地图,而不是使用MyMap.MapElements.Add(myMapIcon)
。 MapIcons集成到地图“图像”中,而不是浮动在顶部,不能对任何事物做出反应。
编辑:以下是为XAML控件设置点和锚点的方法:
MyMap.SetLocation(myXamlControl, myPoint);
MyMap.SetNormalizedAnchorPoint(myXamlControl, new Point(0.5, 0.5));