Cesium 叠加天地图

编程入门 行业动态 更新时间:2024-10-09 05:21:56

Cesium 叠加<a href=https://www.elefans.com/category/jswz/34/1769183.html style=天地图"/>

Cesium 叠加天地图

Cesium 叠加天地图-中国近海海洋等深面图层服务

    • 核心代码
    • 完整代码:
    • 在线示例

偶然发现天地图有一个近海海洋图层,觉得不错,于是尝试叠加一下,花费了一些时间,叠加成功,这里分享一下。

本文包括核心代码、完整代码以及在线示例。

另外这里放上 Openlayers 叠加示例


核心代码

主要是 Cesium 叠加 WMTS 图层。


const subdomains = ['0', '1', '2', '3', '4', '5', '6', '7'];const token = '2b7cbf61123cbe4e9ec6267a87e7442f';const layer = new Cesium.WebMapTileServiceImageryProvider({url: "http://t{s}.tianditu.gov/shuishen_w/wmts?service=wmts&request=GetTile&" +"version=1.0.0&LAYER=shuishen&tileMatrixSet=w&TileMatrix={TileMatrix}&" +"TileRow={TileRow}&TileCol={TileCol}&style=default.jpg&tk=" + token,subdomains: subdomains,layer: "shuishen",style: "default",format: "image/jpeg",tileMatrixSetID: "GoogleMapsCompatible",show: true
})viewer.imageryLayers.addImageryProvider(layer);


完整代码:


<!DOCTYPE html>
<html lang="en">
<head><!-- Use correct character set. --><meta charset="utf-8"/><!-- Tell IE to use the latest, best version. --><meta http-equiv="X-UA-Compatible" content="IE=edge"/><!-- Make the application on mobile take up the full browser screen and disable user scaling. --><metaname="viewport"content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"/><title>Cesium tianditu</title><link rel="stylesheet" href="./popup.css" type="text/css"><script src="/examples/csdn/Cesium.js"></script><script src="./cesium_init.js"></script><script src="/examples/resources/jquery-3.5.1.min.js"></script><style>@import url(./Widgets/widgets.css);html,body,#cesiumContainer {width: 100%;height: 100%;margin: 0;padding: 0;overflow: hidden;}</style><script>var _hmt = _hmt || [];(function () {var hm = document.createElement("script");hm.src = ".js?f80a36f14f8a73bb0f82e0fdbcee3058";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm, s);})();</script>
</head>
<body>
<button id="clearFunc" onClick="clearFunc()">清空</button>
<div id="cesiumContainer"></div>
<script>// 创建三维球const viewer = init();let layer;let addLayer = function () {const subdomains = ['0', '1', '2', '3', '4', '5', '6', '7'];const token = '2b7cbf61123cbe4e9ec6267a87e7442f';layer = new Cesium.WebMapTileServiceImageryProvider({url: "http://t{s}.tianditu.gov/shuishen_w/wmts?service=wmts&request=GetTile&" +"version=1.0.0&LAYER=shuishen&tileMatrixSet=w&TileMatrix={TileMatrix}&" +"TileRow={TileRow}&TileCol={TileCol}&style=default.jpg&tk=" + token,subdomains: subdomains,layer: "shuishen",style: "default",format: "image/jpeg",tileMatrixSetID: "GoogleMapsCompatible",show: true})layer = viewer.imageryLayers.addImageryProvider(layer);// 定位到北京flyToRectangle([Cesium.Cartesian3.fromDegrees(101.06147602421068,2.63671875,0),Cesium.Cartesian3.fromDegrees(126.81342914921068,46.23046875,0),]);}addLayer();/*** @description: 飞行定位到一个矩形* @return {*}*/function flyToRectangle(RectangleCD) {// 添加定位信息RectangleCD = RectangleCD || [Cesium.Cartesian3.fromDegrees(104.15528644354428,30.752166584535513,0),Cesium.Cartesian3.fromDegrees(104.27206271917905,30.827572468324576,0),];var rec = Cesium.Rectangle.fromCartesianArray(RectangleCD);var boundingSphere = Cesium.BoundingSphere.fromRectangle3D(rec);viewer.camera.flyToBoundingSphere(boundingSphere, {duration: 5,complete: function () {},offset: {heading: Cesium.Math.toRadians(0.0),pitch: Cesium.Math.toRadians(-90),range: 0.0,},});}let clearFunc = function () {layer && viewer.imageryLayers.remove(layer);}</script>
</body>
</html>

在线示例

Cesium 在线示例:Cesium 叠加天地图-中国近海海洋等深面图层服务

更多推荐

Cesium 叠加天地图

本文发布于:2024-02-27 18:41:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1765850.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:天地   Cesium

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!