C# Windows Phone 8-如何在地图上显示当前位置

C# Windows Phone 8-如何在地图上显示当前位置,c#,xaml,windows-phone-8,maps,C#,Xaml,Windows Phone 8,Maps,正如标题所示,我正在努力在地图上显示用户的当前位置 Afaik有两种方式显示当前用户位置: 在代码中:创建一个椭圆,将其设置为MapOverlay的内容,设置MapOverlay的地理坐标,将此覆盖添加到MapLayer并将其添加到地图-但我无法再访问MapOverlay,因此我无法更改(更新)用户的位置。 有没有一种方法可以更新用户位置而不必重新绘制所有地图图层? XAML和代码:在Windows Phone 7中,我可以在地图上添加一个图钉,让地理坐标跟踪程序处理位置更改事件,并将MyLoc

正如标题所示,我正在努力在地图上显示用户的当前位置

Afaik有两种方式显示当前用户位置:

  • 在代码中:创建一个椭圆,将其设置为MapOverlay的内容,设置MapOverlay的地理坐标,将此覆盖添加到MapLayer并将其添加到地图-但我无法再访问MapOverlay,因此我无法更改(更新)用户的位置。 有没有一种方法可以更新用户位置而不必重新绘制所有地图图层?

  • XAML和代码:在Windows Phone 7中,我可以在地图上添加一个图钉,让地理坐标跟踪程序处理位置更改事件,并将MyLocation.Location设置为当前位置

  • 如果不使用Windows Phone Toolkit,似乎无法将图钉添加到地图中。因此,我尝试从Windows Phone工具箱中添加
    图钉

    xmlns:maps=“clr命名空间:Microsoft.Phone.maps.Controls;assembly=Microsoft.Phone.maps”
    xmlns:maptk=“clr命名空间:Microsoft.Phone.Maps.Toolkit;assembly=Microsoft.Phone.Controls.Toolkit”
    
    但是我无法访问MapPage.xaml中的MyLocation图钉(调试器说它是
    null

    我可以用
    maptk:Pushpin
    显示和更新地图上的当前用户位置吗?

    在Windows Phone 7中,我可以简单地为图钉创建一个XAML布局,它将保存用户位置,如下所示:

    xmlns:maps=“clr命名空间:Microsoft.Phone.Controls.maps;assembly=Microsoft.Phone.Controls.maps”
    
    然后,我可以添加一个
    地理坐标记录器
    ,它将侦听
    位置更改
    事件,并更改MyLocation图钉的
    位置

    void GeoCoordinateWatcher\u位置已更改(对象发送器,地理位置更改Deventargs e)
    {
    MyLocation.Location=e.Position.Location;
    }
    
    试试这个方法

    Pushpin pushpin = new Pushpin();
    
    pushpin.Background = new SolidColorBrush(Colors.Red);
    
    pushpin.Location = new GeoCoordinate(Latitude, Longitude);
    
    pushpin.Content = "SampleString";
    
    pushpin.Width = 25;
    
    map1.Children.Add(pushpin);//this is way add pushpin to map
    
    我参观过这个


    如果地理坐标记录器触发PositionChanged事件,如何更新位置?