在没有访问令牌的情况下使用 MapBox GL JS

IT技术 javascript reactjs mapbox mapbox-gl-js
2021-05-04 06:28:34

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

从文档 react-map-gl

在没有 Mapbox 令牌的情况下显示地图

如果您使用其他图块源(例如,如果您托管自己的地图图块),则可以在没有 Mapbox 服务的情况下使用地图组件。您将需要一个指向您自己的矢量切片源的自定义 Mapbox GL 样式,并使用 mapStyle props将其传递给 ReactMapGL。此自定义样式必须与您的磁贴源的架构相匹配。

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

是否可以在MapBox GL JS没有访问令牌的情况下使用“本机” 如果是这样,如何?

3个回答

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

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

然后你可以通过编程方式添加你的图层,map.addLayer/addSource或者只是创建你自己的 style.json 文件来引用你的切片服务器和图层。此处详细记录了样式规范:https : //docs.mapbox.com/mapbox-gl-js/style-spec/

正如人们已经评论过的那样,您需要添加自己的数据源,雄蕊有一些开放的瓷砖服务或正常的 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
        }]
      }

查看在以下位置 截取的代码:https : //docs.mapbox.com/mapbox-gl-js/example/map-tiles/ 您可以删除带有“mapboxgl.accessToken”的行,然后就可以了。

我刚刚使用 ReactMapboxGL 组件对其进行了测试,并且可以正常工作!只需将“mapStyle”props传递给带有来自文档的样式对象的组件。