文章中所有操作均是在 Cesium 1.91 版本下进行的,其它版本差异请自行适配
影像服务 4
相关介绍请移步影像服务介绍,这里介绍学习的影像服务,包括 GoogleEarthEnterpriseImageryProvider、GoogleEarthEnterpriseMapsProvider、GridImageryProvider、TileCoordinatesImageryProvider、IonImageryProvider 的使用。
GoogleEarthEnterpriseImageryProvider
使用谷 Google Earth Enterprise REST API 提供瓦片图像在线服务,可与 Google Earth Enterprise的 3D Earth API 一起使用。
代码片段:
const viewer = new Cesium.Viewer("cesiumContainer");
var geeMetadata = new Cesium.GoogleEarthEnterpriseMetadata(
"http://www.earthenterprise.org/3d"
);
var googleEarthProvider = new Cesium.GoogleEarthEnterpriseImageryProvider({
metadata: geeMetadata
});
viewer.imageryLayers.addImageryProvider(googleEarthProvider);
加载谷歌服务,需要翻墙才行,这里不展示效果了。
GoogleEarthEnterpriseMapsProvider
使用 Google Earth Imagery API 提供瓦片图像在线服务,应该与 2D Maps API 一起使用。
代码片段:
const viewer = new Cesium.Viewer("cesiumContainer");
var googleEarthProvider = new Cesium.GoogleEarthEnterpriseMapsProvider({
url: "https://earth.localdomain",
channel: 1008
});
viewer.imageryLayers.addImageryProvider(googleEarthProvider);
加载谷歌服务,需要翻墙才行,这里不展示效果了。
GridImageryProvider
展示内部渲染网格划分情况,了解每个瓦片的精细度,便于调试地形和图像渲染问题。
代码片段:
const viewer = new Cesium.Viewer("cesiumContainer");
var arggisProvider = new Cesium.ArcGisMapServerImageryProvider({
url: "https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer"
});
viewer.imageryLayers.addImageryProvider(arggisProvider);
var gridImagery = new Cesium.GridImageryProvider();
var gridImageryLayer = viewer.imageryLayers.addImageryProvider(gridImagery);
//将图层置顶
viewer.imageryLayers.raiseToTop(gridImageryLayer);
效果如下:
TileCoordinatesImageryProvider
展示内部渲染网格瓦片划分情况,包括网格瓦片等级、X、Y序号,便于调试地形和图像渲染问题,也可以和 GridImageryProvider 一起叠加使用。
代码片段:
const viewer = new Cesium.Viewer("cesiumContainer");
var arggisProvider = new Cesium.ArcGisMapServerImageryProvider({
url: "https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer"
});
viewer.imageryLayers.addImageryProvider(arggisProvider);
var tilecoordinates = new Cesium.TileCoordinatesImageryProvider();
var tilecoordinatesLayer = viewer.imageryLayers.addImageryProvider(tilecoordinates);
//将图层置顶
viewer.imageryLayers.raiseToTop(tilecoordinatesLayer);
效果如下:
IonImageryProvider
cesium Ion 在线服务,这里不做过多阐述了,各位可以移步作者相关博文进行参考: