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話。同時支持旋轉角度,更改仰角,讓地圖“活”起來。如下圖

clip_image002

圖1. Windows Phone 8 高德地圖SDK

4. 更真實:在一定zoom(地圖的層級)級別以下,便會出現樓塊信息。真實體現了現實情況。如下圖

clip_image004

圖2. 高德地圖Windows Phone 8 版本

易於使用的多線程

與此同時,微軟給C++帶來了task。task 是用於異步操作的一個類。在地圖中我們使用的最多的場景便是異步讀取hlsl文件,來完成DirectX 的繪制准備工作。由於讀取文件下載等耗時的操作都通過異步來完成,則可以不用讓主線程等待其完成,從而達到加快進入地圖頁面的效果。

image

圖3. 簡單的單線程演示

image

圖4. 簡單的多線程演示

同內核帶來的高代碼復用率

微軟在帶來C++的同時也更新了 Windows Phone 8的內核。使得Windows 8和Windows Phone 8 都為NT內核。這也為代碼的復用提供了便利。例如高德地圖的街景引擎(如下圖)

clip_image010

圖5 Windows Phone 8 高德地圖 街景

clip_image002

圖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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM