cesium-mars-op-cog 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/mars3d.d.ts +8 -0
- package/dist/index.js +21 -12
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -85,6 +85,14 @@ export declare class CogMarsLayer extends mars3d.layer.BaseLayer {
|
|
|
85
85
|
* 获取 COG Provider(初始化完成后可用)
|
|
86
86
|
*/
|
|
87
87
|
get cogProvider(): CogImageryProvider | null;
|
|
88
|
+
/**
|
|
89
|
+
* 飞行定位到 COG 影像区域
|
|
90
|
+
* 覆盖 BaseLayer.flyTo(),等待异步初始化完成后使用 bbox 定位
|
|
91
|
+
*/
|
|
92
|
+
flyTo(options?: {
|
|
93
|
+
duration?: number;
|
|
94
|
+
scale?: number;
|
|
95
|
+
}): Promise<boolean>;
|
|
88
96
|
/** 销毁 */
|
|
89
97
|
destroy(noDel?: boolean): void;
|
|
90
98
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as u from "cesium";
|
|
2
|
-
import { Event as
|
|
2
|
+
import { Event as k, GeographicTilingScheme as _, Rectangle as p } from "cesium";
|
|
3
3
|
import S from "proj4";
|
|
4
|
-
import * as
|
|
4
|
+
import * as m from "mars3d";
|
|
5
5
|
import { onUnmounted as F, ref as M, shallowRef as R } from "vue";
|
|
6
6
|
var L = class {
|
|
7
7
|
poolSize;
|
|
@@ -176,7 +176,7 @@ var v = {
|
|
|
176
176
|
}, G = class {
|
|
177
177
|
tileWidth = 256;
|
|
178
178
|
tileHeight = 256;
|
|
179
|
-
tilingScheme = new
|
|
179
|
+
tilingScheme = new _();
|
|
180
180
|
hasAlphaChannel = !0;
|
|
181
181
|
ready = !0;
|
|
182
182
|
maximumLevel;
|
|
@@ -220,7 +220,7 @@ var v = {
|
|
|
220
220
|
const t = A.bbox, e = t[0], i = t[1], I = t[2], g = t[3];
|
|
221
221
|
if (!isFinite(e) || !isFinite(i) || !isFinite(I) || !isFinite(g)) throw new Error("COG 元数据无效: bbox 包含非数值");
|
|
222
222
|
const s = A.maxLevel ?? 17, a = A.minLevel ?? Math.max(0, s - 8), n = A.crsType ?? "4326";
|
|
223
|
-
this._bbox = this._normalizeBbox(e, i, I, g, n), this.maximumLevel = s, this.minimumLevel = a, this.rectangle = p.fromDegrees(this._bbox[0], this._bbox[1], this._bbox[2], this._bbox[3]), this._errorEvent = new
|
|
223
|
+
this._bbox = this._normalizeBbox(e, i, I, g, n), this.maximumLevel = s, this.minimumLevel = a, this.rectangle = p.fromDegrees(this._bbox[0], this._bbox[1], this._bbox[2], this._bbox[3]), this._errorEvent = new k(), this._initialized = !0, console.log(`[COG] 初始化完成, 级别 ${a}-${s}, bbox: [${this._bbox.join(", ")}]`);
|
|
224
224
|
}
|
|
225
225
|
_normalizeBbox(A, t, e, i, I) {
|
|
226
226
|
if (Math.abs(A) <= 360 && Math.abs(e) <= 360 && Math.abs(t) <= 90 && Math.abs(i) <= 90) return [
|
|
@@ -338,8 +338,8 @@ async function z(A, t, e) {
|
|
|
338
338
|
i.requestImage(C, B, l).then((D) => {
|
|
339
339
|
D && D.toBlob((y) => {
|
|
340
340
|
if (y) {
|
|
341
|
-
const
|
|
342
|
-
|
|
341
|
+
const N = h.getImage();
|
|
342
|
+
N.src = URL.createObjectURL(y);
|
|
343
343
|
}
|
|
344
344
|
});
|
|
345
345
|
}).catch(() => {
|
|
@@ -386,7 +386,7 @@ async function H() {
|
|
|
386
386
|
throw new Error("OpenLayers 依赖未找到,请安装: npm install ol");
|
|
387
387
|
}
|
|
388
388
|
}
|
|
389
|
-
var Z = class extends
|
|
389
|
+
var Z = class extends m.layer.BaseLayer {
|
|
390
390
|
type = "cog";
|
|
391
391
|
isTile = !0;
|
|
392
392
|
hasOpacity = !0;
|
|
@@ -422,12 +422,9 @@ var Z = class extends _.layer.BaseLayer {
|
|
|
422
422
|
await A.init(), this._cogProvider = A;
|
|
423
423
|
const t = this._map;
|
|
424
424
|
if (!t || this.isDestroy) return;
|
|
425
|
-
this._imageryLayer = t.imageryLayers.addImageryProvider(A), this._imageryLayer.alpha = this._cogAlpha, this.
|
|
425
|
+
this._imageryLayer = t.imageryLayers.addImageryProvider(A), this._imageryLayer.alpha = this._cogAlpha, this.fire("load", { target: this });
|
|
426
426
|
} catch (A) {
|
|
427
|
-
console.error("[CogMarsLayer] 初始化失败:", A)
|
|
428
|
-
target: this,
|
|
429
|
-
error: A
|
|
430
|
-
});
|
|
427
|
+
console.error("[CogMarsLayer] 初始化失败:", A);
|
|
431
428
|
}
|
|
432
429
|
})(), await this._initPromise);
|
|
433
430
|
}
|
|
@@ -478,6 +475,18 @@ var Z = class extends _.layer.BaseLayer {
|
|
|
478
475
|
get cogProvider() {
|
|
479
476
|
return this._cogProvider;
|
|
480
477
|
}
|
|
478
|
+
async flyTo(A) {
|
|
479
|
+
if (this._initPromise && await this._initPromise, !this._cogProvider) return !1;
|
|
480
|
+
const t = this._cogProvider.bboxDegrees;
|
|
481
|
+
if (t[2] === t[0] || t[3] === t[1]) return !1;
|
|
482
|
+
const e = this._map;
|
|
483
|
+
if (!e) return !1;
|
|
484
|
+
const i = (t[2] - t[0]) * 0.3, I = (t[3] - t[1]) * 0.3;
|
|
485
|
+
return e.camera.flyTo({
|
|
486
|
+
destination: m.Cesium.Rectangle.fromDegrees(t[0] - i, t[1] - I, t[2] + i, t[3] + I),
|
|
487
|
+
duration: A?.duration ?? 1.5
|
|
488
|
+
}), !0;
|
|
489
|
+
}
|
|
481
490
|
destroy(A) {
|
|
482
491
|
this._removeImageryLayer(), super.destroy(A);
|
|
483
492
|
}
|