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
分享到:
相关推荐
本篇将详细介绍如何在Windows Phone应用中使用Bing Maps Silverlight控件。 1. **Bing Maps 帐号注册** - 在使用Bing Maps服务前,首先需要注册一个Bing Maps帐户,以获取API密钥。这个密钥是连接应用和Bing Maps...
银光(Silverlight)操作Bing Maps的核心在于Bing Maps Silverlight控件,这个控件允许开发者添加地图层、标记、路线、图层管理等功能。要开始使用,你需要在项目中引用Microsoft.Maps.MapControl库,并在XAML中添加...
- **Silverlight 控件**:专门针对全球地图设计了一个名为Bing Maps Silverlight Control (BMSC) 的控件,该控件基于Silverlight 3构建,用于地图显示和交互。 #### 二、开发准备与基础知识 - **开发环境**:...
此外,结合使用 Bing Maps Silverlight 控件和 Bing Maps SOAP 服务,还可以创建包含增强地图体验的应用程序。 #### 实验目标 本实验旨在帮助参与者达到以下几个目标: - 熟悉 Bing Maps for Windows Phone 的基本...
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系列文章
Bing Maps控件提供了丰富的功能,包括地图浏览、定位、路线规划、图层叠加等,使得开发地图应用变得更加便捷。 首先,要使用Bing Maps控件,你需要在你的项目中引入Microsoft Bing Maps WPF SDK。这个SDK提供了一个...
Silverlight_Bing_Maps地图插件安装-CSDN
Bing Maps SDK环境安装: 环境安装: 操作系统: Windows8 Pro 64bit (RTM) 开发工具: Microsoft Visual Studio Professional 2012(RTM) SDK: Bing Maps SDK for Windows Store apps 注:如果操作系统是...
将Google Maps集成到Silverlight Bing Maps中,可以让开发者利用两个平台的优势,为用户提供更加丰富的地图体验。 首先,我们需要了解开发环境的基本配置。在这个项目中,开发者使用的是Visual Studio 2010,这是一...
本示例项目"【ios】BingMaps Demo"是一个演示如何在iOS应用中使用Bing Maps SDK的实例,特别适用于那些想要了解或集成Bing Maps功能的开发者。 首先,这个Demo包含了Bing Maps库的所有必要文件,这可能包括头文件、...
1. **地图控件集成**:在Silverlight应用中,通过引用Bing Maps SDK,可以添加地图控件到用户界面上,展示地图数据。这通常涉及到初始化地图,设置中心点、缩放级别,以及选择地图样式等。 2. **地图交互**:...
Bing_Maps地图插件MapCruncher(Bing Maps & C# 实现)-CSDN
本实例聚焦于Silverlight在构建富媒体特效地图方面的应用,具体是利用Bing Maps服务来实现这一功能。下面我们将深入探讨Silverlight与Bing Maps的结合以及相关技术知识点。 首先,Silverlight提供了丰富的图形和...
在获取了密钥之后,接下来的步骤是熟悉 **Bing Maps AJAX 7.0 控件** 的基本用法。这包括了解如何加载地图控件、显示默认地图以及自定义地图的各种选项。 #### 二、新特性与开发指南 ##### 2.1 新特性 **Bing ...
BingMaps.dll
《Ldh.Maps V1.1:Bing Maps控件的增强与应用》 Ldh.Maps是一款基于Bing Maps控件的扩展组件,它的主要目的是为了提供更丰富的地图交互功能,以满足开发者和用户的多样化需求。在V1.1版本中,Ldh.Maps进一步提升了...
3. **初始化Bing Maps Control**:使用JavaScript初始化地图控件,设置中心点、缩放级别等参数。 4. **创建地图服务代理**:编写一个JavaScript函数,作为地图服务代理,它会根据地图坐标请求Google Maps的瓦片,并...
[Apress] 微软 地图开发 (Bing Maps & C# 实现) (英文版) [Apress] Microsoft Mapping Geospatial Development with Bing Maps and C# (E-Book) ☆ 图书概要:☆ Geospatial mapping applications have become ...