Hongtao 的个人资料微软必应地图(Bing Maps, former...照片日志列表 工具 帮助

微软必应地图(Bing Maps, formerly Virtual Earth)

Bing Maps for Enterprise
11月26日

必应地图SilverLight控件入门讲座之三:手动控制地图模式

上一讲让我们学会了如何在初始加载地图的时候设置不同的地图模式,例如地图中心位置,放大级别等。很多时候我们希望自己定义按钮来控制不同的地图模式,这在有些应用场景了比较有用。比如我们希望用户只能浏览放大级别3-17范围的地图,只能看北京地图的地图,或者只能显示卫星图等等。
 
首先,我们把微软默认提供的工具栏隐藏起来,这里用到NavigationVisibility属性,它的取值为Visibility枚举类型
  • Visible:显示工具栏
  • Hidden:不显示工具栏,但保留工具栏的空间
  • Collapse:不显示工具栏,也不保留工具栏的空间
但是和MSDN上定义有出入的是,Hidden方式目前似乎并不支持,所以大家如果不想显示工具栏,就设置NavigationVisibility="Collapsed"。即修改如下代码:
<m:Map x:Name="myMap" NavigationVisibility="Collapsed" CredentialsProvider="Your Bing Maps Credentials"></m:Map>

接下来我们增加几个按钮。这里需要了解SilverLight的三种布局方式:Canvas,StackPanel,Grid。本文用到StackPanel方式:
        <StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Left">
            <Button x:Name="RoadButton" Content="Road" Click="RoadButton_Click"></Button>
            <Button x:Name="AerialButton" Content="Aerial" Click="AerialButton_Click"></Button>
            <Button x:Name="AerialFadebutton" Content="AerialFadeLabel" Click="AerialFadebutton_Click"></Button>
        </StackPanel>
关于StackPanel的用法感兴趣的同学自己上网搜一下,否则照搬着使用就行了。关于Button的用法也是。
此处我们增加了三个Button:Road,Aerial,AerialFadeLabel。前两个很好理解,分别显示道路图和卫星图。第三个AerialFadeLabel是BMSL新增的功能,当鼠标在地图上掠过的时候会自动显示路标,否则路标会渐渐隐退。
 
按钮加上了,但是还需要补充这些按钮的事件代码,即按下这些按钮将执行哪些操作。转到MaiPage.xaml.cs文件,添加命名空间:
using Microsoft.Maps.MapControl;
然后各个Button Click事件的方法中补充如下代码:
        private void RoadButton_Click(object sender, RoutedEventArgs e) //显示道路图
        {
            myMap.Mode = new RoadMode();
        }
        private void AerialButton_Click(object sender, RoutedEventArgs e)//显示卫星图
        {
            myMap.Mode = new AerialMode();
        }
        private void AerialFadebutton_Click(object sender, RoutedEventArgs e)//显示卫星图,并且设置路标可以渐渐隐退模式
        {
            AerialMode am = new AerialMode();
            am.Labels = true;
            am.FadingLabels = true;
            myMap.Mode = am;
        }
 
11月25日

必应地图SilverLight控件入门讲座之二:设置初始地图模式

上一讲我们介绍了如何通过必应地图SilverLight控件显示地图,但是很多时候我们需要设置地图初始显示的模式,比如地图中心、放大级别、显示卫星地图等等。
补充说明一下,在以前的文章中我提到过Devigner这个概念,就是将Designer和Developer结合,让搞设计的和搞代码的人员都能够开发出很炫的互联网应用。因此必应地图SilverLight控件(Bing Maps SilverLight Control,以下简称BMSL)提供两种开发方式,设计人员可以直接修改xaml预览开发效果,程序员可以通过c#控制地图。因此后续的讲座中我会将两种方式结合着介绍。
 
首先看一下如何修改xaml。很简单,只需要做如下修改:
<Grid x:Name="LayoutRoot">
        <m:Map ZoomLevel="14" Mode="AerialWithLabels" Center="39.9,116.4" CredentialsProvider="Your Bing Maps Key"></m:Map>
</Grid>
即为Map对象增加几个属性,例如:
  • ZoomLevel:地图放大级别
  • Mode:地图模式,此处设为AerialWithLabels,即显示带路标的卫星地图
  • Center:初始显示的地图中心经纬度
关于Map对象的成员、属性及方法的详细描述参见:
在后续的讲座中会作更多的描述。
 
接下来我们看一下如何通过C#程序来控制地图。
有几步是必须的:
1)在xaml文件中为Map增加Name属性,相当于为Map对象初始化一个实例:
  <m:Map Name="myMap"></m:Map>
2)在xaml.cs文件中增加命名空间:
   using Microsoft.Maps.MapControl;
 
然后我们可以自由控制地图了,我相信很多程序员更喜欢用代码来操作显示地图。如果你希望在地图初始化的时候就设置显示模式,那么初始化页面的方法中增加代码:
 public MainPage()
        {
            InitializeComponent();
            myMap.Center = new Location(39.9,116.4);
            myMap.Mode = new AerialMode();
            myMap.ZoomLevel = 14;
        }
 
下一讲介绍如何通过按钮来手动设置地图模式。
11月24日

必应地图SilverLight控件入门讲座之一:显示地图

几乎所有的讲座第一讲,是一定要降低难度以鼓励大家快速上手。地图应用的的第一讲莫过于如何显示地图。用必应地图SilverLight控件显示地图似乎比JavaScript更简单。
 
看图说话吧,没有比这个更简单了。
1、打开VS2008,创建SilverLight Project
 
2、选择Host the Silverlight application in a new web site

3、添加Bing Maps Silverlight Control Reference,通常在必应地图SilverLight地图控件安装目录下,例如:D:\Program Files\Bing Maps Silverlight Control\V1\Libraries

4、在MainPage.xaml中添加地图命名空间xmlns:m="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl"

5、在<Grid>域中增加地图元素,如下所示:
    <Grid x:Name="LayoutRoot">
        <m:Map/>
    </Grid>
大功告成,可以显示地图了,编译运行一下吧!是不是比JavaScript还简单Smile
 
不过由于我们还没有用到Bing Maps Key(参见必应地图SilverLight控件入门讲座之准备工作),所以在操作地图的时候你会发现如下提示:
 
因此在MainPage,xaml中稍微修改一下:
<m:Map CredentialsProvider="Your Bing Maps Key" />
 
好了,第一讲完成了。
 

必应地图SilverLight控件入门讲座之准备工作

微软必应地图SilverLight控件(Bing Maps SilverLight Control)推出以后,我一直想写一个入门讲座系列。我坚定的以为小康型互联网时代,SilverLight(或Flash,甚至HTML5等等,whatever)将大有作为。并且确实有不少朋友问起如何开发基于必应地图SilverLight控件的应用,所以将我所掌握的资料整理一下,以尽量简单的方式呈现。
 
照例,开发基于必应地图SilverLight控件的应用需要如下准备工作:
  1. 安装Microsoft Visual Studio 2008 SP1 以及Microsoft Silverlight 3 Tools for Visual Studio 2008 SP1
  2. 掌握SilverLight的基本开发知识,Silverlight Getting Started page
  3. 创建必应地图开发者账号。登录Bing Maps Accounts Center,按照提示创建账号及获得Key。
  4. 下载Bing Maps Silverlight Control

至此,您可以进入下一讲,开发第一个必应地图SilverLight控件例子。

补充说明一下开发者账号的创建步骤:

  1. 访问https://www.bingmapsportal.com,点击Create an account
  2. 使用你的Windows Live ID(MSN账号)登录,如果没有的话先上https://www.bingmapsportal.com/SignIn/Logon创建一个
  3. 使用Windows Live ID登录以后,需要你提供以下信息:
    • Account name 必填,自己定义个唯一的账户名称
    • Contact name 选填,联系人名
    • Company name 选填,公司名
    • Email address 必填,用以和账户的所有者进行联系,你也可以采用Windows Live ID作为Email Address;
    • Phone number 选填,电话号码;
    • API terms of use 必填
  4. 获得必应地图Key:点击Create or view keys。如果以前没有创建过Key,则可以输入你的地图应用的名字及URL,点击Create key按钮来生成一个Key。

后面的讲座中我会说明如何使用Key。

11月20日

中国必应地图发布更新

随着必应地图全球平台英国平台发布最新更新,中国必应地图今天也宣布最新更新上线。此次更新主要集中在数据更新以及后台系统性能提升,功能和外观上并没有较大变化,也没有像全球平台一样推出SilverLight地图控件。此次更新的内容包括:
  • 兴趣点(POI)和黄页数据(YP)
  • 商业照片
  • 公交路线:新增、更新了大量公交路线,并删除一些弃用的路线
  • 自驾路线:更新了大量路网及路标
  • 地图Tile:全国范围内更新
  • 实时交通数据:北京地区增加了40%道路覆盖,上海地区增加了50%道路覆盖

此外,自驾路线的提示信息更加丰富和人性化,例如:

 

必应地图卫星照片

 

Chen Hongtao

地点
兴趣
Virtual Earth, Microsoft
第 1 张,共 54 张