2016-07-27 4 views
0

У меня есть MapControl в моем приложении, и я хочу получить координаты точки, записанной пользователем.MapControl get tapped location UWP

<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)

ответ

1

Чтобы получить указанное место в MapControl, мы можем использовать MapControl.MapTapped event. Это событие происходит, когда пользователь забирает или нажимает на него левой кнопкой мыши. Экземпляр MapInputEventArgs содержит данные для этого события. А в MapInputEventArgs мы можем найти место с MapInputEventArgs.Location property. Например:

В 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); 
} 
+0

мы можем получить место для проведения мероприятия? –

0
GeoPoint geoPt = this.mainMap.Layers[0].ScreenToGeoPoint(e.GetPosition(this.mapControl1)); 

вы должны получить в GeoPoint.

+0

Я получил 'Layers [0]' подчеркнутый говоря, что нет никакого способа –

+0

@SvenBorden Это было бы потому что вы использовали скобку «()« вместо скобок »[]», то есть вы пытались вызвать метод вместо ссылки на индекс –

+0

, в нем также говорится, что определение «Слои» и расширение метода «Слои» не принимает первый аргумент типа MapControl можно найти (b tw большое спасибо) –