使用地理编码器时出现错误 this._mapboxgl.Marker 不是构造函数

Getting error this._mapboxgl.Marker is not a constructor when using geocoder

我有一个相当基本的设置来测试地理编码搜索功能,但每次搜索完成时我都会收到此错误。

我已经检查了我的版本号,据我所知它们是最新的。我已将它们分开以测试不同的版本。

https://api.mapbox.com/mapbox-gl-js/v1.2.0/mapbox-gl.js

https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v4.4.1/mapbox-gl-geocoder.min.js

import Mapbox from 'mapbox-gl';
import Geocoder from 'mapbox-gl-geocoder';

Mapbox.accessToken = 'pk.mytokenishere';
  let map = new Mapbox.Map({
  container: 'map',
  style: 'mapbox://styles/mapbox/streets-v11',
  center: {lon: -113.8116, lat: 52.26682},
  zoom: 4
  });

  var geocoder = new Geocoder({
    accessToken: Mapbox.accessToken,
    mapboxgl: map,
    marker: {
      color: 'orange'
      },
    }); 
  document.getElementById('geocoder').appendChild(geocoder.onAdd(map));

我得到的不是橙色标记,而是 this._mapboxgl.Marker is not a constructor

我自己想出来了。地理编码器需要 Mapbox class 本身而不是实例。上面的代码应该改为:

var geocoder = new Geocoder({
  accessToken: Mapbox.accessToken,
  mapboxgl: Mapbox,
  marker: {
    color: 'orange'
    },
});