diff --git a/packages/maps/src/mapbox/index.ts b/packages/maps/src/mapbox/index.ts index 290dd3e9f8..32377cea34 100644 --- a/packages/maps/src/mapbox/index.ts +++ b/packages/maps/src/mapbox/index.ts @@ -202,20 +202,28 @@ export default class MapboxService * TODO: 使用 mapbox v0.53.x 版本 custom layer,需要共享 gl context * @see https://github.com/mapbox/mapbox-gl-js/blob/master/debug/threejs.html#L61-L64 */ - if (!mapboxgl) { + + // 判断全局 mapboxgl 对象的加载 + if (!('mapInstance' in this.config) && !mapboxgl) { + // 用户有时传递进来的实例是继承于 mapbox 实例化的,不一定是 mapboxgl 对象。 this.logger.error(this.configService.getSceneWarninfo('SDK')); } + if ( token === MAPBOX_API_KEY && style !== 'blank' && - !mapboxgl.accessToken + !mapboxgl.accessToken && + !('mapInstance' in this.config) // 如果用户传递了 mapInstance,应该不去干预实例的 accessToken。 ) { this.logger.warn(this.configService.getSceneWarninfo('MapToken')); } - if (!mapboxgl.accessToken) { + // 判断是否设置了 accessToken + if ('mapInstance' in this.config && !mapboxgl.accessToken) { + // 用户有时传递进来的实例是继承于 mapbox 实例化的,不一定是 mapboxgl 对象。 mapboxgl.accessToken = token; } + if (mapInstance) { // @ts-ignore this.map = mapInstance;