mapbox设置地图语言为中文,支持JavaScript和Vue

Mapbox官方语言插件

官方语言插件地址:​mapbox-gl-language,在项目中通过使用该插件,即可以支持多种地图语言的设置。

1 😁 原生JS实现

仓库中给出的简体中文demo zh-Hans.html 即是js实现,如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8' />
    <title>Mapbox GL Language</title>
    <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
    <script src='https://api.tiles.mapbox.com/mapbox-gl-js/v2.4.0/mapbox-gl.js'></script>
    <link href='https://api.tiles.mapbox.com/mapbox-gl-js/v2.4.0/mapbox-gl.css' rel='stylesheet' />
    <script src='../index.js'></script>
    <style>
        body { margin:0; padding:0; }
        #map { position:absolute; top:0; bottom:0; width:100%; }
    </style>
</head>
<body>

<div id='map'></div>
<script>
mapboxgl.accessToken = 'pk.eyJ1IjoibHVrYXNtYXJ0aW5lbGxpIiwiYSI6ImNpem85dmhwazAyajIyd284dGxhN2VxYnYifQ.HQCmyhEXZUTz3S98FMrVAQ';
var map = new mapboxgl.Map({
    container: 'map',
    style: 'mapbox://styles/mapbox/streets-v11',
    center: [-98, 38.88],
    minZoom: 2,
    zoom: 3
});
mapboxgl.setRTLTextPlugin('https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js');
map.addControl(new MapboxLanguage({
  defaultLanguage: 'zh-Hans'
}));
</script>

</body>
</html>

一定要注意版本号,尽量保持与官方示例一致!(网上其他教程大多没注意这一点)

2 😁 使用vue实现

(博主用的这种方式)

  1. 首先安装所需的依赖项
npm install --save mapbox-gl @mapbox/mapbox-gl-language
  1. 地图初始化之前,导入依赖
import mapboxgl from 'mapbox-gl';
import MapboxLanguage from '@mapbox/mapbox-gl-language';
// 注意版本号,与官方最新示例保持一致
mapboxgl.setRTLTextPlugin('https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js');
  1. 地图初始化之后,设置地图语言
map.addControl(new MapboxLanguage({
    defaultLanguage: 'zh-Hans'
}));

至此已经完成了地图语言的设置。更详细的说明,可查看官方仓库​mapbox-gl-language,如果你访问不到官方仓库,请留下邮箱

3 结果展示

Alt

Alt

----完----

其它:

仅改变某一图层的标注语言

  1. 官方对于地图语言的说明:Change your map’s label language

  2. 官方demo示例:Change a map’s language
    在这里插入图片描述

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值