2025-07-03 13:54:01 +08:00
|
|
|
|
/**
|
|
|
|
|
* @name: index
|
|
|
|
|
* @author: Administrator
|
|
|
|
|
* @date: 2023-11-20 19:00
|
|
|
|
|
* @description:index
|
|
|
|
|
* @update: 2023-11-20 19:00
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
import BaseLayer from "../index";
|
|
|
|
|
import { setSplitDirection, setActiveId } from '../../../../../Global/SplitScreen'
|
|
|
|
|
|
|
|
|
|
class ArcgisLayer extends BaseLayer {
|
|
|
|
|
constructor(sdk, options = {}) {
|
|
|
|
|
super(sdk, options);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
get type() {
|
|
|
|
|
return "layer"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async createArcGis(url) {
|
|
|
|
|
let imageryProvider
|
|
|
|
|
if (Number(Cesium.VERSION.split('.')[1]) >= 107) {
|
|
|
|
|
imageryProvider = await Cesium.ArcGisMapServerImageryProvider.fromUrl(url);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
imageryProvider = new Cesium.ArcGisMapServerImageryProvider({
|
|
|
|
|
url
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
if (this.options.hasOwnProperty("layer_index")) {
|
|
|
|
|
this.entity = this.sdk.viewer.imageryLayers.addImageryProvider(imageryProvider, this.options.layer_index)
|
|
|
|
|
} else {
|
|
|
|
|
this.entity = this.sdk.viewer.imageryLayers.addImageryProvider(imageryProvider,)
|
|
|
|
|
}
|
2025-07-08 16:48:22 +08:00
|
|
|
|
this.entity._id = this.options.id
|
2025-07-03 13:54:01 +08:00
|
|
|
|
for (let i = 0; i < this.sdk.viewer.imageryLayers._layers.length; i++) {
|
|
|
|
|
if (this.sdk.viewer.imageryLayers._layers[i]._imageryProvider && this.sdk.viewer.imageryLayers._layers[i]._imageryProvider._type && (this.sdk.viewer.imageryLayers._layers[i]._imageryProvider._type === 'flw' || this.sdk.viewer.imageryLayers._layers[i]._imageryProvider._type === 'jww')) {
|
|
|
|
|
let layer = this.sdk.viewer.imageryLayers._layers[i]
|
|
|
|
|
this.sdk.viewer.imageryLayers.raiseToTop(layer)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.show = this.options.show
|
|
|
|
|
this.alpha = this.options.alpha
|
|
|
|
|
this.brightness = this.options.brightness
|
|
|
|
|
|
|
|
|
|
if(this.options.show) {
|
|
|
|
|
setSplitDirection(0, this.options.id)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class ArcgisWXImagery extends ArcgisLayer {
|
|
|
|
|
constructor(sdk, options) {
|
|
|
|
|
super(sdk, options);
|
|
|
|
|
this.createArcGis("https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class ArcgisBLUEImagery extends ArcgisLayer {
|
|
|
|
|
constructor(sdk, options) {
|
|
|
|
|
super(sdk, options);
|
|
|
|
|
this.createArcGis("https://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class ArcgisLWImagery extends ArcgisLayer {
|
|
|
|
|
constructor(sdk, options) {
|
|
|
|
|
super(sdk, options);
|
|
|
|
|
this.createArcGis("https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export {ArcgisWXImagery, ArcgisBLUEImagery, ArcgisLWImagery}
|