c# - secretos - Windows Phone 8-Cómo mostrar la posición actual en el mapa
windows 10 mobile trucos y secretos (1)
prueba de esta manera,
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
He visitado este.
Como el título sugiere, estoy luchando con la visualización de la ubicación actual del usuario en el mapa.
Afaik tiene dos formas de mostrar la ubicación actual del usuario:
En Código: crea una elipse,
MapOverlaycomo contenido de unMapOverlay, configura el GeoCoordinate de MapOverlay, agrega esta superposición a unMapLayeryMapLayeral mapa, pero ya no puedo acceder aMapOverlayy, por lo tanto, no puedo cambiar (actualizar) la posición del usuario. ¿Hay alguna manera de actualizar la posición del usuario sin tener que volver a dibujar todas las capas del mapa?XAML y código: en Windows Phone 7 pude agregar una
Pushpinal mapa y dejar queGeoCoordinateWatchermaneje el eventoPositionChangedy establecerMyLocation.Locationen la ubicación actual.
Parece que no hay forma de agregar un Pushpin al mapa si no usa Windows Phone Toolkit. Así que traté de agregar Pushpin desde Windows Phone Toolkit:
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>
Pero no puedo acceder a la chinche MyLocation en mi MapPage.xaml (el depurador dice que es null ).
¿Puedo mostrar y actualizar la posición actual del usuario en el mapa con maptk:Pushpin ?
En Windows Phone 7 podría simplemente crear un diseño XAML para la chincheta que mantendría la ubicación del usuario así:
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>
entonces podría agregar un GeoCoordinateWatcher que escucharía el evento PositionChanged y cambiaría la Location de la chinche MyLocation:
void GeoCoordinateWatcher_PositionChanged ( object sender, GeoPositionChangedEventArgs<GeoCoordinate> e )
{
MyLocation.Location = e.Position.Location;
}