如果我們需要在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)
};
效果如圖
?
源碼:http://files.cnblogs.com/salam/SlBindMapDemo.rar