Cesium&&helloCesium(一)

在今後的一段時間準備寫一系列關於Ceisum的學習教程,Ceisum是一款開源的前端三維api,近幾年比較火。在這裏首先介紹以下如何學習一個新的地圖api,只要是地圖一類的api有一個特點需要一個容器,例如OL或者leaflet等都有一個map容器map中的構造參數,也就是整個地圖框架的核心,其他子類都是爲地圖框架服務,這樣只通過學習map就能快速掌握該地圖api的大概框架,並且抓住重點。在Ceisum中容器就是viewer,下面通過helloCeisum來介紹Viewer容器:

一、html文件

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title> Ceisum測試</title>
    <script src="../script/Cesium-1.56.1/Build/Cesium/Cesium.js"></script>
    <link href="../script/Cesium-1.56.1/Build/Cesium/Widgets/widgets.css" rel="stylesheet" />
    <style>

        html, body, #cesiumContainer {
            width: 100%;
            height: 100%;
            margin: 0;
            padding: 0;
            overflow: hidden;
        }
    </style>
</head>
<body>
    <div id="cesiumContainer"></div>
    <script src="../js/index.js"></script>
</body>
</html>

二、js文件

var viewer = new Cesium.Viewer('cesiumContainer', {
    animation: true,//是否創建動畫小器件,左下角儀表
    baseLayerPicker: false,//是否顯示圖層選擇器
    fullscreenButton: true,//是否顯示全屏按鈕
    geocoder: true,//是否顯示geocoder小器件,右上角查詢按鈕
    homeButton: true,//是否顯示Home按鈕
    infoBox: false,//是否顯示信息框
    sceneModePicker: true,//是否顯示3D/2D選擇器
    selectionIndicator: true,//是否顯示選取指示器組件
    timeline: false,//是否顯示時間軸
    navigationHelpButton: false,//是否顯示右上角的幫助按鈕
    scene3DOnly: true,//如果設置爲true,則所有幾何圖形以3D模式繪製以節約GPU資源
    clock: new Cesium.Clock(),//用於控制當前時間的時鐘對象
    selectedImageryProviderViewModel: undefined,//當前圖像圖層的顯示模型,僅baseLayerPicker設爲true有意義
    //imageryProviderViewModels: Cesium.createDefaultImageryProviderViewModels(),//可供BaseLayerPicker選擇的圖像圖層ProviderViewModel數組
    selectedTerrainProviderViewModel: undefined,//當前地形圖層的顯示模型,僅baseLayerPicker設爲true有意義
    terrainProviderViewModels: Cesium.createDefaultTerrainProviderViewModels(),//可供BaseLayerPicker選擇的地形圖層ProviderViewModel數組
    //imageryProvider: new Cesium.WebMapTileServiceImageryProvider({
    //    url: "http://t0.tianditu.com/cia_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cia&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default.jpg&tk=申請值",
    //    layer: "tdtAnnoLayer",
    //    style: "default",
    //    format: "image/jpeg",
    //    tileMatrixSetID: "GoogleMapsCompatible",
    //    show: false
    //}),//圖像圖層提供者,僅baseLayerPicker設爲false有意義
    terrainProvider: new Cesium.EllipsoidTerrainProvider(),//地形圖層提供者,僅baseLayerPicker設爲false有意義
    skyBox: new Cesium.SkyBox({
        sources: {
            positiveX: '../script/Cesium-1.56.1/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg',
            negativeX: '../script/Cesium-1.56.1/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg',
            positiveY: '../script/Cesium-1.56.1/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg',
            negativeY: '../script/Cesium-1.56.1/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg',
            positiveZ: '../script/Cesium-1.56.1/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg',
            negativeZ: '../script/Cesium-1.56.1/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg'
        }
    }),//用於渲染星空的SkyBox對象
    fullscreenElement: document.body,//全屏時渲染的HTML元素,
    useDefaultRenderLoop: true,//如果需要控制渲染循環,則設爲true
    targetFrameRate: undefined,//使用默認render loop時的幀率
    showRenderLoopErrors: false,//如果設爲true,將在一個HTML面板中顯示錯誤信息
    automaticallyTrackDataSourceClocks: true,//自動追蹤最近添加的數據源的時鐘設置
    contextOptions: undefined,//傳遞給Scene對象的上下文參數(scene.options)
    sceneMode: Cesium.SceneMode.SCENE3D,//初始場景模式
    mapProjection: new Cesium.WebMercatorProjection(),//地圖投影體系
    dataSources: new Cesium.DataSourceCollection()
    //需要進行可視化的數據源的集合
});
var imageLayer = new Cesium.WebMapTileServiceImageryProvider({
    url: "http://t0.tianditu.com/img_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=img&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=申請值",
    layer: "tdtImgBasicLayer",
    style: "default",
    format: "image/jpeg",
    tileMatrixSetID: "GoogleMapsCompatible",
    show: false
});//衛星圖層
var markLayer = new Cesium.WebMapTileServiceImageryProvider({
    url: "http://t0.tianditu.com/cia_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cia&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=申請值",
    layer: "tdtImgAnnoLayer",
    style: "default",
    format: "image/jpeg",
    tileMatrixSetID: "GoogleMapsCompatible",
    show: false
});//註記圖層
viewer.imageryLayers.addImageryProvider(imageLayer);
viewer.imageryLayers.addImageryProvider(markLayer);

三、效果圖
在這裏插入圖片描述參考博文:Ceisum.js教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章