转载于 http://www.developer.nokia.com/Community/Wiki/WP8%E4%B8%AD%E7%9A%84%E5%9C%B0%E5%9B%BE%E5%92%8C%E5%AF%BC%E8%88%AA

地图控件

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

windows phone:WP8中的地图和导航相关推荐

  1. 在ios6中调用苹果地图用于导航 (地图开发)

    ios6以下我们一般用google地图来导航,但ios6中调用会有点问题,会打开web浏览器再询问之类的,不直观友好.所以在ios6中建议直接用apple map.本来调用apple map应该和调用 ...

  2. 微信小程序中实现地图导航

    <map id="map" longitude="116.715790" latitude="23.362490" markers=& ...

  3. 微信小程序中使用腾讯地图,导航到目的地

    1.效果图如下:(点击地图可导航,从用户当前位置到目的地) 2. wxml文件中 (1)目标地址location <!-- 地址 --> <view class='loc'>& ...

  4. SLAM无人车计算地图坐标,ros中计算地图坐标,rosweb计算画布对应的坐标(含代码,含公式,超详细),开发跨系统地图导航必备算法【可实现qt,android,c#,mfc,html等地图开发】

    ros中计算地图坐标,rosweb计算画布对应的坐标 视频讲解: SLAM无人车计算地图坐标,图片像素坐标公式推导 1.订阅话题 /map nav_msgs::OccupancyGrid 这个消息中可 ...

  5. server.transfer 无法跳转页面_H5 腾讯地图无法导航

    uni-app 打包H5腾讯地图无法导航 前言: 最近几天用uni-app开发安卓和iOS应用,打包成APP安装包后,APP内做地图导航没有问题,APP内使用的是高德地图:但是打包成为H5页面后,运行 ...

  6. H5 腾讯地图无法导航

    uni-app 打包H5腾讯地图无法导航 前言: 解决方案如下: 具体使用查看二维码 前言: 最近几天用uni-app开发安卓和iOS应用,打包成APP安装包后,APP内做地图导航没有问题,APP内使 ...

  7. CMRNet++:在激光雷达地图中与地图和相机无关的单目视觉定位

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 编辑丨当SLAM遇见小王同学 声明: 本文只是个人学习记录,侵权可删.论文版权与著作权等全归原作者所有 ...

  8. 不用地图如何导航?DeepMind提出新型双路径强化学习「智能体」架构

    来源:deepmind.arXiv 作者:Piotr Mirowski.Matthew Koichi Grimes.Mateusz Malinowski.Karl Moritz Hermann.Kei ...

  9. 关于ASP.NET 中站点地图sitemap 的使用【转xugang】

    关于ASP.NET 中站点地图sitemap 的使用 SiteMapPath 控件简介 SiteMapPath 控件是一种站点导航控件,反映了SiteMap 对象提供的数据.它提供了一种定位站点的方式 ...

最新文章

  1. 使用AWSTATS自动分析Nginx日志
  2. 成功解决TypeError: take() got an unexpected keyword argument ‘fill_value‘
  3. java 删除文件失败_java 文件删除失败(被进程占用)
  4. 清华大学人工智能研究院成立自然语言处理与社会人文计算研究中心
  5. 蓝牙配对码配置错误_安卓系统蓝牙配对流程分析
  6. SIP 中的Dialog,call,session 和 transaction .
  7. java 输出三位数和n位数的每一位的数
  8. kubernetes精华问答 | Swarm和K8S的共同点有哪些?
  9. python 从入门到实践 pdf_python入门基础实践课,带你有效的学习python
  10. as模拟器文件夹路径,Android Studio 配置模拟器AVD存放路径(默认在c盘,解决c盘空间不够问题)...
  11. 大数据_Flink_数据处理_运行时架构5_slot和任务调度---Flink工作笔记0020
  12. C#/ASP.NET完善的DBHelper,配套Model生成器
  13. 学python能做什么-学Python后到底能干什么?网友:我太难了
  14. Java中的求和公式_Sympy codegen:求和索引函数
  15. html手机端富文本,移动端富文本踩坑
  16. 个人股东股权转让涉税问题初探
  17. 第一章 Python基础
  18. ChatGPT初体验——开发好帮手
  19. 推式配货(Push)、拉式配货(Pull)和配送需求计划(DRP)的区别
  20. CPU个数、CPU核心数、CPU线程数

热门文章

  1. UG模具设计之汽车特斯拉车灯与后备箱规律边境构建技巧
  2. moo0_使用Moo0文件粉碎器轻松粉碎文件
  3. 一文详解单目VINS论文与代码解读目录
  4. cmd package install-create -r -t -S returns error
  5. 关于Spring5.3之后StringUtils.isEmpty被弃用
  6. Android宠领养社区(源码+视频教程)
  7. Redis设计与实现学习记录《一》
  8. 只有学历没有学位证的研究生_没有研究生学位就进入数据科学
  9. servu用户信息如何导出_购买1条人脸信息只需5毛钱!人脸识别智能锁如何坚守用户信息安全高地?...
  10. 教你如何快速突破TikTok限流--TK领航社tiktok苹果版安卓版下载教程