地图图钉点击事件

时间:2014-10-27 17:24:00

标签: c# map windows-phone-8.1

我正在构建一个Windows Phone 8.1应用程序,它可以读取文件(其中包含GPS点,每个点包含例如纬度和经度字段)。对于我拥有的每个点,它都会在地图控件上显示一个小图钉图标,基于它与上述文件的协调。有什么办法可以在push pin元素上实现click事件并将其用于例如显示另一个窗口,用户可以在其中更改/显示特定的点/图钉信息(纬度或经度)?这是我用来读取我的文件并在地图上显示的工具,它可以正常工作:

info:notespublic 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);
            }
        }
    }

1 个答案:

答案 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));