我具有以下导入(在同一TS源文件中):
import {Vector as sourceVector} from "ol/source";
import {Vector} from "ol/layer";
以下是 Vector 在 ol / source 中的导出方式:
export { default as Vector } from './source/Vector';
和 ol / layer :
export { default as Vector } from './layer/Vector';
是否可以以某种方式重构导入,所以它看起来像这样:
import {Vector as source.Vector} from "ol/source";
import {Vector as layer.Vector} from "ol/layer";
不幸的是,我对 ol / source 和 ol / layer 没有任何控制权,我不能影响他们的设计决策和命名约定。我必须在相同的源代码中导入和使用这两种类型:
ngAfterViewInit(): void {
const markerSource = new sourceVector({});
this.map = new Map({
layers: [
new TileLayer({
source: new OSM(),
}),
new Vector({ source: markerSource }),
],
view: new View({
center: fromLonLat([11.57548, 48.137552]),
zoom: 13,
}),
target: this.myMap.nativeElement,
});
答案 0 :(得分:1)
回答您的问题:
import * as source from 'ol/source';
import * as layer from "ol/layer";
P.S .:请注意,此可能可能会破坏tree shaking(但我不太确定您如何验证)。
但是正如comments中所述,这不一定比您已经做的更好:
import {Vector as sourceVector} from "ol/source";
import {Vector as layerVector} from "ol/layer";
您可以安全地引用其中任何一个,而没有任何命名冲突,并且它仍然很可读。