使用地理编码器时出现错误 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'
},
});
我有一个相当基本的设置来测试地理编码搜索功能,但每次搜索完成时我都会收到此错误。
我已经检查了我的版本号,据我所知它们是最新的。我已将它们分开以测试不同的版本。
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'
},
});