使用不带访问令牌的MapBox GL JS

Sto*_*ace 2 javascript mapbox reactjs mapbox-gl-js

MapBox GL JS没有访问令牌的使用方法吗?我无法找到的文档中的任何暗示MapBox GL JS,但Uber表明,它是可能与他们的图书馆提供React组件MapBox GL JS

从文档 react-map-gl

显示没有Mapbox令牌的地图

如果您使用另一个图块源(例如,如果您托管自己的地图图块),则可以使用不带Mapbox服务的地图组件。您将需要一个自定义Mapbox GL样式,该样式指向您自己的矢量图块源,并使用mapStyle道具将其传递给ReactMapGL。此自定义样式必须与图块源的模式匹配。

来源https://uber.github.io/react-map-gl/#/Documentation/getting-started/about-mapbox-tokens

是否可以使用MapBox GL JS没有访问令牌的“本机” ?如果是这样,怎么办?

Sca*_*ize 6

是的,正如评论所提到的,只是不要设置accessToken并避免使用任何mapbox样式或图块:

var map = new mapboxgl.Map({
    container: 'map'
    center: [-74.50, 40],
    zoom: 9
});
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过编程方式添加图层,map.addLayer/addSource或仅创建引用您的图块服务器和图层的自己的style.json文件。样式说明在此处大量记录:https : //docs.mapbox.com/mapbox-gl-js/style-spec/


mar*_*ark 5

正如人们已经评论过的那样,您需要添加自己的数据源,雄蕊有一些开放的瓷砖服务或正常的 OSM 会做。将样式键更改为具有源和图层参数的对象。Mapbox 风格的文档非常好。https://docs.mapbox.com/mapbox-gl-js/style-spec/

我创建了一个循序渐进的中等帖子 - https://medium.com/@markallengis/simple-web-map-using-mapbox-gl-js-a44e583e0589

我在下面的意思的快速示例,请注意您的服务是否为 vector ,然后更新type

style:{
        'version': 8,
        'sources': {
          'raster-tiles': {
            'type': 'raster',
            'tiles': [
              'https://yourtileservicehere/{z}/{x}/{y}.jpg'
            ],
            'tileSize': 256,
          }
        },
        'layers': [{
          'id': 'simple-tiles',
          'type': 'raster',
          'source': 'raster-tiles',
          'minzoom': 0,
          'maxzoom': 22
        }]
      }
Run Code Online (Sandbox Code Playgroud)

  • Mapbox 现在已将版本 2 中的 mapbox-gl-js 更改为不再开放,您将必须有一个密钥才能继续,因此上述回复现已过时。已经有几个分叉 - https://github.com/maplibre/maplibre-gl-js (3认同)