HT's profile微软必应地图(Bing Maps, former...PhotosBlogLists Tools Help

Blog


    November 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。

    November 20

    中国必应地图发布更新

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

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

    November 19

    必应地图案例分析:欧洲环境署eye on earth

    有日子没写案例分析了,该为大家介绍一些国外的应用。其实我的博客除了介绍必应地图的相关知识,也不时的将国外一些很有意思的应用引进来,毕竟应用不完全依赖于技术。这些应用的思路完全可以被我们借鉴。今天介绍的是欧洲环境署的eye on earth,可以理解为放眼看地球。
     
    人类的活动对自然造成了不可估量的影响,因此有必要对自然的变化进行有效的监控,并且然公众们了解自然现状。欧洲环境署采用微软的Azure云计算平台和SQL Server数据库,结合最新推出的必应地图SilverLight控件,将空气和水的质量状况实时展示给每一位公民。
    欧洲环境署在欧洲拥有成千上万个自然环境监测站,实时采集各种自然数据。通过微软SQL Server存储、处理及分析,对当前自然条件进行评价。网站给出了两类评价结果,空气质量和水质量。同时,评价结果也分官方监测结果和用户上传评价结果。空气质量包括空气中臭氧含量、二氧化氮含量、悬浮颗粒含量等指标。用户也可以拖拽图钉到欧洲任何地方,查看当地的空气和水质量。
     
    应该说这个应用看起来不是很复杂,但是非常有用。首先它提供了交互性的界面,充分利用了必应地图SilverLight控件的优点,使互联网应用更加生动。其次,这种实时监控数据显示的方式,我们完全可以实行拿来主义,比如我们在收音机离每天听到诸如空气指数,洗车指数等等,完全可以在网站上实时展示,并发挥web 2.0的精髓,发挥网民的力量来递交各种数据。
    November 17

    必应地图更新使用条款,教育和非盈利机构可以免费使用

    随着本次必应地图(Bing Maps) SilverLight控件1.0的发布,微软也对原有的使用条款(terms of use )进行了修改,使之更容易理解,更容易入门。

    微软原有的License Model中,针对Public  Application根据Transaction数收费。一个Transaction是指一个地理编码(geocoding)请求/响应,一个路径请求/响应(如自驾路线、公交路线查询),一个本地搜索请求/响应,或请求8个地图瓦片(Tile,256x256像素)。Transaction在无状态(Stateless)API的情况下仍然有用,但是微软将补充引入Session的概念。Session在必应地图JavaScript控件和SilverLight控件中都适用。一个Session是指一个完整的地图访问访问,没有Tile数目的限制。以下是关于Session的详细解释

    • Bing Maps AJAX控件 – 同一客户端最初地图加载后的所有地图请求都属于同一个session,包括地理编码请求、本地搜索请求等;
    • Bing Maps Silverlight控件- 同一客户端最初地图加载后的所有地图请求都属于同一个session。必应地图SilverLight控件不包含地图服务,只能显示基本的Tile,因此你需要通过Bing Maps Web Service获得地理编码、路径请求等。但是我们也把这些请求包含在一个Session中;
    • Bing Maps Web Service – 所有地图Tile、geocodes、routes和search请求,每个请求都产生一个transaction。

    在了解了这些术语后,我们来看一下使用条款的具体内容。新的使用条款允许每年免费使用12.5万个Session或50万个Transaction,这对于一般的个人地图应用已经足够了。当然,如果你希望获得更多的地图请求以支持企业级应用,请访问微软Marketing page。微软提供了灵活的License Model。此外,关于traffic和鸟瞰图(Bird‘s Eye)也有一些补充限制,请阅读完整的Terms of Use 。

    Educators - 针对教育机构,现在可以无限制的使用必应地图。以下内容摘自使用条款:educational use under this Section 2(i) means use by public and private K-12 schools, universities, community colleges and other collegiate level institutions such as vocational schools, trade schools and career colleges, including their faculty, staff, and students。基本上包含了中学、大学、研究所、职高等各种教育性机构。关于教育机构使用条款的权利和约束,请访问Terms of Use

    Not-for-Profits - 非营利机构可以无限制使用必应地图。以下摘自使用条款:to be considered non-profit organization use under this Section 2(i) you must be a tax exempt organization。关于非盈利机构使用条款的权利和约束,请访问Terms of Use

    Commercial, non-commercial and government – 对于企业内部应用、导航定位类应用以及政府应用,需要额外得到微软授权。当然在商业、非商业项目以及政府项目还没有正式上线使用之前,微软提供免费试用期以供开发、测试。

    如果您还有问题或者并不了解你的应用所属分类,请访问 new licensing page

    微软在英国推出必应地图

    今天心血来潮上百度搜了一下“必应地图”,发现前十个结果中居然有两条关于微软在英国推出正式版必应搜索引擎及必应地图:“据国外媒体报道。。。”。我还是来个国内版的吧Tongue out
    其实之前英国的用户访问微软地图服务,将会跳转到MultiMap.com主页。事实上MultiMap在英国还是很强大的,有点相当于中国的MapABC,只不过MultiMap还做全球地图生意。自从微软收购MultiMap以后,就一直忙着整合必应地图和MultiMap地图。现在终于有结果了,在英国访问必应地图(http://maps.bing.com/?mkt=en-uk),你会发现地图数据来自MultiMap,但是引擎采用了最新的Bing Maps SilverLight Control。具体内容我就不完整介绍了,感兴趣的同学自己通过上面的链接体验吧。和必应地图其他国家不同的是,英国必应地图提供了另外几种道路图模式:
    London Street Map:更详细的伦敦道路图
    Ordnance Survey Map:一直没能整明白这个地图是干嘛的。查了一下Ordnance Survey貌似是英国陆军测量局。
     
    不过我还是很喜欢英国必应地图的卫星照片和航拍照片,清晰度相当的高,应该能够达到0.3米,口水。啥时候能在中国提供这么高精度的图片呢?
    November 11

    微软发布必应地图SilverLight控件1.0

    经过数月的CTP预览版本,微软终于发布必应地图SilverLight 1.0版(Bing Maps Silverlight Control Version 1.0)。关于必应地图SilverLight版的好处我就不多费口舌了,总之就是通过RIA(Rich Internet Application)创造下一代LBS位置服务应用。还是直接进入主题,看看必应地图SilverLight控件1.0都有什么内容。

    Bing Maps Silverlight Control

    •  基于Silverlight 3:必应地图SilverLight控件与最新发布的SilverLight 3.0保持一致;
    • 支持Expression Blend:将Bing Maps Silverlight .dlls加入到你的Expression Blend工程,你可以直接修改fields而不是代码。而且,地图和你所做的修改可以直接呈现。Visual Studio 2010 Beta 2版本支持预览功能;
    • 必应地图Keys:再见tokens,原先的token方式过于复杂。以后微软采用Key的方式认证地图请求,只需要在程序中增加一行代码就可以实现;
    • 脱离浏览器: Bing Maps Silverlight控件支持Silverlight 3一个很重要的功能,那就是out of browser。在SilverLight应用点击鼠标右键,即可将该应用的快捷方式保存至桌面;
    • 地图模式扩展性:我们增加了一些新的类来扩展支持不同的地图类型;
    • Pushpin类:新增图标(Pushpin)类以支持矢量图标,而不是采用SilverLight自带的绘图工具。这将会非常有用,用户可以定制出更有意思的图标;
    • 数据绑定:将你的数据更容易的现实在地图上;
    • 全球支持:必应地图平台支持各种语言,包括AJAX控件,Web Service。现在你还可以通过SilverLight控件显示地图;
    • Bing Maps Web Service Property Type Safety: 我们保留了Bing Maps Web Service的classes, methods and properties,这意味着你不需要修改原有Bing Maps Web Service应用中类,它们可以直接被必应地图SilverLight控件处理。

     

    • Fading Labels: 当鼠标移开时,透明叠加显示在卫星地图上的道路数据会渐渐隐退;
    • 描述性API: 对于那些不需要使用Bing Maps Silverlight Control (Microsoft Visual Studio 2008 SP 1, Microsoft Silverlight 3 Tools for Visual Studio 2008 SP 1)的,我们提供了JavaScript界面
      • 你可以通过OBJECT PARAM标签指向xap文件,这和必应地图Ajax控件有些类似,你的代码类似:

                 <object id='slCtl' data="data:application/x-silverlight,"type="application/x-silverlight-2" width="800" height="500">

                    <param name="source" value="http://dev.virtualearth.net/silverlight/mapcontrol/v1/Microsoft.Maps.MapControl.xap" />

                    <param name="enableHtmlAccess" value="true" />

                    <param name="initParams" value="ApplicationId=Your Key”/>

                </object> 

              Bing Maps Silverlight SDK支持的描述性feature如下
              Set Animation
              Set Map View (rectangle, center point, map mode)
              Set Culture (localized maps)
              Set Visibility of the scale bar
              Capture user targets (rectangle, center point, zoom level)
              Location (coordinates)
              Add Pushpins
              Capturing Events (mouse, keyboard, Bing Maps)
              Drawing
      • 可嵌入式地图:一个简单的URL就可以将Ajax或SilverLight地图嵌入到你的应用。如果你不擅长编程,你可以尝试通过URL控制显示地图,采用IFrame嵌入你的应用程序中:
              (Silverlight) http://dev.virtualearth.net/embeddedMap/v1/silverlight/aerial?zoomLevel=10&center=47.5_-122.5&pushpins=47.5_-122.5
              (AJAX) http://dev.virtualearth.net/embeddedMap/v1/AJAX/aerial?zoomLevel=10&center=47.5_-122.5&pushpins=47.5_-122.5
             
              嵌入式地图支持如下feature:
              Map Mode: Set the map mode. mapMode={Road, Aerial, AerialWithLabels, Birdseye, BirdseyeWithLabels}
              Zoom Level: Set the map zoom level: zoomLevel={1-21}
              Center: Set the map center point: center={latitude_longitude}
              Heading: Set the map heading: heading:{North, South, East, West}
              Pushpins: Places pushpins on the map: pushpins={latitude_longitude}
              Culture: Set the map localization: culture={en-us}

       

      我们还修改了使用条款(Terms of Use),详情参见Chris的Blog: "Bing Maps Terms of Use Changes; Benefit Educators, Not-for-Profits and Developers."

      以下是一些有用的资源:

      必应地图Silverlight控件下载(.dlls 在.msi包中)

      必应地图Silverlight控件交互式SDK

      必应地图AJAX控件交互式SDK

      必应地图AJAX控件SDK

      必应地图Silverlight控件SDK

      必应地图Web Services SDK

      必应地图账户管理中心

        另外可以看一个必应地图SilverLight控件视频(the video about what the Bing Maps Silverlight Control

        必应地图华丽更新

        本来我想把标题取的更华丽一些,比如“必应地图革命性的升级”之类的。但是,这次更新离我想象中的还有些距离,至少我之前看到的内部版不完全是这样的,因此姑且算是个过渡版本吧,期待更完美必应地图Tongue out
         
        不过无论如何,这次升级动作比较大,整体界面风格和之前的版本有了彻底的变化。主要的更新包括以下内容:
        • Bing Maps Draggable RoutesDraggable Routes – 这个比较有用。在选择自驾路线时,可以通过鼠标拖拽起止地点图标来改变出发地和目的地,也可以拖拽路线上的任何一点到你希望路过的地方,必应地图会自动计算出一条经过该地方的路线。这个改动对于用户来说更方便了,能用鼠标实现的就尽量不要使用键盘;
        • Zoom Bar – 工具栏也和SilverLight CTP版本的风格保持一致,并且可以直接跳转到某一放大级别(例如国家、城市、街道级别),而不是像以前一样只能通过放大、缩小按钮控制; 
        • Command Parsing – 优化了用户搜索语句的解析。例如,只需要输入“从XXX到XXX”就可以显示驾车路线,输入“XXX的交通”就可以显示该地的交通流量。当然由于必应地图全球平台是英文版的,只接受英文搜索。未来必应地图中国平台也将会支持这种简单搜索方式,即one box search。 
        • Embed a Map – 将当前地图嵌入自己的网站。只需要点击按钮,你可以将地图链接分享给朋友,也可以直接将地图代码嵌入自己的网站;

         

        • Dynamic Compute – 必应地图在全球有7个数据中心,确保在全球任何地方,用户可以从距离自己最近的数据中心获得地图。
        • New Navigation – 全新的导航栏 
        • World Wrap - 平移地图时,不会出现地图在国际时间分界线处截止的问题,也就是说你可以无限制的平移地图。地球本来就是圆的,亚洲东边是太平洋,太平洋东边是美洲,再东边是大西洋、欧亚大陆、太平洋、美洲。。。但是南北两极没办法连接起来,又回到墨卡托映射这个老问题了;
        • Diet Bing Maps - 必应地图主页大小从678kb降为484kb,加载页面更快了
        November 10

        必应地图2.0!

        今天,必应地图发布2.0版本,将会有很大变化。敬请关注http://maps.bing.com/ 。
        我会带来详细介绍。
         

         

        Valued Bing Maps for Enterprise Partner,

         

        We are excited to announce that the latest release of the Bing Maps Platform is officially here! The Bing Maps Platform brings location data to life by making it easier to visualize, understand, and analyze. The rich imagery, quality geospatial data, and leading-edge technology of Bing Maps is already being used by thousands of organizations, governments, and developers worldwide. Now, with this latest release, it’s more powerful, faster, and easier to get started, due to improvements in three fundamental areas:

         

        UNPRECEDENTED INNOVATION — Bing Maps now includes a Silverlight Control, so that the rich, multimedia benefits native to Silverlight, like embedded video, can now be integrated into Bing Maps.

        PLATFORM PERFORMANCE — Our commitment to fast and accurate performance for users across the world continues with this latest release, including our growing network of global data centers that bring both services and content closer to our customers and their end users, as well as improved search and geocoding capabilities in Germany, the U.K., and the U.S.

        EASY TO USE — New lightweight “keys” make the authentication process faster and easier, and provide access to the rich features of the Bing Maps APIs.

         

        To learn more about the release, watch the announcement video and visit www.microsoft.com/maps for developer resources and detailed information.

         

        Join Chris Pendleton, Microsoft Bing Maps Technical Evangelist, at 10 a.m. Pacific Standard Time, on Thursday, December 10, for an informational webcast on this latest release of the Bing Maps Platform. Register today.

         

        If you have any questions, please contact your Bing Maps Sales Specialist, or visit the Web site.

         

        Thank you,

         

        The Bing Maps Platform Team

        Microsoft Corporation

        November 05

        必应地图和SilverLight

        这几天RIA(Rich Internet Application)这个词总不期而遇,想了想万事都有其存在的道理。就好比当许多人还在为第一套房奋斗的时候,一部分人在考虑提高生活质量,比如低密度、高绿化率以及温泉、菜园等外在条件。互联网应用也不例外,当我们通过技术解决了很多基本社会生活需求的时候,我们忍不住考虑一下建设小康型互联网。于是有了Flash,有了SilverLight,有了HTML5。犹如贫困的生活不代表爱情的真谛,朴素的软件界面不代表政府工作的严肃性,为什么我们就不能让工作变得更有意思一些呢。
         
        传统的在线地图几乎千篇一律的采用了JavaScript控件形式,我们必须承认这种革新确实给开发带来了很大的便捷,使普通开发人员不需要拥有GIS背景知识也可以开发一些简单的LBS应用。当微软给出了在线交互式SDK以后,程序开发就变得更简单了,仅需要拷贝、粘贴、替换一些参数。案例、效果、代码一条龙Open-mouthed
         
        当微软今年3月推出必应地图SilverLight控件(Bing Maps SL Control)时,当时并没有太大的感触,并且觉得舍弃了三维模型比较可惜(也许将来Bing Maps SL会加上)。但是,随着SilverLight技术的不断发展以及国内开发人员对SilverLight越来越熟悉,基于SilverLight的地图应用也越来越广泛,其中有几个网站给我留下了比较深刻的印象。
         
        1、IDV Solutions,DOD Collaborative GIS
        IDV Solutions是微软全球金牌合作伙伴,为必应地图开发了很多解决方案。上图展示的就是IDV其中一个项目DOD Collaborative GIS,国防部协作GIS平台。当发生突发事件时(恐怖分子劫持人质、火宅、交通事故等等),相关部门可以在线协同作战,在必应地图上进行作战方案研究,模拟事故现场,模拟兵力部署,模拟进攻路线等等。必应地图提供的高清晰卫星图可以清楚的展示事件现场的地理形势,而SilverLight提供了良好的页面交互性。用户可以很方便的将各种对象,如飞机、卡车、人员、建筑等,拖拽到地图上。
        可以想象,假如配备了这套系统,结合实时视频数据,2008年春节雪灾时温总理就不用亲临现场了,只需要将各部门召集在一起进行网络部署,调动一切可调动的人力物力,制定救灾方案。
         
        前一篇文章中已经介绍过微软亚洲研究院开发的旅游指南(Travel Guide),此处重新提出这项应用一方面是因为它很好的结合了必应地图、必应搜索以及SilverLight,另一方面它的思路比较符合我的想法。我一直认为搜索不应当仅仅是上百度或Google查一下某个关键字,然后得到一些网页链接。当温饱型搜索实现以后,我们应该追求小康型搜索。我理解的小康型搜索应该比垂直搜索更进一步,将不同的垂直信息有效整合形成新的解决方案,满足某一类型的需求,比如旅游指南。
        Travel Guide做了一个很有益的尝试,如果有一天有人一想到要去旅游首先上Travel Guide搜一下,那时候才是Travel Guide真正成功了。目前看来还有很大一段路要走。一方面,还可以从游客的角度去考虑,一般旅游之前都希望获得哪些信息,需要做什么准备工作等等。另外一方面,在展示方面可以做的更好,比如微软还有PhotoSynth,可以对照片进行智能分析,显示景点全貌;微软有TrueSpace,可以进行三维建模;微软有强大的合作伙伴群体,为微软提供丰富准确的数据,以及与旅游相关的后续服务,诸如酒店预订、机票预订等等。
         
        3、气候管理系统
        最近听的另一个比较多的词汇是“数据可视化”。我说朴素的界面不代表政府工作的严肃性,汇报工作不一定只靠格式化的文档和枯燥的数据。采用必应地图,可以使工作更轻松,更有意思,更有效率。这个“气候管理系统”充分利用必应地图和SilverLight的优点,将“数据可视化”理念发挥到极致。这个系统采用了现在比较流行mashup概念,即将不同数据层在基础地图上叠加,比如风图、云图、水量图、雨量图等等。小小的预测一下,这种形式的气候管理系统将成为一个里程碑,成为行业的示范性项目。

        微软必应地图赞助Navteq 2010年LBS全球大赛

        想挑战吗?有很好的创意?想赢得数十万奖金吗?来参加Navteq的2010年LBS全球大奖赛吧!微软必应地图首次赞助此项赛事。任何对LBS位置业务、移动和互联网有热情的开发人员都可以参与这次盛事,并有机会赢取全球知名公司的投资。你就是下一个LiveCast, Skyhook Wireless 或 Navman – 之前的获奖项目。
         
        什么是NAVTEQ LBS Challenge?以下文字摘自NAVTEQ的原文:the NAVTEQ Global LBS Challenge focused on driving the development and visibility of innovative location-based solutions (LBS) for wireless devices. The Global LBS Challenge has become the premier event in the wireless industry and a global symbol of LBS innovation and opportunity. From business applications to sports, travel and security, integrating the accuracy and richness of NAVTEQ digital map data facilitates the discovery of the next wave of LBS using dynamic positioning technology.
        NAVTEQ Global LBS大奖赛重点关注无线设备上具有创新性的LBS应用,从体育、旅游到安全等各个领域,结合Navteq丰富准确的地图数据,探索下一代LBS业务。

        EMEA - February 14, 2010 – Barcelona, Spain – Mobile World Congress

        North America – March 30, 2010 – San Jose, USA – Where 2.0

        India – April 29, 2010 – New Delhi, India

        South America – May 25, 2010 – Sao Paolo, Brazil – Geo Summit

        Asia – June 14, 2010 – Singapore - CommunicAsia

        大赛注册地址:http://www.nn4d.com/site/global/market/lbs_challenge/p_lbs_home.jsp。亚洲地区的注册截止日期为2010年3月5日,请大家抓紧时间。

        更多关于此次LBS Challenge,请关注微软主页。

        October 29

        在必应地图SilverLight控件中加载其他地图(Google卫星图等)

        Tips:在必应地图SilverLight控件(Bing Maps SilverLight Map Control)加载别的地图,例如Google卫星图,Yahoo地图等。
         
        最近一年时不时的考虑微软和Google孰优孰劣的问题,前天的MSN签名也换成Enterprise Microsoft vs Consumer Google,基本上代表了自己的结论。总的来说,两者都是很伟大的公司,伟大的不仅仅是其所拥有的产品和技术这么简单,而是Microsoft和Google所代表的背后所蕴含的人、技术、文化、生态链、对社会的影响等等。相比之下,微软是以做企业客户的思路来经营市场,而Google更像是一个互联网公司,并且更贴近终端用户。因此,Google赢得了更多的口碑。但是现在认为谁更有前途为之尚早,因为到了微软、Google这样级别的企业,影响其成败的不仅仅是产品、技术、用户,而且还有其背后的投资者。
         
        引言这么长一段,小而言之,微软必应地图和谷歌地图这两个全球最有影响力的在线地图,各自都有其优势。例如在中国,Google提供了分辨率还算不错的卫星地图(之所以说还算不错是因为微软在国外提供的卫星地图分辨率最高能够达到0.35米,Google在国内提供的最高分辨率1米),而微软因为某些原因一直没有在国内的必应地图平台上提供卫星地图。但是微软在全球推出了SilverLight地图控件,得到了很多用户的推崇。于是有很多用户,包括我在内,曾经考虑过能否在微软必应地图SilverLight控件中既能够显示全球地图,又能够显示中国道路图,并且最好还能够显示Google卫星地图。本文的目的就是为了实现这个目标。
         
        照例是准备工作,想理解这篇文章的内容,需要先理解前面几篇文章,至少也得多少明白SilverLight地图控件的开发:
        3)http://acnchen.spaces.live.com/blog/cns!9321DA57338F36BA!3241.entry 必应地图SilverLight控件开发入门
        4)http://acnchen.spaces.live.com/blog/cns!9321DA57338F36BA!3428.entry 必应地图Tile System原理及加载自定义图层
        5)http://acnchen.spaces.live.com/blog/cns!9321DA57338F36BA!3430.entry 通过必应地图SilverLight控件加载中国地图
         
        理解了第5)篇文章,我们知道在必应地图SilverLight控件上加载别的地图,无非是指定一个目标地图为自定义图层。我们来简单复习一下如何在必应地图SilverLight控件上加载必应中国地图。其基本步骤大致如下:
        1、创建一个MapTileLayer对象的实例
        2、创建一个Tile Source对象的实例
        3、将Tile Source对象实例添加到MapTileLayer实例中
        4、将MapTileLayer实例添加到Map
        同学们可能注意到,在那篇文章中我主要修改了必应地图SilverLight控件官方给出例子中的tileSourceUri,即:
        UriBuilder tileSourceUri = new UriBuilder("http://r3.tiles.ditu.live.com/tiles/{0}.png?g=47");
        这段代码的主要作用就是将必应地图图片的URL转换成SilverLight控件所识别Tile Source Uri格式。
         
        其实从本质上来讲,动态的将在线地图图片作为自定义图层加载在必应地图上,其实就是向在线地图发出http request下载图片,然后在客户端做叠加。因此,我们需要考虑的是如何构造这个http request。对于必应地图SilverLight控件应用客户端而言,能够获得的是x、y坐标值及当前放大级别z(zoom level)。
         
        那么我们怎么知道Google卫星地图的url格式呢?万能的httpWatch再次登上舞台,轻而易举的我们就可以分析出其格式如下:
         
        剩下的工作就简单了,重载一下Tile Source对象,申明一个GoogleTileSource类:
           public class GoogleTileSource : TileSource
            {
                public GoogleTileSource()
                    : base("
        http://khm{0}.google.com/kh/v=47&x={1}&y={2}&z={3}")
                {
                }
                public override Uri GetUri(int x, int y, int zoomLevel)
                {
                    return new Uri(string.Format(this.UriFormat, x % 4, x, y, zoomLevel));
                }
            }
         
        然后按照前面所述的四个步骤添加自定义图层:
                public MapTileLayer customTileLayer = new MapTileLayer(); //create a MapTileLayer object instance
                public GoogleTileSource gTileSource = new GoogleTileSource(); //create a Tile Source object instance
                customTileLayer.TileSources.Add(gTileSource); //add tile source to MapTileLayer
                myMap.Children.Add(customTileLayer); //add MapTileLayer to Map
         
        这样,我们就可以在必应地图SilverLight控件中叠加显示Google卫星图片了。当然你也可以增加两个按钮,分别控制显示必应地图中文道路图和Google卫星地图。下面附两张demo的截图,显示OpenStreetMap提供的双语道路图,以及Google的卫星地图:
           
         

        微软必应地图数据更新

        10月27日,微软必应地图(Bing Maps Global)再次更新了大量地图数据,总计约65TB。此次更新主要集中在爱尔兰、斯堪的纳维亚地区以及珠穆朗玛峰等地。中国区域更新的城市(卫星地图)包括:
        内蒙古牙克石市(又是第一次听说的地名),326平方公里;
        辽宁锦西,2299平方公里;
        山西云冈,1573平方公里;
        山东济南,647平方公里;
        山西渭南(骊山),591平方公里;
        安徽淮南,620平方公里;
        江苏江阴,386平方公里;
        江苏崇明,349平方公里;
        福建漳州,675平方公里;
        福建南平,3641平方公里;
        登陆http://bingmapsupdates.cloudapp.net/可以查看微软必应地图全球数据更新的情况。
        October 13

        通过必应地图SilverLight控件显示中国地图

        鉴于很多朋友问起来如何通过必应地图SilverLight控件(Virtual Earth SilverLight Control,VESL)显示中国地图,我还是简单写一下吧。既要避免违反公司规定,又要让更多的用户使用必应地图,还真是有些矛盾。我继续以地图爱好者的身份,从公开能够获得的参考资料中分析如何实现这一解决方案吧。
         
        以下是一些准备工作,大家可以预习或复习一下。
        3)http://acnchen.spaces.live.com/blog/cns!9321DA57338F36BA!3241.entry 必应地图SilverLight控件开发入门
        4)http://acnchen.spaces.live.com/blog/cns!9321DA57338F36BA!3428.entry 必应地图Tile System原理及加载自定义图层
         
        其实,通过必应地图SilverLight控件显示中国地图并没有想象的那么困难,我们先看一下1)交互式SDK中所介绍的一个例子,User Tile Layers-->Add a tile layer using C#。这个例子告诉我们如何将用户自定义图层通过VESL叠加显示在上基础地图上,看到这句话是不是觉得很熟悉?这就是文章4)中所介绍的内容,其原理和本文所要介绍的是一致的。因此,我们直接分析VESL的这个例子代码:
        public TutorialAddTileSourceManaged()
                {
                    InitializeComponent();
                    UriBuilder tileSourceUri = new UriBuilder("http://dev.live.com/virtualearth/sdk/layers/lidar/{0}.png");
                    if (HtmlPage.Document.DocumentUri.Scheme.Equals(Uri.UriSchemeHttps))
                    {
                        //For https, change the UriSceheme to https and change it to use the default https port.
                        tileSourceUri.Scheme = Uri.UriSchemeHttps;
                        tileSourceUri.Port = -1;
                    }
                    tileLayer = new MapTileLayer();
                    LocationRectTileSource tileSource = new LocationRectTileSource(
                                                                    tileSourceUri.Uri.ToString(),
                                                                    new LocationRect(new Location(48.06282, -122.43773), new Location(47.999973, -122.37490)),
                                                                    new Range<double>(10, 16));
                    tileLayer.TileSources.Add(tileSource);
                    tileLayer.TileWidth = 256;
                    tileLayer.TileHeight = 256;
                }
        这段代码中我们所需要关心的就是UriBuilder tileSourceUri = new UriBuilder("http://dev.live.com/virtualearth/sdk/layers/lidar/{0}.png");这句代码实现的功能就是初始化自定义图层的Tile Source URL,和4)中所提到的Tile Source基本一个意思。因此,还是老办法,我们用httpWatch。用httpWatch分析任何一个必应地图(中国平台)的例子,发现获取地图tile的URL格式大致如下:
        于是,依样画葫芦,把那段代码改成:UriBuilder tileSourceUri = new UriBuilder("http://r3.tiles.ditu.live.com/tiles/{0}.png?g=47");
        然后初始化tileSource:
         LocationRectTileSource tileSource = new LocationRectTileSource(
                                                                    tileSourceUri.Uri.ToString(),
                                                                    new LocationRect(new Location(60, 60), new Location(13, 140)), //设置显示叠加图片的区域,随便取两个值把中国区域覆盖
                                                                    new Range<double>(2, 16)); //设置在哪个地图放大级别显示叠加图片

         

        我要说的是,我们已经可以通过必应地图SilverLight控件显示中国地图了,大家去试一下吧。还是那句话:

        需要注意的是,微软并不推荐本文所描述的解决方案,即直接访问tile system。因为微软可能随时更换服务器路径。
        另外:大家如果开发了基于SilverLight的地图应用,记得和我联系acnchen@hotmail.com。我希望让微软总部知道中国有很多用户对SilverLight地图控件很感兴趣,这样他们就会考虑直接把中国地图加入产品中,而不需要我们额外做这些工作了。
        October 12

        在必应地图上加载卫星地图

        无数次,我不得不向客户解释为什么微软必应地图的中国平台(http://ditu.bing.com)没有卫星地图而全球平台(http://maps.bing.com)有,为什么Google的地图有。其实原因很简单,中国地图相关法律没有明文规定在中国可以发布卫星地图。我常常给大家讲一个逻辑,那就是在中国我们只可以做法律允许的事情,而在国外我们可以做法律没有规定不让做的事情。微软是一个比较保守的公司,因此我们谨慎的遵循国家的法律法规行事。
         
        当然,这篇文章归类于“开发入门”,显然不是为了解释上面的内容。我在这篇文章中介绍如何将必应地图全球平台上的卫星地图叠加显示在中国地图平台上。下面是几篇参考性文章,有助于我们实现本文所需的解决方案:
        1)http://msdn.microsoft.com/en-us/library/bb429629.aspx,介绍如何在必应地图上叠加用户自定义图层;
        2)http://msdn.microsoft.com/en-us/library/bb544970.aspx,介绍VETileSourceSpecification类的tile source属性的用法,非常重要
        3)http://msdn.microsoft.com/en-us/library/bb545006.aspx,进一步介绍必应地图的tile system,我们需要把Bing Maps的卫星地图作为自定义图层叠加在必应地图中国平台上;
        4)最后是一个小工具,即httpWatch。
        需要注意的是,微软并不推荐本文所描述的解决方案,即直接访问tile system。因为微软可能随时更换服务器路径。
        鉴于公司制度,我尽量把微软所公开的资料总结整理一下,以一个地图爱好者的角度探讨本文的解决方案,而避免泄露一些核心的内容。
         
        接下来我们循序渐进分析一下如何在必应地图上加载卫星地图。这里首先用到一个方法:VEMap.AddTileLayer(layerSource, visibleOnLoad);
        这个方法很简单,也很容易理解,关键在于其中的layerSource这个输入参数,它是一个VETileSourceSpecification 类,而这个类的一个最重要的属性TileSource,用来指定自定义图片的来源。我们所需要做的就是将卫星地图作为TileSource。
         
        接下来我们使用httpWatch这个小工具,分析任何一个必应地图(访问全球平台)的小例子,发现必应地图卫星图片的请求URL格式大致如下:
        回到参考文章2)及3),
        TileSource - The tile source contains a URL that points to the servers that are going to host the tiles. There are three place holder variables within this URL.
        • %1 - This parameter is a place holder for map style. If the tile images start with 'a', 'r', or 'h', and the source URL contains %1, the map only displays tiles if the view style matches the image names. If this parameter is omitted, then tiles are displayed on every view type.
        • %2 - This parameter is a place holder for the server number if there is more than one server. Use this place holder if the tiles are hosted on multiple severs (numbered sequentially). Bing Maps will make requests to each server in a round-robin fashion.
        • %4 - The last parameter is a place holder for the default Bing Maps numbering scheme. Use this if the custom tiles follow the Bing Maps numbering scheme.

        如果你觉得很难理解上面那段英文的话,那么我告诉你,在将Bing Maps的卫星照片设为自定义图层TileSource时,只需要下面的一段代码:

        var tileSourceSpec = new VETileSourceSpecification("china", "http://t0.tiles.virtualearth.net/tiles/a%4.png?g=213"); 或者:

        var tileSourceSpec = new VETileSourceSpecification("china", "http://t%2.tiles.virtualearth.net/tiles/a%4.png?g=213"); 这种形式支持访问多个地图服务器。

        上面那段代码中,a%4.png,其中a表示卫星图片(aerial的首字母),当你想调用道路图的时候可以将a改为r。

        到此为止,我们已经可以将Bing Maps上的卫星图片叠加在Bing Ditu上了。代码如下:

                function GetTiles()
                 {    

                    var tileSourceSpec = new VETileSourceSpecification("china", "http://t%2.tiles.virtualearth.net/tiles/a%4.png?g=213");
                    tileSourceSpec.NumServers = 2;
                    tileSourceSpec.Bounds = null;
                    tileSourceSpec.MinZoomLevel = 1;
                    tileSourceSpec.MaxZoomLevel = 17;
                    tileSourceSpec.Opacity = 1;
                    tileSourceSpec.ZIndex = 900;

                    map.AddTileLayer(tileSourceSpec, true);
                 } 

         完整代码我就不写了,能够看懂这篇文章的朋友想必对必应地图早有研究,应该知道怎么实现。
        看到这儿,有悟性的朋友已经开始琢磨,这种办法完全可以应用到微软的必应地图SilverLight Map Control中。由于必应地图SilverLight Control只能显示英文地图,因此我们可以采用本文中的解决方案,将必应地图中文道路图片叠加显示在英文地图上。就当家庭作业布置给大家吧,过几天我再公布答案。
        October 07

        必应地图图片系统(Tile System)之二

        【坐标系和地图图片编码】

        为了优化地图系统性能,提高地图下载和显示速度,所有地图都被分割成256 x 256像素大小的正方形小块。由于在每个放大级别下的像素数量都不一样,因此地图图片(Tile)的数量也不一样:

        map width = map height = 2^level tiles

        每个tile都有一个XY坐标值,从左上角的(0, 0)至右下角的(2^level–1, 2^level–1)。例如在3级放大级别下,所有tile的坐标值范围为(0, 0)至(7, 7),如下图:

        Bb259689.209e5af1-34c1-45f6-ba24-41df3e1a1b10(en-us,MSDN.10).jpg

        已知一个像素的XY坐标值时,我们很容易得到这个像素所在的Tile的XY坐标值:

        tileX = floor(pixelX / 256)

        tileY = floor(pixelY / 256)

        为了简化索引和存储地图图片,每个tile的二维XY值被转换成一维字串,即四叉树键值(quardtree key,简称quadkey)。每个quadkey独立对应某个放大级别下的一个tile,并且它可以被用作数据库中B-tree索引值。为了将坐标值转换成quadkey,需要将Y和X坐标二进制值交错组合,并转换成4进制值及对应的字符串。例如,假设在放大级别为3时,tile的XY坐标值为(3,5),quadkey计算如下:

        tileX = 3 = 011(二进制)

        tileY = 5 = 101(二进制)

        quadkey = 100111(二进制) = 213(四进制) = “213”

        Quadkey还有其他一些有意思的特性。第一,quadkey的长度等于该tile所对应的放大级别;第二,每个tile的quadkey的前几位和其父tile(上一放大级别所对应的tile)的quadkey相同;下图中,tile 2是tile 20至23的父tile,tile 13是tile 130至133的父tile:Bb259689.5cff54de-5133-4369-8680-52d2723eb756(en-us,MSDN.10).jpg

        最后,quadkey提供的一维索引值通常显示了两个tile在XY坐标系中的相似性。换句话说,两个相邻的tile对应的quadkey非常接近。这对于优化数据库的性能非常重要,因为相邻的tile通常被同时请求显示,因此可以将这些tile存放在相同的磁盘区域中,以减少磁盘的读取次数。

        实战应用一下,如果大家用过httpWatch的话,可以发现获取必应地图tile的URL如下:

        http://r3.tiles.ditu.live.com/tiles/r13023.png?g=47

        关于这个URL的详细解释我在以后的博客中加以阐述,我们看到其中r13023.png,r表示道路图片,13023就是tile所对应的quadkey。显然这个tile所在的地图放大级别为5,其祖父tile为上图黑框中130。

        必应地图图片系统(Tile System)之一

        微软必应地图提供了全球地图,用户可以进行平移、放大或缩小操作。但是我们可曾考虑过,地图系统的后台是怎么工作的?在进行地图操作的时候,我们会发现并不是整个地图一次性加载显示的,而是一块块的小地图分别显示。没错,为了使地图的浏览速度更快,地图交互更流畅,目前包括微软必应地图在内的几乎所有在线电子地图都事先对地图图片(Tile)进行预处理。本文主要描述地图映射、坐标系以及地图Tile编码体系,统称为必应地图图片系统(Bing Maps Tile System)。
         
        【地图映射】
        为了使地图看起来是无缝(Seamless)的,并且确保来自不同数据源的卫星照片能够完美的拼接,必须有一个统一的地图映射系统,这就是必应地图所采用的墨卡托映射(Mercator Projection)。在上一篇文章中我们已经简单介绍了Mercator Projection。通过Mercator Projection,整个地球可以展示为如下平面地图:
        尽管Mercator Projection会使地球比例尺和某些区域变形,尤其在两极,它还是有不可磨灭的贡献的:
        1)首先它是共形映射(Conformal Projection),即保留了物体的原有形状。这在展示卫星照片的时候很重要,因为我们所看到的正方形建筑就应该是正方形的,而不是长方形的。
        2)其次它是柱状体映射,即南北极在地图的正下、上方,而东西方向处于地图的正右、左。
        由于Mercator Projection在两极附近是趋于无限值得,因此它并没完整展现了整个世界,地图上最高纬度是85.05度。为了简化计算,我们采用球形映射,而不是椭球体形状。虽然采用Mercator Projection只是为了方便展示地图,需要知道的是,这种映射会给Y轴方向带来0.33%的误差。
         
        【精度和比例尺】
         为了准确显示地图,除了地图映射我们还需要指定地图精度或者比例尺。在最低地图放大级别(1级),地图是512 x 512像素。每下一个放大级别,地图的高度和宽度分别乘于2:2级是1024 x 1024像素,3级是2048 x 2048像素,4级是4096 x 4096像素,等等。通常而言,地图的宽度和高度可以由以下式子计算得到:
        map width = map height = 256 * 2^level pixels
         
        地图精度表示屏幕上每个像素所代表的实际距离,例如精度为10m,表示每个像素代表10m的距离。在每个放大级别(Xoom Level)和不同纬度下,地图的精度都是不同的。假设地球直径为6378137米,地图精度(米/像素)可以由如下式子计算得到:
        ground resolution = cos(latitude * pi/180) * earth circumference / map width

        = (cos(latitude * pi/180) * 2 * pi * 6378137 meters) / (256 * 2^level pixels)

        地图比例尺是指测量相同目标时,地图上距离与实际距离的比例。例如,在地图比例尺为1:10万时,地图上每厘米代表地面距离为10万厘米。和地图精度一样,比例尺也随着地图放大级别和纬度的不同而不同。假设屏幕的分辨率为96dpi,比例尺可以由如下式子计算得到:

        map scale = 1 : ground resolution * screen dpi / 0.0254 meters/inch

        = 1 : (cos(latitude * pi/180) * 2 * pi * 6378137 * screen dpi) / (256 * 2^level * 0.0254)

        下表显示了在赤道上,不同放大级别下对应的地图精度和比例尺:

        October 06

        理解地图的比例和精度

        国庆赋闲在家,顺手看看几篇文章,拿来翻译并和大家分享一下。今天主要聊聊地图上的比例尺和经纬度。其实我曾经也有这样的问题,我们常常提起说必应地图(Bing Maps)提供的北京地区卫星图片的精度是1m,这到底意味着什么?我们在地图右下角经常看见一个比例尺,又代表什么意思?
         
        我们都知道地球是圆的,确切的说还不是一个规则的全球,而我们每天看的电子地图包括纸质地图是平面的。为了方便,我们必须牺牲一定的精确性,将不规则球体映射成平面,这就是我们现在所看到的最常用的墨卡托映射(Mercator Projection),包括必应地图在内的几乎所有的电子地图都采用Mercator projection。采用Mercator projection的好处就是,假设我们在海上航行,按照罗盘的指示一直往前走,对应在平面地图上也是一条直线,虽然实际上在球体上走的是一个空间曲线。
         
        当然Mercator Projection也会有问题,因为它采用平行的经线和纬线,这意味着经线或纬线上的一度对应的距离是相等的。但是在地球体上,赤道和两极上一度的距离显然是不等的。采用Mercator Projection的好处是它令我们可以更容易绘制和理解地图。
         
        【如何计算分辨率】

        地图的分辨率是由纬度、放大级别和常量组成的一个等式。在任何纬度和放大级别,地图精度可以由以下等式表示:

        Map resolution = 156543.04 meters/pixel * cos(latitude) / (2 ^ zoomlevel)

        此处zoomlevel值为1至19之间的整数,latitude为-90至+90。距离两极越近,这个等式的误差越大。这正是Mercator Projection所带来的问题。从这个等式,我们大概可以计算每个放大级别下,屏幕上每个像素所代表的距离比例(赤道上):

        需要注意的是,在不同的纬度下,上图的比例是会发生变化的。例如在加拿大多伦多(Toronto,维度43.65),地图放大级别为13,地图精度约为19.11 * cos(43.65)或13.8 meters/pixel。

        【如何计算比例尺】

        大多数时候,我们更关注地图比例尺,因为我们比较习惯于固定比例的地图,例如1:5000,即地图上1厘米对应地球上50米。为了计算比例尺,你需要知道屏幕分辨率、地图放大级别,以及维度值。并且,我们假设屏幕的分辨率是固定的,在x和y坐标方向是相等的。比例尺计算等式如下:

        Map scale = 1 : (ScreenRes pixels/inch * 39.37 inches/meter * 156543.04 meters/pixel * cos(latitude) / (2 ^ zoomlevel))

        例如,假设屏幕的分辨率为85/英寸,地图放大级别为13,你可以得到比例尺为1 : 85 * 39.37 * 19.11或1 : 63950。

        虽然大多数时候我们不需要自己计算比例尺或地图精度,因为这通常由微软必应地图在后台完成。但是当你在做某些应用开发时可能需要考虑,比如汽车导航或计算距离。

        September 24

        必应地图讲座webcast

        微软会不定期的组织必应地图的在线讲座,介绍一些开发入门、不同行业的解决方案,甚至一些合作伙伴的demo等等。遗憾的是整个讲座都是英文的,并且通常时间都安排在回笼觉之前。不过反正是免费的,就当是练习英语听力了,顺便看图说话一下,七七八八的也能猜个大概。
        下面是讲座的通告,又可以练习阅读理解了Tongue out来微软之后发现英文水平又涨进了。

        On October 8, 2009 - the Bing Maps for Enterprise team is conducting a Level 100 webcast focused on Bing Maps as a visualization tool for SharePoint content: 

         

        Momentum Webcast: Use Bing Maps with SharePoint Server for a Better View of Your Business

         

         

        Chris Pendleton will deliver this webcast with Microsoft partners -  IDV Solutions, SpeakTech, and Habanero Consulting – who will demonstrate how they have integrated SharePoint and Bing Maps to deliver compelling solutions for their customers.

         

        Please see the attached invitation for you to send to customers & prospects.  We would like to invite business and technical decision makers  to attend the webcast, showing the benefits of bringing business intelligence to life using Bing Maps with Sharepoint.

         

        The webcast occurs less than two weeks before the upcoming Microsoft SharePoint Conference 2009 (10/19-22, Las Vegas).  Chris Pendleton & Eric Waldman are conducting a Bing Maps session at this conference.  As a prelude, please encourage your customers to register for this October 8th webcast.

         

         

        ·         Yes, this webcast will be available on demand post 10/8 (same link as above)

        ·         Yes, the Sharepoint product team is promoting this webcast on their home page under ‘Featured News’.

        ·         www.microsoft.com/maps home page has a direct link to register for this webcast

         

         

        Please let me know if you have further questions. 

        以上洋文大致可以翻译为:不参加这次讲座,人生就不完整了。Embarrassed

        September 22

        必应地图(Bing Maps)一些有意思的应用

        最近看到了一些很有意思的应用,都是基于微软必应地图(Bing Maps)的,和大家分享一下。
        1)微软亚洲研究院开发的旅游指南(http://travel.msra.cn/)
        这个网站采用了必应地图(Bing Maps)、必应搜索和SilverLight技术,且不说内容如何,界面就非常简洁清新。用户可以根据地点、时间搜索当地的旅游景点,美食小吃,游记攻略,旅游路线,以及酒店预订、车票预订等等。该网站目前还处于测试阶段,值得期待。
         
        该网站也是采用了必应地图(Bing Maps)和SilverLight技术,实现了放大镜效果。当用户移动放大镜时,该地区自动放大显示。而且该网站还可以让用户选择叠加不同的地图数据,这对我们开发别的行业应用很有启发。可以在必应地图上显示铁路路网图,河流水文图,甚至历史地图等等。
         
        3)Drawing by SoulSolutions(http://drawing.soulsolutions.com.au/
        这个网站内容很简单,给大家提供了一个很有意思的画多边形区域和折线的方法,大家可以借鉴一下。
         
        4)GeoDemo by SoulSolutions(http://www.minus34.com/geodemo/
        好像现在很多做的很酷的网站都采用了SilverLight技术。这个网站主要用户显示人口统计数据。当鼠标搁在某个地区时,左侧信息栏自动显示该地区的人均收入、房价水平等各类信息。现在比较流行数据可视化(Data Visualization)的概念,将传统的地理相关的数据通过与地图结合呈现出来,而不是单调的用报表展示。