WP8关于对地图开发的改进
微软在2012年6月21日 发布了 Windows Phone 8的更新。带来大量的功能更新和全新的SDK。作为重头戏的部分是引入了 C++ 和 DirectX,支持native code。 这样使得众多C++ 和DirectX 现有代码库可以直接移植到Windows Phone 8 上。
强大的DirectX
我们在新版“高德地图 Windows Phone 8 SDK”使用了DirectX。DirectX给我们地图SDK带来了巨大的改进。对比之前的 Windows Phone 7 栅格版地图,带来了以下改进:
1. 更方便:DirectX 可以使用托管的方式和XAML交互,使得地图可以以一个控件的形式出现。这样便于第三方开发者使用。
2. 更流畅:由于WP8(Windows Phone 8,以下统称)的硬件规格的升级,使用DirectX 可以提供更高的绘制帧数。从而使得地图在运行的过程中显得更加流畅。能给用户提供更加优秀的体验。
3. 更灵活:DirectX 是3D的引擎,因此可以为提供之前栅格地图不能提供的3D效果。实现地图3D话。同时支持旋转角度,更改仰角,让地图“活”起来。如下图
图1. Windows Phone 8 高德地图SDK
4. 更真实:在一定zoom(地图的层级)级别以下,便会出现楼块信息。真实体现了现实情况。如下图
图2. 高德地图Windows Phone 8 版本
易于使用的多线程
与此同时,微软给C++带来了task。task 是用于异步操作的一个类。在地图中我们使用的最多的场景便是异步读取hlsl文件,来完成DirectX 的绘制准备工作。由于读取文件下载等耗时的操作都通过异步来完成,则可以不用让主线程等待其完成,从而达到加快进入地图页面的效果。
图3. 简单的单线程演示
图4. 简单的多线程演示
同内核带来的高代码复用率
微软在带来C++的同时也更新了 Windows Phone 8的内核。使得Windows 8和Windows Phone 8 都为NT内核。这也为代码的复用提供了便利。例如高德地图的街景引擎(如下图)
图5 Windows Phone 8 高德地图 街景
图6. Windows 8高德地图 街景
在街景的开发过程中Windows 8平台上复用了Windows Phone 8的巨大部分代码。稍加修改对C#层的接口便可正常运行。(ps. 在未来的 WP8.1后,Windows Phone 8.1 可以复用几乎所有的 Windows 8.1 的代码)。
简单,便捷的代码复用,为后续的地图移植工作提供很大的帮助。
其他功能
在Windows Phone 8中,微软加入了 SD卡的支持,这方便了我们把地图的离线地图存在SD卡中。不仅方便用户管理(可自行操作SD卡删除地图),还能节省手机本身的存储空间。目前只有Nokia地图的离线数据可以存储在SD卡上。
语音输入作为信息录入的辅助功能,能够为部分使用场景(例如行车导航中语音搜索)提供强大的帮助。在Windows Phone 8中,微软为中文提供了语音识别的功能,增强了中文环境下的地图体验。
据泄露的WP8.1 SDK,新增了地理围栏(Geofence)API,这一API在Win8上已经有了,扩大了基于位置服务应用场景,对LBS类应用有非常大的帮助。
Windows Phone 8.1的发布将更有利于我们地图的开发。
高德地图API for Windows Phone SDK :http://api.amap.com/wp8/index
WP8关于对地图开发的改进的更多相关文章
- WP8中的地图和导航
原文 WP8中的地图和导航 代码示例 源文件: Media:MapSample.zip 测试基于 SDK: Windows Phone SDK 8.0 兼容于 平台: Windows Phone 8 ...
- iOS原生地图开发指南续——大头针与自定义标注
iOS原生地图开发指南续——大头针与自定义标注 出自:http://www.sxt.cn/info-6042-u-7372.html 在上一篇博客中http://my.oschina.net/u/23 ...
- iOS原生地图开发详解
在上一篇博客中:http://my.oschina.net/u/2340880/blog/414760.对iOS中的定位服务进行了详细的介绍与参数说明,在开发中,地位服务往往与地图框架结合使用,这篇博 ...
- iOS原生地图开发进阶——使用导航和附近兴趣点检索
iOS原生地图开发进阶——使用导航和附近兴趣点检索 iOS中的mapKit框架对国际化的支持非常出色.在前些篇博客中,对这个地图框架的基础用法和标注与覆盖物的添加进行了详细的介绍,这篇博客将介绍两个更 ...
- 在WP8上搭建cocos2d-x开发环境
在WP8上搭建cocos2d-x开发环境 转自:https://github.com/koowolf/cocos-docs/blob/master/manual/framework/native/in ...
- android百度地图开发之自动定位所在位置与固定位置进行驾车,步行,公交路线搜索
最近跟着百度地图API学地图开发,先是学了路径搜索,对于已知坐标的两点进行驾车.公交.步行三种路径的搜索(公交路径运行没效果,待学习中),后来又 学了定位功能,能够获取到自己所在位置的经纬度,但当将两 ...
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
标签: Android百度地图API Key 分类: Android 百度地图开发(2) 最近自己想研究下地图,本来想研究google Map,但是申请API key比较坑爹,于是从百度地 ...
- Android 百度地图开发之一(Hello BaiDu Map)
之前也接触过百度地图的开发,但那是在网上找的案例或代码,而且是比较老的版本.打算重新学习一下百度地图的开发. 本次使用的百度地图的版本是 Android SDK v3.0.0 本篇文章主要讲述百度地图 ...
- GeoServer地图开发解决方案
转自:http://www.cnblogs.com/beniao/archive/2011/01/08/1930822.html GeoServer 是 OpenGIS Web 服务器规范的 J2EE ...
随机推荐
- [置顶] quartznet任务调度和消息调度(JAVA与C#版对比)
quartznet任务调度和消息调度 1. 作用 自动执行任务. 2. 下载地址 NET版本 JAVA版本 1下载 http://quartznet.sourceforge.net/downloa ...
- 用java读写properties文件的代码
package com.LY; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.F ...
- Sqlite 扩展功能 GET_PHONEBOOK_INDEX
在联系人数据库设计中遇到了这个函数,晚上找了半天没找到答案. GET_PHONEBOOK_INDEX This function will produce a normalized upper cas ...
- ASP.NET Core环境并运行 继续跨平台
ASP.NET Core环境并运行 继续跨平台 无需安装mono,在Linux(Ubuntu)下搭建ASP.NET Core环境 继续.NET跨平台 上一篇:使用VS Code开发ASP.NET Co ...
- java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
Myeclipse 8.6使用tomcat7时间.执行javaweb如报告了以下错误项: java.lang.NoClassDefFoundError: org/apache/juli/logging ...
- 很实用的FTP操作类
using System; using System.Net; using System.Net.Sockets; using System.Text; using System.IO; using ...
- Oracle SQL Lesson (8) - 使用集合操作符(Union,Intersect,Minus)
集合操作符UNION/UNION ALLINTERSECTMINUS Union All不排序,不去重,其余均升序且去重.create table e1 as select * from emp wh ...
- Oracle SQL Lesson (11) - 创建其他数据库对象(试图/序列/索引/同义词)
schema(模式)一个用户下一组对象的集合,一般与用户名一致. 视图 CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias].. ...
- 输入框 js正则推断输入
1.文本框仅仅能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'')" onaf ...
- fedora linux平台下搭建lighttpd+php+sqlite
(一)lighttpd 1. 安装 yum install lighttpd 安装完毕后,系统中应该多了一个用户lighttpd和组lighttpd.这个用户,默认是不同意登陆的. 我们改动/etc/ ...