html
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<title>Cesium 加载福建天地图</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cesium@1.119.0/Build/Cesium/Widgets/widgets.css" />
<script src="https://cdn.jsdelivr.net/npm/cesium@1.119.0/Build/Cesium/Cesium.js"></script>
<style>
html,
body,
#cesiumContainer {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
</style>
</head>
<body>
<div id="cesiumContainer"></div>
<script>
// 如果福建天地图服务需要密钥,请填入(部分省级服务可能无需密钥)
const TK = '';
const viewer = new Cesium.Viewer('cesiumContainer', {
baseLayer: false, // 不加载默认底图,避免 Ion Token 报错
baseLayerPicker: false,
geocoder: false,
homeButton: false,
sceneModePicker: false,
navigationHelpButton: false,
animation: false,
timeline: false,
fullscreenButton: false,
infoBox: false,
selectionIndicator: false,
});
viewer.imageryLayers.removeAll();
/**
* 创建福建天地图 WMTS 图层
* @param {string} serviceName 服务路径,如 'img_fj'、'cia_fj'
* @param {string} layerName 图层名,如 'img'、'cia'
*
https://s0.fjmap.net/cia_fj/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia_fj&STYLE=cia_fj&TILEMATRIXSET=Matrix_0&TILEMATRIX=15&TILEROW=5709&TILECOL=27089&FORMAT=image/tile
*/
function createFujianTdtLayer(serviceName, layerName) {
// 拼接可选密钥
const tkParam = TK ? `&tk=${TK}` : '';
//service.fjmap.net,s0.fjmap.net:img_fj_2025
return new Cesium.WebMapTileServiceImageryProvider({
url: `https://s0.fjmap.net/${serviceName}/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=${layerName}&STYLE=cia_fj&FORMAT=image/tile&TILEMATRIX={TileMatrix}&TILEROW={TileRow}&TILECOL={TileCol}${tkParam}`,
layer: layerName,
tileMatrixSetID: 'default028mm', // 福建天地图矩阵集ID,需以 GetCapabilities 为准
maximumLevel: 21,
// 关键配置1:省级天地图通常使用 CGCS2000 (EPSG:4490) 地理坐标系
tilingScheme: new Cesium.GeographicTilingScheme({
numberOfLevelZeroTilesX: 2,
numberOfLevelZeroTilesY: 1,
}),
// 关键配置2:天地图层级从 1 开始,需显式指定矩阵标签
tileMatrixLabels: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21'],
});
}
// 加载福建影像底图
viewer.imageryLayers.addImageryProvider(createFujianTdtLayer('img_fj', 'img'));
// 加载福建影像中文注记
viewer.imageryLayers.addImageryProvider(createFujianTdtLayer('cia_fj', 'cia'));
// 定位到福建省
viewer.camera.setView({
destination: Cesium.Cartesian3.fromDegrees(118.0, 26.0, 150000),
});
</script>
</body>
</html>
仅用于学习记录,各地方key使用各不相同,山东省要单独申请key值,且个人使用量比较小。福建的就用天地图的key就能用
相关链接:资源中心,详情