如何获取用户点击UWP中的地图对象的坐标?

时间:2018-04-14 22:42:11

标签: c# xaml uwp gps

我正在UWP中创建一个应用程序,它大量使用内置的MapControl对象来显示图标和图像。我在应用程序中的下一个功能将需要提取用户在地图上单击的位置的gps位置以编辑地图图标的位置。因此,用户使用他们的鼠标(或手指)在某个位置点击地图,我需要一个点击事件来触发,它知道点击的地理位置。我不应该研究哪种API。

我知道它必须是可行的,包含windows 10的地图应用程序确定您点击的任何位置的地址。我如何实现类似的功能?

模拟代码......

XAML:

private void MapUserTapped(MapControl sender, MapInputEventArgs args)
{
    if (!edit_mode) { return; }

    //no idea how to do this part, are there any api's for this?
    Geoposition geopos_edit_position = map_main.TapLocation;

    EditMapIconPosition(geopos_edit_position);
}

private void EditMapIconPosition(Geoposition geopos_edit_position)
{
    ...
}

C#:

e

2 个答案:

答案 0 :(得分:0)

尝试使用Cursor.Position获取用户在MapUserTapped事件中点击的位置。

答案 1 :(得分:0)

好吧我明白了。似乎我只需要对MapTapped事件及其提供的参数进行一些挖掘。代码非常简单,如下所示。

private void MapUserTapped(MapControl sender, MapInputEventArgs args)
{
    if (!edit_mode) { return; }

    //to get a basicgeoposition of wherever the user clicks on the map
    BasicGeoposition basgeo_edit_position = args.Location.Position;

    //just checking to make sure it works
    Debug.WriteLine("tapped - lat: " + basgeo_edit_position.Latitude.ToString() + "  lon: " + basgeo_edit_position.Longitude.ToString());

    EditMapIconPosition(basgeo_edit_position);
}