Cesium-Examples/examples/cesiumEx/9.1.4、自定义瓦片请求.html
2025-10-20 17:56:15 +08:00

58 lines
2.2 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--********************************************************************
* by jiawanlong
*********************************************************************-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="./../../libs/cesium/Cesium1.98/Widgets/widgets.css">
<script type="text/javascript" src="./../../libs/cesium/Cesium1.98/Cesium.js"></script>
</head>
<body style="margin: 0; overflow: hidden; background: #fff; width: 100%; height: 100%; position: absolute; top: 0">
<div id="map" style="margin: 0 auto; width: 100%; height: 100%"></div>
<script>
window.viewer = new Cesium.Viewer('map', {
imageryProvider: false,
baseLayerPicker: false,
});
var xyz = new Cesium.UrlTemplateImageryProvider({
"credit": "安徽",
"url": '///data.mars3d.cn/tile/img/{z}/{x}/{y}.jpg'
})
viewer.imageryLayers.addImageryProvider(xyz)
class CustomImageryProvider extends Cesium.UrlTemplateImageryProvider {
constructor(options = {}) {
super(options)
}
requestImage(x, y, level, request) {
const rectangle = this._tilingScheme.tileXYToRectangle(x, y, level);
const west = Cesium.Math.toDegrees(rectangle.west);
const south = Cesium.Math.toDegrees(rectangle.south);
const east = Cesium.Math.toDegrees(rectangle.east);
const north = Cesium.Math.toDegrees(rectangle.north);
// 2. 构建带bbox参数的请求URL格式需与服务器约定
// 示例URL/api/image?bbox=west,south,east,north&format=png
const bbox = [west, south, east, north].join(',');
console.log(level, '-------------', x, y)
console.log(bbox)
return Promise.resolve();
}
}
const imageryProvider = new CustomImageryProvider({
url: '你的实际地图URL', // 需要替换为真实URL
minimumLevel: 1,
maximumLevel: 18, // 通常最大级别不会到111
});
let layer = viewer.imageryLayers.addImageryProvider(imageryProvider);
</script>
</body>
</html>