最近在研究B(百度)A(高德)T(天地圖)T(騰訊)這類在線地圖的優點是不用 自己架設地圖服務,在線底圖直接訪問,大部分還提供了3D建築,可以直接
通過API接口訪問,不需要自己制作三維建築模型。這一類地圖接口的優點就是上手快,地圖數據、接口都是開箱即用的。
當然也有不太友好的地方,比如想要的各種接口和效果,有的是出不來的。而且感覺百度地圖API文檔本身就比較混亂,很多API接口是官方提供的,有的接口是在Demo里面顯示的,有的效果是開源示例
里的,而且它的示例中是包括2D的JavaScriptAPI3.0 和 3D JavaScript GLAPI 1.0 的內容,如果不仔細看代碼,直接拿來就用,可能會出現各種問題。
百度地圖API開發系列:
另外地圖可視化系列,能夠處理大數據量對象以及呈現更酷炫的效果,
在我的源碼中已經加入了對應的效果實現代碼。可以查看我的另外一篇文章
百度地圖(42)-mapV
百度地圖(43)-mapVGL
當然你也可以參考官方文檔,示例
http://lbsyun.baidu.com/solutions/mapvdata
另外針對項目需要,對比一下 2D API 版本 3.0 和 3D API 版本 1.0 出來的效果。
1. 地圖顯示
首先對比一下底圖效果
API 3.0 為 2D 視圖,和普通的官網地圖以及手機常用地圖類似。支持常用的縮小放大移動等功能。
GL API1.0 為3D效果,地圖添加了三維白模建築模型,支持縮小放大平移,同時增加了視角來支持三維查看。
2. 地圖類型
2D API 3.0 支持矢量圖(參考1)和衛星圖
3D GL API 1.0 地圖3D和地球模式 , 地球模式其實和 2D中的衛星圖類似,只是增加了視角模式支持三維查看。
3. 個性化地圖
2D API 3.0 和 3D GL API 1.0 都支持百度地圖的自定義個性化地圖。 包括支持 在 Android 和 iOS SDK 中使用。
4. 標注
2D API 3.0 中可展示對象的標注。 標注內容支持文本框和矢量對象,支持overLayer實例。
3D API 1.0 中目前支持文本標注。
3D API 1.0
4. 信息框(富標注)
2D API 3.0 支持對象的信息展示,信息內容可以為文本以及 html 內容, 信息框每次只能顯示一個。
2D 富標注支持 Overlayer 的實例,可以自定義為更加豐富的內容。如富標注。
並且支持多個信息框同時顯示,可用於多個泵站或者對象同時顯示內容,如運行狀態,設備參數等。
3D API 1.0 支持文本或者html內容的信息框顯示,只能同時顯示一個信息框,且不支持overlayer 實例。無法支持同時顯示多個信息框。
5. 聚合
2D API3.0 支持點聚合,聚合樣式較為好看,並且支持點擊聚合標簽后,自動縮放到聚合的對象所在的區域內。聚合調用BMapLib.MarkerClusterer
http://lbsyun.baidu.com/index.php?title=jspopular3.0/guide/conflux
3D GL1.0 支持聚合,聚合樣式較為簡單,且不支持點擊自動縮放所在區域。感覺比較生硬。聚合調用 mapvgl.ClusterLayer。
https://mapv.baidu.com/gl/examples/editor.html#point-cluster.html
6. 軌跡(路書)
軌跡路線顯示,從視覺效果上查看,GL1.0API應該稍微好點。 API 3.0 能基本滿足功能需要。
2D API 3.0 http://api.map.baidu.com/library/LuShu/1.2/examples/LuShu.html
3D API 1.0
http://lbsyun.baidu.com/index.php?title=jspopularGL/guide/trackAnimation
總結:
從上面的表格可以看出,2D 和 3D API 在功能和顯示上,各有優缺點,但是每個單獨的 API 都不能單獨完美的將這些功能需求結合在一起,在實際開發中
還需要根據功能需求來進行判斷。
項目中使用兩種API作出來的效果:
2D API
3D API
另外作為地圖B(百度地圖)A(阿里下的高德地圖)T(騰訊地圖)三甲行列,百度地圖里竟然不能不能搜索已加載圖層里的內容,這是我沒有想到的。
你可以通過它的接口搜索POI信息,可以進行路線規划甚至導航,但是搜不到圖層數據,有點想不明白(雖然可以自己寫后台接口實現)。
這也許就是 BAT 與開源軟件的差別吧。