WP8中的地图和导航

简介: 原文 WP8中的地图和导航   代码示例 源文件: Media:MapSample.zip 测试基于 SDK: Windows Phone SDK 8.0 兼容于 平台: Windows Phone 8 and laterWindows Phone 8 文章 由 Xinx Go...

原文 WP8中的地图和导航

 

代码示例
源文件:   Media:MapSample.zip

测试基于
SDK: Windows Phone SDK 8.0

兼容于
平台: Windows Phone 8 and later
Windows Phone 8

文章
  Xinx Gong  在 30 Nov 2012 创建
最后由   hamishwillee  在 26 Jun 2013 编辑

 

Contents

 

地图控件

 

WP8中,可以使用新的Map APIs来开发基于地图的应用,并可以包含位置以及搜索功能。WP8中使用的是诺基亚地图,WP7.1中的Bing地图仍然支持,但是不推荐使用,它仅仅是为了兼容使用了已经Bing地图的WP7.1应用。

 

显示地图

 

WP8中使用Map控件来显示地图,使用之前你需要关注下面几件事:

 

1.Map控件和服务使用的namespace

 

Microsoft.Phone.Map

 

2.XAML文件中使用Map控件需要的xmlns声明

 

xmlns:maps="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps"

 

3.WMAppManifest.xml中需要添加ID_CAP_MAP功能

 

指定地图的中心点和缩放比

 

在初始化Map控件时,CenterChanged和ZoomLevelChanged事件会被触发一次,所以要确定你的代码在初始化Map控件初始化触发这两个事件时能正确的处理好。 注意不要用Latitude和Longitude属性来设置Center,需要创建GeoCoordinate对象来设置。

 

用Map.SetView动态的调整地图

 

如果直接通过设置Map的属性来调整地图,地图的变化非常生硬,而采用SetView来调整地图的话,会有一个很流畅的动画效果来展示地图的变化。

 

通过SetView方法可以调整以下属性:

 

GeoCoordinate center:地图显示的中心点
double zoomLevel:地图显示的缩放级别
double heading:地图旋转的角度,值在0-360之间。

double pitch:地图倾斜的角度,值在0-180之间。

LocationRectangle boundingRectangle:地图上由两个经纬度坐标标识的一个矩形区域。
MapAnimationKind animationKind:地图发生变化时的过度动画效果。

 

地图制图模式

 

MapCartographicMode.Road: 显示普通的2D地图(默认显示)。
MapCartographicMode.Aerial: 显示航空摄影的地图。
MapCartographicMode.Hybrid: 显示带有道路和标签的鸟瞰地图。
MapCartographicMode.Terrain: 显示物理3D地图,带有海拔和水的特性,比如山脉和河流。

 

地图颜色模式

 

MapColorMode.Light:白天模式
MapColorMode.Dark:夜间模式

 

显示地标和行人特性

 

地标:设置Map控件的LandmarksEnabled属性为true。
只有在Map控件的ZoomLevel大于7时才能显示。
行人特性:设置Map控件的PedestrianFeaturesEnabled属性为true。
只有在Map控件的ZoomLevel大于16时才能显示。

 

地图服务

 

通过经纬度查找地址信息

 

ReverseGeocodeQuery

 

ReverseGeocodeQuery reverseGeocodeQuery = null;
if (reverseGeocodeQuery == null || !reverseGeocodeQuery.IsBusy)
{
reverseGeocodeQuery = new ReverseGeocodeQuery();
reverseGeocodeQuery.GeoCoordinate = new GeoCoordinate(39.92, 116.46);
reverseGeocodeQuery.QueryCompleted += reverseGeocodeQuery_QueryCompleted;
reverseGeocodeQuery.QueryAsync();
}
 
private void reverseGeocodeQuery_QueryCompleted(object sender,
QueryCompletedEventArgs<IList<MapLocation>> e)
{
if (e.Error == null)
{
...
}
}

 

查找某一地点的经纬度

 

GeocodeQuery

 

GeocodeQuery geocodeQuery = new GeocodeQuery();
geocodeQuery.SearchTerm = searchTerm;
// Can search with a nearby coordinate, or ignore the parameter.
geocodeQuery.GeoCoordinate = nearbyCoordinate == null ? new GeoCoordinate(0, 0) : nearbyCoordinate;
geocodeQuery.QueryCompleted += geocodeQuery_QueryCompleted;
geocodeQuery.QueryAsync();
 
private void geocodeQuery_QueryCompleted(object sender,
QueryCompletedEventArgs<IList<MapLocation>> e)
{
if (e.Error == null)
{
...
}
}

 

路线规划

 

RouteQuery

 

RouteQuery routeQuery = new RouteQuery();
// TravelMode: Driving or Walking.
routeQuery.TravelMode = TravelMode.Driving;
// List<GeoCoordinate>: List of geocoordinates representing the route.
routeQuery.Waypoints = route;
routeQuery.QueryCompleted += routeQuery_QueryCompleted;
routeQuery.QueryAsync();
 
private void routeQuery_QueryCompleted(object sender,
QueryCompletedEventArgs<Route> e)
{
if (e.Error == null)
{
...
}
}

 

离线地图管理

 

MapDownloaderTask task = new MapDownloaderTask();
task.Show();

 

示例代码下载

 

File:MapSample.zip

 

 

目录
相关文章
|
9月前
|
定位技术 API
Cesium开发:限制地图浏览范围
Cesium开发:限制地图浏览范围
386 1
|
11月前
|
数据挖掘
你需要的导航网站,这里都有
1、书享家(电子书资源导航)http://shuxiangjia.cn/ 2、学吧导航(自学资源导航)https://www.xue8nav.com/ 3、科塔学术(学术资源导航)https://site.sciping.com/
349 0
|
前端开发 JavaScript 定位技术
基于OpenLayers实现导航地图上(起/终)点的交互式图标显示
基于OpenLayers实现导航地图上(起/终)点的交互式图标显示
224 0
基于OpenLayers实现导航地图上(起/终)点的交互式图标显示
|
前端开发 容器
Bootstrap教程(20)--选项卡式导航、胶囊式导航、面包屑导航
本文目录 1. 概述 2. 选项卡式导航 2.1 普通选项卡导航 2.2 等宽选项卡导航 3. 胶囊式导航 3.1 普通胶囊式导航 3.2 垂直胶囊式导航 4. 面包屑导航 5. 小结
643 0
Bootstrap教程(20)--选项卡式导航、胶囊式导航、面包屑导航
|
算法 安全
一句话次导航相关问题
一句话次导航相关问题,SEOer必看: 1、次导航锚文本里,我可以做几个词? 没有一句话次导航的情况下,最多写3个。如果认真写了一句话次导航,则里面可以包含5-8个。不要超过10个。 2、如果主导航上有了某个关键词,我需要在次导航上再做吗?
114 0
|
XML 数据采集 搜索推荐
网站地图有什么好处?sitemap地图怎么生成?
网站地图,又称站点地图,可以理解为包含网站中所有页面链接的容器,主要帮助搜索引擎快速抓取网站中的所有页面。很多新人可能对地图了解不够。今天网站地图目录网详细讲讲制作网站地图的好处,以及如何制作Sitemap地图。
网站地图有什么好处?sitemap地图怎么生成?
|
定位技术
openlayers加载bing地图
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gisdoer/article/details/82961448 openlaye...
1439 0
导航
原文:导航 切换动画,相关的过渡动画,是淡入淡出的效果 private void Frame_Navigating(object sender, NavigatingCancelEventArgs e) { if (Content != nul...
996 0