`

【二】Bing Maps Silverlight 控件 之 快速上手

阅读更多
Hello,Map

最简单的地图应用莫过于只是显地图。这种快速的BingMap开发,使用SilverLight控件简直是小菜一碟。

1.打开VS2010,创建SilverLight Project。

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

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

4. 在<Grid>域中增加地图元素,如下所示:
    <Grid x:Name="LayoutRoot">
        <m:Map CredentialsProvider="Your Bing Maps Key"/>
   </Grid>


这里填入我们上面申请的Bing Maps Key,不填写的话,地图上会有一行提示,影响。现在大功告成,可以显示地图了,编译运行一下吧!



精确控制地图显示

通常一个地图应用,都需要进行诸如设置地图中心、放大级数、显示卫星地图等等的精确控制。在Bing Maps 控件里,我们可以通过在XMAL设置属性来进行控制,也可以在C#代码中进行动态的控制。


首先了解一下Map对象的属性,我们可以为Map对象增加几个属性来帮助我们初始化地图:
 
<m:Map ZoomLevel="14" Mode="AerialWithLabels" Center="39.9,116.4" CredentialsProvider="Your Bing Maps Key"></m:Map>


简单说明如下:
  • ZoomLevel:地图放大级数
  • Mode:地图模式,此处设为AerialWithLabels,即显示带路标的卫星地图
  • Center:初始显示的地图中心经纬度


BingMap提供了路况模式(Road)、卫星模式(Aerial模式分显示路标和不显示路标两种模式),控件默认加载为路况模式,既Road模式。我们还可以为路标设置渐变效果,当鼠标指向路标的时候缓慢显示出路标,离开后缓慢隐藏路标。

Microsoft还在为Bing Map提供其他有意思的模式,比如鸟瞰模式,详细另文说明。
<m:Map CredentialsProvider="Your Bing Maps Key" Name="myMap" 
         Center="39.9,116.4">
    <m:Map.Mode>
        <m:AerialMode Labels="True" FadingLabels="True" />
    </m:Map.Mode>
</m:Map>


关于Map对象的成员、属性及方法的详细描述,你可以参考
MSDN

为了提供更动态的效果,大部分程序员喜欢用C#或者VB.NET来控制地图,首先我们需要为Map对象,设置一个Name属性,比如"myMap",这样可以很方便的访问Map对象,然后就可以如此初始化地图:

myMap.Center = new Location(39.9,116.4);
myMap.Mode = new AerialMode();
myMap.ZoomLevel = 14;


这样就得到了和之前一模一样的效果。

一些常见的地图操作

输入经纬度动态定位:
this.myMap.SetView(new Location(latitude, longitude), 5);


获得当前地图中心的经纬度
this.myMap.ViewChangeOnFrame += delegate(object sender, Microsoft.Maps.MapControl.MapEventArgs e)
    {
        double longitude = this.myMap.Center.Longitude;
        double latitude = this.myMap.Center.Latitude;
    };


设置地图放大级数
this.myMap.ZoomLevel = 10;


事件

地图事件在地图应用开发中也会经常遇见,例如在地图上点击鼠标弹出一个窗口,通过键盘添加标记等等。这里我们添加一个小例子,显示当前鼠标所在的地理位置(经度、纬度)。

首先为坐标显示控件设计一个外观效果,使用Border布局,并设置了其水平靠右,垂直靠底对齐,你可以调整一下位置,让它看起来更美观些:
        <Border Background="#FF000000" CornerRadius="8,8,8,8" Padding="0,8,0,8" Opacity="0.68" MinWidth="190" MinHeight="30"
        HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,420,5,0">
            
            <TextBlock x:Name="Coords" HorizontalAlignment="Center" TextWrapping="Wrap" Foreground="White"/>
        </Border>


我们使用了一个名为Coords的TextBlock控件来显示当前鼠标指针所在的地理坐标,通过Map对象的MouseMove事件来实现坐标的显示:
        <m:Map ZoomLevel="14"  Name="myMap" Center="39.9,116.4" ... MouseMove="OnMouseMove">
....
        </m:Map>


响应的C#代码如下:
        private void OnMouseMove(object sender, MouseEventArgs e)
        {
            Point viewportPoint = e.GetPosition(this.myMap);
            Location location;
            if (this.myMap.TryViewportPointToLocation(viewportPoint, out location))
            {
                Coords.Text = String.Format("坐标: {0:f6},{1:f6}", location.Longitude, location.Latitude);
            }
        }

最后效果:



当然,地图事件还有很多,例如鼠标双击事件、鼠标滚轮事件、键盘事件等等。详情参见MSDN中的描述,基本原理都是一样的。
  • 大小: 328.6 KB
  • 大小: 19.4 KB
分享到:
评论

相关推荐

    使用 Bing Maps

    本篇将详细介绍如何在Windows Phone应用中使用Bing Maps Silverlight控件。 1. **Bing Maps 帐号注册** - 在使用Bing Maps服务前,首先需要注册一个Bing Maps帐户,以获取API密钥。这个密钥是连接应用和Bing Maps...

    bingmaps 开发实际例子

    银光(Silverlight)操作Bing Maps的核心在于Bing Maps Silverlight控件,这个控件允许开发者添加地图层、标记、路线、图层管理等功能。要开始使用,你需要在项目中引用Microsoft.Maps.MapControl库,并在XAML中添加...

    Bing Maps开发手册中文电子版(B3)

    - **Silverlight 控件**:专门针对全球地图设计了一个名为Bing Maps Silverlight Control (BMSC) 的控件,该控件基于Silverlight 3构建,用于地图显示和交互。 #### 二、开发准备与基础知识 - **开发环境**:...

    必应地图Silverlight控件

    1. Microsoft.Maps.MapControl.Common.dll:这个库包含了必应地图Silverlight控件的公共类和接口,提供地图的基本功能和数据结构。例如,它可能包括地图的坐标系统、图层管理、地理编码(将地址转换为经纬度坐标)和...

    【Silverlight】Bing Maps系列文章

    【Silverlight】Bing Maps系列文章【Silverlight】Bing Maps系列文章【Silverlight】Bing Maps系列文章【Silverlight】Bing Maps系列文章【Silverlight】Bing Maps系列文章【Silverlight】Bing Maps系列文章

    在wpf中使用bing地图控件

    Bing Maps控件提供了丰富的功能,包括地图浏览、定位、路线规划、图层叠加等,使得开发地图应用变得更加便捷。 首先,要使用Bing Maps控件,你需要在你的项目中引入Microsoft Bing Maps WPF SDK。这个SDK提供了一个...

    Silverlight_Bing_Maps地图插件

    Silverlight_Bing_Maps地图插件安装-CSDN

    Bing Maps SDK for Windows Store apps 扩展.zip

    Bing Maps SDK环境安装: 环境安装: 操作系统: Windows8 Pro 64bit (RTM) 开发工具: Microsoft Visual Studio Professional 2012(RTM) SDK: Bing Maps SDK for Windows Store apps 注:如果操作系统是...

    使用Silverlight Bing Map 加载Google Map

    将Google Maps集成到Silverlight Bing Maps中,可以让开发者利用两个平台的优势,为用户提供更加丰富的地图体验。 首先,我们需要了解开发环境的基本配置。在这个项目中,开发者使用的是Visual Studio 2010,这是一...

    【ios】BingMaps Demo

    本示例项目"【ios】BingMaps Demo"是一个演示如何在iOS应用中使用Bing Maps SDK的实例,特别适用于那些想要了解或集成Bing Maps功能的开发者。 首先,这个Demo包含了Bing Maps库的所有必要文件,这可能包括头文件、...

    Silverlight-bing map demo

    1. **地图控件集成**:在Silverlight应用中,通过引用Bing Maps SDK,可以添加地图控件到用户界面上,展示地图数据。这通常涉及到初始化地图,设置中心点、缩放级别,以及选择地图样式等。 2. **地图交互**:...

    Bing_Maps地图插件MapCruncher(Bing Maps & C# 实现)-CSDN

    Bing_Maps地图插件MapCruncher(Bing Maps & C# 实现)-CSDN

    Silverlight富媒体特效地图实例

    本实例聚焦于Silverlight在构建富媒体特效地图方面的应用,具体是利用Bing Maps服务来实现这一功能。下面我们将深入探讨Silverlight与Bing Maps的结合以及相关技术知识点。 首先,Silverlight提供了丰富的图形和...

    bing maps control

    在获取了密钥之后,接下来的步骤是熟悉 **Bing Maps AJAX 7.0 控件** 的基本用法。这包括了解如何加载地图控件、显示默认地图以及自定义地图的各种选项。 #### 二、新特性与开发指南 ##### 2.1 新特性 **Bing ...

    BingMaps.dll.mun

    BingMaps.dll

    Ldh.Maps V1.1示例

    《Ldh.Maps V1.1:Bing Maps控件的增强与应用》 Ldh.Maps是一款基于Bing Maps控件的扩展组件,它的主要目的是为了提供更丰富的地图交互功能,以满足开发者和用户的多样化需求。在V1.1版本中,Ldh.Maps进一步提升了...

    用BingMap Control 加载 google 混合地图

    3. **初始化Bing Maps Control**:使用JavaScript初始化地图控件,设置中心点、缩放级别等参数。 4. **创建地图服务代理**:编写一个JavaScript函数,作为地图服务代理,它会根据地图坐标请求Google Maps的瓦片,并...

    [Mapping] 微软 地图开发 (Bing Maps & C# 实现) (英文版)

    [Apress] 微软 地图开发 (Bing Maps & C# 实现) (英文版) [Apress] Microsoft Mapping Geospatial Development with Bing Maps and C# (E-Book) ☆ 图书概要:☆ Geospatial mapping applications have become ...

Global site tag (gtag.js) - Google Analytics