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

时间:2013-09-24 09:23:33

标签: c# xaml windows-phone-8 maps

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

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

  1. 在代码中:创建一个椭圆,将其设置为MapOverlay的内容,设置MapOverlay的GeoCoordinate,将此叠加层添加到MapLayer并将其添加到地图中 - 但我再也无法访问MapOverlay,因此我无法更改(更新)用户的位置。 有没有办法更新用户位置而无需重新绘制所有地图图层?

  2. XAML和代码:在Windows Phone 7中,我可以向地图添加Pushpin,让GeoCoordinateWatcher处理PositionChanged事件并设置{{1}到当前位置。

  3. 如果您不使用Windows Phone Toolkit,似乎无法向地图添加MyLocation.Location。所以我尝试从Windows Phone Toolkit中添加Pushpin

    Pushpin

    但是我无法访问MapPage.xaml中的MyLocation图钉(调试器说它是xmlns:maps="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps" xmlns:maptk="clr-namespace:Microsoft.Phone.Maps.Toolkit;assembly=Microsoft.Phone.Controls.Toolkit" <maptk:Pushpin x:Name="MyLocation"> <maptk:Pushpin.Template> <ControlTemplate> <Ellipse Width="15" Height="15" Margin="0" Fill="SteelBlue" StrokeThickness="1" Stroke="Black"/> </ControlTemplate> </maptk:Pushpin.Template> </maptk:Pushpin> )。

    我可以使用null在地图上显示和更新当前用户的位置吗?

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

    maptk:Pushpin

    然后我可以添加xmlns:maps="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps" <maps:Map Grid.Row="2" x:Name="Map" > <maps:Pushpin x:Name="MyLocation" > <maps:Pushpin.Template> <ControlTemplate> <Ellipse Width="12" Height="12" Margin="0" Fill="SteelBlue" StrokeThickness="1" Stroke="Black" /> </ControlTemplate> </maps:Pushpin.Template> </maps:Pushpin> </maps:Map> 来监听GeoCoordinateWatcher事件并更改MyLocation图钉的PositionChanged

    Location

1 个答案:

答案 0 :(得分:0)

试试这个,

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

参观了这个。

http://social.msdn.microsoft.com/Forums/wpapps/en-US/3d95b0c5-5f48-4918-b761-f8302fa090c2/updatehow-to-show-pushpin-on-microsoftphonemapscontrolsmap#bbb42943-663b-41f1-a920-f7368f2fee70