2011-08-01 10 views
5

¿Cómo agrega el marcador "usted está aquí" al control de Bing Maps? En el teléfono, esto se representa como un círculo dentro de un cuadrado y luego hay un círculo exterior que representa la precisión de la ubicación.
Parece que podría hacerlo con un marcador y una polgon pero espero que hay un/una mejor manera más fácilCómo agregar el marcador "usted está aquí" a Bing Maps Control

Respuesta

4

Puede utilizar la clase GeoCoordinateWatcher, que da a su ubicación actual, y luego añadir un marcador sencillo . No creo que la chincheta sea una mala elección y/o difícil de usar.


GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(); 

GeoCoordinate loc = watcher.Position.Location; 

if (loc.IsUnknown == true) 
{ 
    // Cannot retrieve the GPS position 
    return; 
} 

MyBingMap.SetView(loc, 17); 

MapLayer pushPinLayer = new MapLayer(); 

MyBingMap.Children.Add(pushPinLayer); 

Pushpin p = new Pushpin(); 

p.Content = "YOU ARE HERE"; 
p.Location = loc; 

pushPinLayer.AddChild(p, loc, PositionOrigin.BottomLeft);  
2

Ha hecho dos preguntas y Tuco le ha dado una buena respuesta a la primera: cómo agregar la chincheta. Aquí está la respuesta a su segunda pregunta: cómo darle estilo.

Para que la chincheta parezca un punto amarillo en un diamante negro con un nimbo blanco, debe definir este estilo y aplicarlo a la chincheta. También podría decirte cómo diseñar números blancos centrados en un círculo negro con un nimbo blanco, pero luego tendría que matarte.

xmlns:m="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps" 

<Style x:Key="CurrentLocationPushpinStyle" TargetType="m:Pushpin"> 
    <Setter Property="BorderBrush" Value="#FFF4F4F5" /> 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate> 
     <Grid> 
      <Rectangle Fill="Black" Height="25" Stroke="White" StrokeThickness="2" Width="25" RenderTransformOrigin="0.5,0.5"> 
      <Rectangle.RenderTransform> 
       <CompositeTransform Rotation="45" TranslateX="-10" TranslateY="11"/> 
      </Rectangle.RenderTransform> 
      </Rectangle> 
      <Ellipse Fill="Yellow" Height="11" Stroke="Yellow" Width="11"> 
      <Ellipse.RenderTransform> 
       <CompositeTransform TranslateX="-10" TranslateY="11"/> 
      </Ellipse.RenderTransform> 
      </Ellipse> 
     </Grid> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 

A yellow dot is soooo el año pasado. Mango usa un punto azul.

+0

Gracias, creo que usa un punto que es del color de su tema. La mina es actualmente verde –

+0

El punto verde es Mango beta 2. Ahora tengo el punto verde pero uso el tema azul. –

Cuestiones relacionadas