学习使用Bing Maps Silverlight Control(二):基本控制

3 基本控制

1、控制地图加载模式。Bing Maps的图层主要有普通道路(RoadMode)和卫星图(AerialMode),其中卫星图还可以选择是否加载标记(Labels)信息。地图控件显示模式的变更示例代码如下:

//1.普通地图模式
this.map.Mode = new RoadMode();

//2.卫星图模式类有两个构造函数
// 其一是不传任何参数进去,直接显示卫星图
// public AerialMode() : this(false);
// 其二是传入一个布尔值,表示是否加载标记信息层
// public AerialMode(bool labels);

//卫星地图模式(不带标记)
this.map.Mode = new AerialMode(false);

//卫星地图模式(带标记)
this.map.Mode = new AerialMode(true);

//我们还可以使用这种方法进行初始化卫星图模式
//卫星地图模式(带标记自动隐藏)
this.map.Mode = new AerialMode() { Labels = true, FadingLabels = true };

将其放到相应需要变更地图模式的处理代码中,即可达到相应效果。

附加:Bing Maps目前还有两个处于测试中的扩展模式(Extended Modes):鸟瞰45°航拍模式(BirdseyeMode)和街景模式(StreetsideMode),只有少部分城市可以看到效果。首先需要下载 Microsoft.Maps.MapControl.ExtendedModes.dll,但是在官方的下载处(http://connect.microsoft.com/bingmaps)没有找到这个下载,我是从 http://www.zhaodll.com/dll/m/201207/162464.html 这里下到的一个,汗。。就是没有帮助和任何提示了。地图控件默认的导航工具条是不会直接显示出这两个模式的选择的,需要使用代码添加:

//将鸟瞰图模式添加到地图导航菜单
BirdseyeMode.AddModeToNavigationBar(map);
//将街道模式添加到地图导航菜单
StreetsideMode.AddModeToNavigationBar(map);

效果:

3.1

2、控制地图的中心坐标和缩放级别。Bing Maps的定位是通过经度(Longitude)和纬度(Latitude)来进行的,地图的缩放级别则是通过其ZoomLevel进行控制。我们可以通过一个SetView的方法一起进行调整:

private void btn_MapGo_Click(object sender, RoutedEventArgs e)
{
    double latitude, longitude, zoomlevel;

    //获取输入值转换为double类型
    double.TryParse(tb_Longitude.Text, out latitude);
    double.TryParse(tb_Latitude.Text, out longitude);
    double.TryParse(tb_ZoomLevel.Text, out zoomlevel);

    //将地图视图设置为该缩放位置,ZoomLevel范围:1~19,超出范围不会报错,会停留在边界。
    this.map.SetView(new Location(latitude, longitude), zoomlevel);
}

如果只想调整缩放可以通过单独设置控件的ZoomLevel进行变更:

this.map.ZoomLevel = zoomLevel;

简单的控制测试:

3.2

(以上内容部分参考自:http://www.cnblogs.com/beniao/archive/2010/01/13/1646446.html,请访问原博客查看更多。)


输了你,赢了世界又如何...
原文地址:https://www.cnblogs.com/xwgli/p/3006127.html