有没有办法在没有访问令牌的情况下使用MapBox GL JS
?我在MapBox GL JS的文档中找不到任何提示,但是,Uber
建议可以使用他们的库providing React
Components for MapBox GL JS
。
来自react-map-gl
的文档
不使用Mapbox令牌显示Map
如果您使用其他分幅源(例如,如果您托管自己的Map分幅),则可以在不使用Mapbox服务的情况下使用Map组件。你需要一个自定义的Mapbox GL样式,指向你自己的矢量图块源,并使用mapStyle prop将其传递给ReactMapGL。此自定义样式必须与平铺源的方案匹配。
来源https://uber.github.io/react-map-gl/#/Documentation/getting-started/about-mapbox-tokens
是否可以在没有访问令牌的情况下使用“原生”MapBox GL JS
?如果是,如何进行?
4条答案
按热度按时间g6baxovj1#
是的,正如评论中提到的,不要设置accessToken,也不要使用任何Map框样式或图块:
然后,您可以通过
map.addLayer/addSource
以编程方式添加图层,或者创建自己的style.json文件,引用您的tile服务器和图层。样式规范在这里有详细的文档:https://docs.mapbox.com/mapbox-gl-js/style-spec/des4xlb02#
正如人们已经评论你需要添加自己的数据源,雄蕊有一些开放的瓷砖服务或正常的OSM会做。将样式索引更改为具有源和图层参数的对象。Mapbox风格的文档非常好。https://docs.mapbox.com/mapbox-gl-js/style-spec/
我已经创建了一个中等的职位,一步一步-https://medium.com/@markallengis/simple-web-map-using-mapbox-gl-js-a44e583e0589
下面是我的意思的一个简单例子,注意如果你的服务是向量,那么更新 * 类型 *。
pu3pd22g3#
查看以下代码:https://docs.mapbox.com/mapbox-gl-js/example/map-tiles/您可以删除带有“mapboxgl.accessToken”的行,然后继续。
我刚刚用ReactMapboxGL组件测试了它,它工作正常!只需将“mapStyle”属性传递给文档中的样式对象组件。
vi4fp9gy4#
还有一种解决方案,您不需要任何mapbox,因为在mapbox v2之后,它需要一个令牌,并且它不会帮助用户实现未来的功能。有一个替代mapbox的MAPLIBRE。你可以使用maplibre css实现Map,使用Cartocdn JSON文件实现Map样式(城市,道路,学校等)。你可以在这个Map上添加数据集,集群和其他功能。
下面是使用react、maplibre和javascript的代码片段: