mapbox官方提供了对应的语言插件。
方法
-
安装
npm install --save mapbox-gl @mapbox/mapbox-gl-language
-
使用
import MapboxLanguage from '@mapbox/mapbox-gl-language'
map.addControl(new MapboxLanguage({defaultLanguage: 'zh'}));
问题
- 插件没有生效,请注意的使用说明:
也就是说,如果你没有对插件进行配置的话,默认只支持官方提供的这几个样式
官网 Styles已经过时, 请使用下面的style替代(已经提交了 pull requests,暂时还未合并):
mapbox://styles/mapbox/streets-v10
mapbox://styles/mapbox/outdoors-v10
mapbox://styles/mapbox/dark-v9
mapbox://styles/mapbox/light-v9
mapbox://styles/mapbox/satellite-streets-v9
mapbox://styles/mapbox/traffic-day-v2
mapbox://styles/mapbox/traffic-night-v2
如果你是使用了自定义的样式或样式版本与上述不同时,请自行配置该插件。
- 切换样式后,中文又不见了。
重新添加!
const mapboxLanguage = new MapboxLanguage({ defaultLanguage: 'zh' })
componentDidUpdate() {
this.map.setStyle(this.props.style)
this.map.addControl(mapboxLanguage);
}