如果我们需要在Bing Maps中加入一个小图钉标记,该如何实现了?
Bing Maps控件已经为我们提供了这个功能,在Microsoft.Maps.MapControl名称空间下提供了实现图钉应用的图钉层Pushpin类用该类来实现普通标识
在Xaml中添加<map:Pushpin Location="33.845881352,105.165628188471"/>这样就简单地实现了一个图钉标识。但我们平时想用图片或其它的标识,那就必须在Xaml中加
<map:MapLayer x:Name="myMapLayer"></map:MapLayer>标记
下面是一个图片的标识
/// <summary>
/// 首先定义Image对象的实例用于显示图片
/// 定义PositionOrigin的实例用于
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnMapLayer_Click(object sender, RoutedEventArgs e)
{
Image image = new Image();
image.Source = new BitmapImage(new Uri("images/China.jpg", UriKind.Relative));
image.Stretch = Stretch.None;
//图片域
image.ImageFailed += image_imageFiled;
PositionOrigin position = new PositionOrigin(1.0, 1.0);
//将图片按位置33.845881352, 105.165628188471显示在地图中myMapLayer是我们在Xaml定义的一个映射层。
this.myMapLayer.AddChild(image, new Location(33.845881352, 105.165628188471), position);
}
//异常事件
private void image_imageFiled(object sender, ExceptionRoutedEventArgs e)
{
}
效果如图
Bing Maps Silverlight Control支持用户自定义绘制多边形(Polygon)图形,包括三角形、四边形(矩形、菱形)、以及其他更多多边形的图形绘制。多边形说简单点就是一个由多条边组成的有一定规则的图形,比如三角形就是由三条边组成,我们要在地图上绘制三角形需要知道三个顶点的坐标值(精度和纬度)。
下面是一个三角形的标识
//MapPolygon是用来绘制多边形的类
MapPolygon polygon = new MapPolygon();
//给多边形填充颜色
polygon.Fill = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Red);
polygon.StrokeThickness = 5;
polygon.Opacity = 0.7;
polygon.Locations = new LocationCollection() {
//三角形的第一个顶点坐标
new Location(34.9294740237661,107.506492025863),
//三角形的第二个顶点坐标
new Location(37.7814222409819, 105.979148275863),
//三角形的第三个顶点坐标
new Location(40.2865067209496, 109.219382650863) };
this.myMap.Children.Add(polygon);
注:如果是四边形的话,就是
polygon.Locations = new LocationCollection() {
//四边形的第一个顶点坐标
new Location(34.9294740237661,107.506492025863),
//四边形的第二个顶点坐标
new Location(37.7814222409819, 105.979148275863),
//四边形的第三个顶点坐标
new Location(40.2865067209496, 109.219382650863)
),
//四边形的第四个顶点坐标
new Location(43.2865067209496, 44.219382650863)
};
效果如图