本文目錄一覽:
Cesium初始化選項
基於cesium開發地圖時用到的組件是:new Cesium.Viewer(container, options),container為地圖在頁面中放置位置的id,options是初始化設置的選項,包括是否顯示homeButton,動畫組件,時間軸以及底圖等。具體開發過程中用到的選項可參考官方api( )
常用的選項如下:
cesium地圖瓦片404默認顯示某張圖片
採用JavaScript的方式來載入圖片。
以Cesium默認載入的bingmapstilesystem為例。其地圖以一種四叉樹的方式進行存儲和載入。每當放大地圖時,會根據放大層級以及當前區域載入對應子層級的地圖圖片,在瀏覽器進行拼接展示。
如果考慮網路不可用的場景,就需要構建本地Maps的服務。比較可行的方案是根據url規則,將需要的地圖瓦片數據批量下載到本地伺服器,並根據quadkey和TileXY的映射關係配置路由,cesium的地圖源的請求改成從本地伺服器獲取。當前有對應腳本工具對瓦片數據進行批量下載,唯一問題是數據量有些大。中國範圍內如果地圖縮放支持到16級的衛星地圖影像,中國的地圖數據有圖片約1.17億張。放大到16級大概是下面效果,地面解析度2.39m每像素。所以如果使用此方案,需要:首先根據我們實際需要下載對應區域、對應縮放層級的瓦片數據,如國外區域只下載部分層級,國內下載到16級,避免用到的數據佔用太大。然後有足夠空間、有伺服器存放瓦片數據,同時在此伺服器上部署Maps服務,並配置好請求路由映射。最後修改cesium對應的配置,改成三維地圖圖片載入走自己部署的Maps伺服器,對應Viewer初始化時候配置imageryProvider參數。
Cesium載入在線地圖服務
互聯網的地圖服務一般有天地圖,高德地圖,百度地圖,ArcGIS地圖,OSM地圖,這裡就給大家一一列舉出來如何使用Cesium載入這些在線的地圖服務。
天地圖服務需要tk,國家地理信息公共服務平台 天地圖
百度地圖由於切片中心點位於地理坐標的(0, 0)點,所以百度地圖的載入需要使用自定義的provider,這裡是自定義的provider「鏈接」
cesium 和 Three.js有什麼區別,以及二者與WebGL 的關係
二者都是基於WebGL技術開發的js庫
Threejs受眾面比較廣,是封裝了webgl的一些底層用法,讓初學者更容易上手;例如繪製一個立方體,使用webgl原生api可能要寫50行代碼,包括構建坐標點,頂點組織、著色器等信息;在threejs裡面可能只要一句代碼就可以構建(實際上也是調用webgl原生api),只是做了更大粒度的封裝
Cesium受眾面相對較小,是Gis相關的,也是基於WebGL開發的,它主要是三維地球相關的js庫,可以展示二維地圖服務(百度高德)、傾斜攝影模型;還可以在上面做一些三維分析,可以參考
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/245594.html