typescript - Hvordan sette mapboxgl.accessToken i Angular-prosjekt?
Jeg prøver å lage et eksempel på StackBlitz med mapbox-gl. Hvordan kan jeg sette accessToken?
Redaktøren sier «Kan ikke tilordne til 'accessToken' fordi det er en konstant eller en skrivebeskyttet egenskap».
Jeg har allerede prøvd de mulige løsningene fra et annet spørsmål: Mapbox-gl-skriving tillater ikke tildeling av accessToken
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
});
}
}
Full kodeeksempel: https://stackblitz.com/edit/angular-9djiw2
Svar #1
En annen metode er å få tilgang til token-egenskapen på følgende måte: (mapboxgl as any).accessToken="ditt token"
Svar #2
Endelig løste jeg dette problemet ved å erstatte
import * as mapboxgl from 'mapbox-gl';
med
const mapboxgl = require('mapbox-gl');
Jeg vet ikke hvorfor dette fungerer (til tross for noen røde understrek). Det kan være spesifikt for StackBlitz. Jeg lar eksemplet være der, men vil deaktivere nøkkelen fra Mapbox.
