我正在尝试使用mapbox-gl在StackBlitz上做一个例子。如何设置accessToken?

编辑器声明“无法分配给'accessToken',因为它是常量或只读属性”。

我已经尝试了另一个问题的可能解决方案:
Mapbox-gl typing won't allow accessToken assignment

import { Component, ViewChild, ElementRef } from '@angular/core';
import * as mapboxgl from 'mapbox-gl';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {

  @ViewChild('map') mapElement: ElementRef;
  map: mapboxgl.Map;

  ngOnInit() {
    mapboxgl.accessToken = '<token>';
    this.map = new mapboxgl.Map({
      container: this.mapElement.nativeElement,
      style: 'mapbox://styles/mapbox/streets-v11',
      center: [-77.04, 38.907],
      zoom: 11.15
    });
  }
}

完整的代码示例:
https://stackblitz.com/edit/angular-9djiw2

最佳答案

最终通过替换解决了这个问题

import * as mapboxgl from 'mapbox-gl';


const mapboxgl = require('mapbox-gl');

我不知道为什么这样做(尽管有红色下划线)。它可能特定于StackBlitz。我将在此处保留示例,但将禁用Mapbox中的键。

09-18 20:16