75 lines
2.3 KiB
JavaScript
75 lines
2.3 KiB
JavaScript
/**
|
||
* @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,)
|
||
}
|
||
this.entity._id = this.options.id
|
||
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}
|