Windows Phone 8 – 如何在地图上显示当前位置
正如标题所示,我正在努力在地图上显示用户的当前位置。
Afaik有两种显示当前用户位置的方法:
-
在代码中:创建一个椭圆,将其设置为
MapOverlay
内容,设置MapOverlay
的GeoCoordinate,将此叠加层添加到MapLayer
并将其添加到地图中 – 但我无法再访问MapOverlay
,因此我无法更改(更新)用户的位置。 有没有办法更新用户位置而不必重绘所有地图图层? -
XAML和代码:在Windows Phone 7中,我能够将一个
Pushpin
添加到地图中,让GeoCoordinateWatcher
处理PositionChanged
事件并将MyLocation.Location
设置为当前位置。
如果您不使用Windows Phone Toolkit,似乎无法将Pushpin
添加到地图中。 所以我尝试从Windows Phone Toolkit添加Pushpin
:
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"
但我无法访问MapPage.xaml中的MyLocation图钉(调试器表示它为null
)。
我可以使用maptk:Pushpin
在地图上显示和更新当前用户位置吗?
在Windows Phone 7中,我可以简单地为图钉创建一个XAML布局,该布局将保存用户位置,如下所示:
xmlns:maps="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps"
然后我可以添加一个GeoCoordinateWatcher
来监听PositionChanged
事件并更改MyLocation图钉的Location
:
void GeoCoordinateWatcher_PositionChanged ( object sender, GeoPositionChangedEventArgs 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
参观了这个。