0

我的应用程序中有一个 MapControl,我想检索用户录制的点的坐标。

<Maps:MapControl    Grid.Row="0" 
                    ColorScheme="Light" 
                    Margin="10" 
                    x:Name="mainMap" 
                    HorizontalAlignment="Stretch"
                    VerticalAlignment="Stretch"
                    Tapped="mainMap_Tapped"
                    MapElementClick="mainMap_MapElementClick"
                />

但我不知道如何从事件中得到这个private void mainMap_Tapped(object sender, TappedRoutedEventArgs e)

4

2 回答 2

3

要在 MapControl 中获取被点击的位置,我们可以使用MapControl.MapTapped 事件。当用户点击MapControl或用鼠标左键单击它时,会发生此事件。MapInputEventArgs的一个实例为此事件提供数据。在中MapInputEventArgs,我们可以通过MapInputEventArgs.Location 属性获取位置。例如:

在 XAML 中:

<Maps:MapControl x:Name="mainMap"
                 Grid.Row="0"
                 Margin="10"
                 HorizontalAlignment="Stretch"
                 VerticalAlignment="Stretch"
                 ColorScheme="Light"
                 MapTapped="mainMap_MapTapped"
                 MapElementClick="mainMap_MapElementClick" />

在代码隐藏中:

private void mainMap_MapTapped(Windows.UI.Xaml.Controls.Maps.MapControl sender, Windows.UI.Xaml.Controls.Maps.MapInputEventArgs args)
{
    var tappedGeoPosition = args.Location.Position;
    string status = "MapTapped at \nLatitude:" + tappedGeoPosition.Latitude + "\nLongitude: " + tappedGeoPosition.Longitude;
    rootPage.NotifyUser( status, NotifyType.StatusMessage);
}
于 2016-07-29T09:29:52.467 回答
0
GeoPoint geoPt = this.mainMap.Layers[0].ScreenToGeoPoint(e.GetPosition(this.mapControl1)); 

应该给你地理点。

于 2016-07-27T15:45:54.200 回答