从Google切换到Mapbox后,如何在Leaflet中使用Mapbox Studio样式?
搞定Leaflet加载Mapbox自定义样式的步骤
嘿,我来帮你把这个事儿捋明白~从Google转Mapbox想自定义地图样式其实不难,只是刚接触的时候容易被文档绕晕,我给你拆成简单的步骤:
第一步:获取你的Mapbox自定义样式ID
先登录你的Mapbox账号进入Mapbox Studio:- 要么从模板创建新样式(选个基础模板比如Streets,然后改成你想要的样子),要么打开你已经设计好的样式
- 样式做好后一定要点击右上角的「发布」按钮,不然外部调用不到
- 找到样式的ID:在样式详情页的顶部或者点击「分享」按钮,你会看到类似
你的Mapbox用户名/自定义样式标识的字符串,比如john-doe/my-cool-map-style,这就是你要的ID
第二步:修改Leaflet的TileLayer配置
你现在的代码里用的是Mapbox官方默认的mapbox.streets样式ID,只需要把它替换成你刚才拿到的自定义样式ID就行,其他部分基本不用改。给你改好的示例代码:L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}', { attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>', maxZoom: 18, id: '你的用户名/你的自定义样式ID', // 这里替换成你自己的样式ID accessToken: '你的有效Mapbox访问令牌' // 替换成你自己的accessToken }).addTo(_hold.lmap);几个要注意的小细节
- 确保你的accessToken有「瓦片服务」的权限,别用那种只限制在特定域名或者只有编辑权限的令牌
- 如果样式修改后没生效,先检查有没有重新发布,有时候浏览器缓存也会影响,可以清一下缓存再试
内容的提问来源于stack exchange,提问作者DroidOS
相关产品推荐
相关产品推荐

