您的位置:首页 > 其它

Windows phone 8 学习笔记(8) 定位地图导航

2013-06-13 11:45 239 查看

Windows phone 8 学习笔记(8) 定位地图导航

Posted on 2013-06-08 09:10
lipan 阅读(626) 评论(0)

编辑 收藏



Windows phone 8 已经不使用自家的bing地图,新地图控件可以指定制图模式、视图等。bing地图的定位误差比较大,在模拟器中测试新地图貌似比较理想。本节主要讲解下位置服务以及新地图控件的使用。

快速导航:

一、定位服务

二、地图和导航

一、定位服务

通过手机定位服务可以开发利用手机地理位置的应用。我们可以通过应用监视手机行踪,配合地图使用可以用于导航等。定位服务可以及时取得手机地理位置,也可以持续跟踪手机移动,还可以在后台运行。

1. 立即获取当前位置

我们可以通过一次操作获取当前位置,下面的代码演示了实现的方法。

[C#]

?

2. 持续跟踪位置信息

如果开启持续跟踪手机位置,当手机移动距离超出设定距离时,就会触发位置改变事件,这个时候我们就可以通过环境信息计算出手机的行动轨迹,速度方向等。下面演示了如何持续跟踪。

[C#]

?

3. 在后台持续跟踪

位置跟踪可以作为服务在后台运行,这个时候我们不需要更新UI,为了使我们的应用可以作为服务运行,我们需要右键打开清单文件,选择用XML文本编辑器的方式,替换DefaultTask节点为如下信息:

[XML]

?
然后我们需要注册RunningInBackground事件,打开App.xaml添加事件Application_RunningInBackground,代码如下:

[XAML]

?
在App.xaml.cs中添加静态变量RunningInBackground和Geolocator,当Application_RunningInBackground事件时RunningInBackground为true,当Application_Activated事件时,RunningInBackground为false。代码如下:

[C#]

?
在mainpage中添加如下代码:

[C#]

?

二、地图和导航

要用到新地图控件,需要先注册,在phone:PhoneApplicationPage注册标识。

[XAML]

?

1.引入地图控件

在XAML中添加如下代码即可引入控件。我们看到Center就是指当前地图中心点的经纬度;ZoomLevel就是缩放级别; LandmarksEnabled 属性设置为 true 以在 Map 控件上显示地标; PedestrianFeaturesEnabled 设置为 true,以显示步行街构造。

[XAML]

?

2.设置制图模式

在制图模式中有四个选项,分别如下:

Road:显示正常的默认二维地图。

Aerial:显示航测图。

Hybrid:显示与道路和标签重叠的地图的“航测”视图。

Terrain:为显示的高地和水域构造(例如高山和河流)显示自然地形图像。

下面看看如何切换。

[C#]

?

3.设置颜色模式

颜色分为明和暗两种,我们看看如何实现。

[C#]

?

4.指定新视角位置

我们可以通过编程方式切换视角位置到新的经纬度,并可以指定切换时的过渡效果,这里指定的是抛物线的方式。

[C#]

?

5.定位我的位置并标记

把地图定位到我的当前位置。这个时候就需要借助定位的功能,通过定位功能获取到的经纬度实例类型不一样,需要预先做一个转换。转换类CoordinateConverter如下。

[C#]

?
然后,我们需要在地图上画一个小正方形标记我的当前位置,并把地图定位到这里。

[C#]

?

6.获取行车路线

我们还可以通过定位和地图实现导航的功能,下面演示了,从我的当前位置(光谷软件园)到指定的位置(光谷创业街)如何行车。

[XAML]

?
[C#]

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: