首次使用silverlight4 的BingMap
首先,要在引用中添加Microsoft.Maps.Mapcontrol以及Microsoft.Maps.Mapcontrol.Common这两个引用,这两个引用的DLL的下载地址:http://cn.bing.com/toolbox/blogs/maps/archive/2009/11/09/bing-maps-silverlight-control-1-0-released.aspx
在前台的xaml中的代码如下:
<UserControl x:Class="WebFdaShow.BinMap"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:m="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl"
>
<Grid x:Name="LayoutRoot" Background="White">
<m:Map x:Name="myMap" CredentialsProvider="Your Bing Maps Key" ></m:Map>
</Grid>
</UserControl>
其实这样地图也就出来了
如果你想看的是中文的话
在想应的CS文件上
public MainPage()
{
InitializeComponent();
UriBuilder tileSourceUri = new UriBuilder("http://r2.tiles.ditu.live.com/tiles/r{quadkey}.png?g=41"); //初始化一个Uri对象,指向中文必应地图的Tile系统
MapTileLayer tileLayer = new MapTileLayer(); //初始化一个图层
LocationRectTileSource tileSource = new LocationRectTileSource(
tileSourceUri.Uri.ToString(),
new LocationRect(new Location(60, 60), new Location(13, 140)),
new Range<double>(1, 16)); // 初始化LocationRectTileSource对象,设定显示范围及放大级别
tileLayer.TileSources.Add(tileSource); //指定图层的TileSource
tileLayer.Opacity = 0.9;
myMap.Children.Add(tileLayer); //将图层叠加在地图上
}
如希望在地图上描点的话可以加一个下面的函数
private void ShowMarker(double lati, double longi)
{
MapLayer myLayer = new MapLayer();
myMap.Children.Add(myLayer);
Ellipse point = new Ellipse();//形状
point.Width = 15;
point.Height = 15;
point.Fill = new SolidColorBrush(Colors.Orange);// 颜色
point.Opacity = 0.65;//设置不透明度
Location location = new Location(lati, longi);
MapLayer.SetPosition(point, location);
MapLayer.SetPositionOrigin(point, PositionOrigin.Center);
myLayer.Children.Add(point);
}
在BingMap 上的经纬度和现实中的经纬度是一样,所以不用担心经纬度的转换
当你传入一组轨迹点的经纬度到ShowMarker函数里之后
你就可以展示出一个轨迹图
其实这篇 我在几天就写好了
只是一直觉得写得不好
少了点什么
因为我自己实际做的项目 是把飞机飞行中经过的轨迹点给描出来
但是我有两条轨迹
第一条轨迹:点比较多看起来就是一条直线(400多个点)
但是另一个条轨迹:它只是把飞机在飞行过程中的一些飞行点给记录下来比如引擎启动、起飞、滑出、滑入、降落、引擎关闭等总的只有将近20个点
这样两个轨迹的颜色不一样看起来实际是不错的
但是由于计划轨迹的点比较稀疏 ,看起来就感觉少了点什么
所以下一次
我想要把点少的轨迹的点按顺序亮点连起来
这样地图上看起来才能够比较清晰地对比两张图的差别