Cesium案例解析(十)——CZML點


1. 概述

CZML是Cesium中用於描述動態圖形場景的JSON格式,它們的關系類似於Google Earth與KML之間的關系,一般會認為KML是一種矢量格式,但KML或者CZML絕不是矢量格式那么簡單,它可以描述線,點,廣告牌,模型和其他圖形圖元,並指定其如何隨時間變化。

CZML Point這個案例描述了如何通過CZML格式來描述一個點。

2. 案例

CZML是一種JSON格式,因此可以直接在程序中描述成對象字面量。具體實現代碼如下:

'use strict';

var czml = [{
    "id": "document",
    "name": "CZML Point",
    "version": "1.0"
}, {
    "id": "point 1",
    "name": "point",
    "position": {
        "cartographicDegrees": [-111.0, 40.0, 0]
    },
    "point": {
        "color": {
            "rgba": [255, 255, 255, 255]
        },
        "outlineColor": {
            "rgba": [255, 0, 0, 255]
        },
        "outlineWidth": 4,
        "pixelSize": 20
    }
}];

var viewer = new Cesium.Viewer('cesiumContainer');
var dataSourcePromise = Cesium.CzmlDataSource.load(czml);
viewer.dataSources.add(dataSourcePromise);
viewer.zoomTo(dataSourcePromise);

Cesium中直接定義了一個CzmlDataSource對象處理Czml,通過load函數返回了一個CzmlDataSource的Promise。然后將其加入到Viewer成員變量dataSources,它是一個DataSource數據源的集合DataSourceCollection。DataSourceCollection的add函數能夠接受CzmlDataSource的Promise,也就是一旦CZML被正確讀取,就會加載到視景器Viewer中。

這里的CZML定義也是比較直觀的:

  1. 屬性cartographicDegrees表示點的位置由經度、緯度以及高程來表示,且以度為單位;
  2. color表示點的顏色;
  3. outlineColor表示點的邊框顏色;
  4. outlineWidth表示點的邊框寬度;
  5. pixelSize表示點的像素大小。

3. 結果

最后的顯示效果如下:
imglink1


免責聲明!

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



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