Как добавить маркер «вы здесь» в элемент управления Bing Maps? На телефоне это представлено в виде круга внутри квадрата, а затем есть внешний круг, представляющий точность определения местоположения.
Похоже, вы можете сделать это с помощью канцелярской кнопки и полигона, но я надеюсь, что есть более простой/ лучший способ
Как добавить маркер «Вы здесь» в Bing Maps Control
Ответы (2)
Вы можете использовать класс GeoCoordinateWatcher, который дает ваше текущее местоположение, а затем добавить простую канцелярскую кнопку. Я не думаю, что канцелярская кнопка — плохой выбор и/или сложный в использовании.
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);
person
Tuco
schedule
01.08.2011
Вы задали два вопроса, и Туко дал вам хороший ответ на первый: как добавить канцелярскую кнопку. Вот ответ на ваш второй вопрос: как его стилизовать.
Чтобы канцелярская кнопка выглядела как желтая точка в черном ромбе с белым нимбом, необходимо определить этот стиль и применить его к канцелярской кнопке. Я мог бы также рассказать вам, как стилизовать белые числа с центром в черном круге с белым нимбом, но тогда мне пришлось бы вас убить.
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>
Желтая точка — это оооочень прошлогодняя. Манго использует синюю точку.
person
Peter Wone
schedule
02.08.2011
Спасибо, я думаю, что здесь используется точка цвета вашей темы, моя в настоящее время зеленая.
- person David Hayes; 03.08.2011
Зеленая точка — это бета-версия Mango 2. Сейчас у меня есть зеленая точка, но я использую синюю тему.
- person Peter Wone; 05.08.2011