mirror of
https://github.com/jiawanlong/Cesium-Examples.git
synced 2025-07-04 15:17:36 +00:00
114 lines
5.2 KiB
HTML
114 lines
5.2 KiB
HTML
<!--********************************************************************
|
|
* 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 type="text/javascript">
|
|
|
|
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3ZjQ5ZGUzNC1jNWYwLTQ1ZTMtYmNjYS05YTY4ZTVmN2I2MDkiLCJpZCI6MTE3MTM4LCJpYXQiOjE2NzY0NDUyODB9.ZaNSBIfc1sGLhQd_xqhiSsc0yr8oS0wt1hAo9gbke6M'
|
|
const viewer = new Cesium.Viewer('map', {});
|
|
viewer.camera.setView({
|
|
destination: Cesium.Cartesian3.fromDegrees(117.277002, 36.211374, 500952),
|
|
});
|
|
|
|
// 开启帧率
|
|
viewer.scene.debugShowFramesPerSecond = true;
|
|
function getOptions(item) {
|
|
var opts = {};
|
|
for (var key in item) {
|
|
var value = item[key];
|
|
if (value == null) continue;
|
|
|
|
switch (key) {
|
|
default: //直接赋值
|
|
opts[key] = value;
|
|
break;
|
|
case "crs":
|
|
opts[key] = value;
|
|
if (value == "4326" || value.toUpperCase() == "EPSG4326" || value.toUpperCase() == 'EPSG:4326') {
|
|
opts.tilingScheme = new Cesium.GeographicTilingScheme({
|
|
numberOfLevelZeroTilesX: item.numberOfLevelZeroTilesX || 2,
|
|
numberOfLevelZeroTilesY: item.numberOfLevelZeroTilesY || 1
|
|
});
|
|
} else if (value == '4490' || value.toUpperCase() == 'EPSG4490' || value.toUpperCase() == 'EPSG:4490') {
|
|
opts.tilingScheme = new Cesium.GeographicTilingScheme({
|
|
numberOfLevelZeroTilesX: item.numberOfLevelZeroTilesX || 2,
|
|
numberOfLevelZeroTilesY: item.numberOfLevelZeroTilesY || 1
|
|
});
|
|
opts.is4490 = true;
|
|
} else {
|
|
opts.tilingScheme = new Cesium.WebMercatorTilingScheme({
|
|
numberOfLevelZeroTilesX: item.numberOfLevelZeroTilesX || 1,
|
|
numberOfLevelZeroTilesY: item.numberOfLevelZeroTilesY || 1
|
|
});
|
|
}
|
|
break;
|
|
case "proxy":
|
|
opts.proxy = new Cesium.DefaultProxy(value);
|
|
break;
|
|
case "rectangle":
|
|
opts.rectangle = Cesium.Rectangle.fromDegrees(value.xmin, value.ymin, value.xmax, value.ymax);
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (opts.is4490 && opts.url) {
|
|
opts.url = opts.url.replace('{z}', '{z4490}');
|
|
opts.url = opts.url.replace('{arc_z}', '{arc_z4490}');
|
|
opts.url = opts.url.replace('{arc_Z}', '{arc_Z4490}');
|
|
}
|
|
|
|
if (!opts.url || !opts.proxy && !opts.headers && !opts.queryParameters) { } else if (opts.url instanceof Cesium.Resource) {
|
|
opts.url.headers = opts.headers;
|
|
} else {
|
|
opts.url = new Cesium.Resource({
|
|
url: opts.url,
|
|
proxy: opts.proxy ? new Cesium[('DefaultProxy')](opts.proxy) : null,
|
|
headers: opts.headers,
|
|
queryParameters: opts.queryParameters
|
|
})
|
|
}
|
|
|
|
return opts;
|
|
}
|
|
// url: "http://t3.tianditu.gov.cn/img_c/wmts?service=WMTS&version=1.0.0&request=GetTile&tilematrix={z}&layer=img&style=default&tilerow={y}&tilecol={x}&tilematrixset=c&format=tiles&tk=6c99c7793f41fccc4bd595b03711913e",
|
|
var opts = {
|
|
name: "山东影像",
|
|
type: "tile",
|
|
url: "http://service1.sdmap.gov.cn/tileservice/sdpubmap?layer=SDPubMap&style=default&tilematrixset=default028mm&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/png&TileMatrix={z}&TileCol={x}&TileRow={y}&tk=2ec5b748cca9b24b6474d6857deec02e",
|
|
crs: "4490",
|
|
rectangle: {
|
|
xmin: 114.3,
|
|
xmax: 123.2,
|
|
ymin: 34.165,
|
|
ymax: 38.626
|
|
},
|
|
minimumLevel: 7,
|
|
maximumLevel: 18,
|
|
alpha: 1,
|
|
// queryParameters: {
|
|
// token: "test"
|
|
// },
|
|
visible: true,
|
|
}
|
|
var opts = getOptions(opts);
|
|
opts.customTags = opts.customTags || {};
|
|
opts.customTags.z4490 = function (imageryProvider, x, y, level) {
|
|
return level + 1;
|
|
};
|
|
var xyz = new Cesium.UrlTemplateImageryProvider(opts);
|
|
viewer.imageryLayers.addImageryProvider(xyz)
|
|
|
|
</script>
|
|
</body>
|
|
|
|
</html> |