上一篇文章最后提出了一个问题:用户如何通过编程来控制地图?
利用Bing Maps Silverlight Control将会很容易办到,本文主要介绍如何对地图的一些常用控制 *** 作,包括地图加载模式、根据精度和纬度定位、变焦程度等。
本文感谢原创作者:http://www.cnblogs.com/beniao/archive/2009/11/28/1612418.HTML
在文章《Bing Map学习系列】(2)——如何通过Bing Maps Silverlight Control显示地图》中介绍了地图加载模式,可以给地图控件设置一种模式的地图加载模式,呈现数据的时候根据制定的模式加载地图。其实我们也可以通过程序动态的来改变地图的加载呈现模式,方式和设置模式加载模式是一样的,都是通过地图控件(Bing Maps Silverlight Control)的Mode属性来控制。
比如在程序中实现上篇文章中所描述的三种模式地图的显示,在MainPage.xaml.cs文件中可以如下来编写代码实现:
通过布局三个按钮分别来实现三种模式的切换,对应的前端Silverlight代码(即MainPage.xaml部分代码)如下:
运行后,效果如下图所示:
二、动态定位可以说所有地图系统(比如常见的Google Maps,Bing Maps,ArcGIS,MAPInfo等)都是通过精度(Longitude)和纬度(Latitude)来进行定位。在Bing Maps开发中,我们也可以做到动态定位,Bing Maps Silverlight Control提供了动态定位的相关API我们可以直接调用。
地图的精度和纬度都是通过double类型值表示(经测试Bing Maps中设置int,float类型值也可以),在设置精度纬度的时候需要注意,错误的度值会引发Silverlight异常。
代码如下:
SetVIEw方法提供了多个重载版本,其中一个重载为通过Location对象使用精度和纬度构造地图坐标以及地图变焦程度参数来进行地图坐标定位。地图定位的精度和纬度表示的坐标为当前地图显示区域的中心点,可以使用地图控件的"Center"属性,值得到当前显示地图的中心坐标点(精度,纬度)。
代码如下所示:
三、动态设置变焦程度地图变焦也可以说是镜头的放大与缩小程度,可以通过对地图控件设置ZoomLevel属性进行动态控制。变焦的取值是有限的只能取值1---16,如下为地图设置默认的加载变焦级别。
前端Silverlight的代码如下所示:
同时也支持动态设置变焦程度,通过程序动态改变ZoomLevel的值就OK了,如下示例代码:
运行后效果图如下所示:
总结以上是内存溢出为你收集整理的【Bing Map学习系列】(3)——如何通过Bing Maps Silverlight Control控制地图全部内容,希望文章能够帮你解决【Bing Map学习系列】(3)——如何通过Bing Maps Silverlight Control控制地图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)