正如标题所示,我在地图上显示用户的当前位置。
Afaik有两种显示当前用户位置的方法:
在代码中:创建一个椭圆,将其设置为MapOverlay
的内容,设置MapOverlay的GeoCoordinate,将此叠加层添加到MapLayer
并将其添加到地图中 - 但我再也无法访问MapOverlay
,因此我无法更改(更新)用户的位置。
有没有办法更新用户位置而无需重新绘制所有地图图层?
XAML和代码:在Windows Phone 7中,我可以向地图添加Pushpin
,让GeoCoordinateWatcher
处理PositionChanged
事件并设置{{1}到当前位置。
如果您不使用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
答案 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
参观了这个。