使用离线地图箱GL

20

是否有一种方式可以在离线环境下使用Mapbox GL(询问JS和原生)?有了MBTiles,你可以使用MBTiles文件或提取光栅图像。我想知道是否有类似的东西,可以让Mapbox GL从本地源加载数据,而不是需要连接到Mapbox的服务器。不是只谈论缓存数据以供用户离线使用,而是真正制作完全离线运行的地图。谢谢。

4个回答

20
一个 MapBox GL JS 离线样例(完全托管于一个自定义服务器,本例中是 GitHub gh-pages)可以在以下网址中查看:http://klokantech.github.io/mapbox-gl-js-offline-example/。您只需将 JavaScript、CSS、字体甚至是从 MBTiles 中解压缩的预渲染矢量瓦片放在同一个目录下即可获得可缩放的矢量地图。
如果您想免费将带有矢量或栅格瓦片的 MBTiles 托管在某个在线位置,则最简单的方法可能是:https://github.com/klokantech/tileserver-php/
当使用矢量瓦片进行实验时,我记录了大多数用例,这些用例都在以下两个资源库中:https://github.com/klokantech/vector-tiles-samplehttps://github.com/klokantech/mapbox-gl-js-offline-example

2
谢谢。我认为对于基于浏览器的实现,Tilelive也很好:https://github.com/mapbox/tilelive我特别关注如何在Apache Cordova中实现这一点,并分叉了Mapbox GL JS并制作了一个版本,可以使用JavaScript中的SQLite从MBTiles加载:https://github.com/trevorpowell/mapbox-gl-js-cordova-offline https://github.com/trevorpowell/mapbox-gl-js-cordova-offline-example - Trevor

3

谢谢。关于Mapbox GL JS,我也发现这个链接很有帮助: http://gis.stackexchange.com/questions/125037/self-hosting-mapbox-vector-tiles看起来我可以使用sqlite扩展来按需从MBTiles中提取PBFs,或者使用mbutil事先提取它们并像PNG一样静态地提供服务。 - Trevor

3

2

通过在应用程序中托管Web服务器并将地图指向localhost,可以在Mapbox Maps iOS SDK中显示MBTiles。 我在这里发布了我的解决方案:

https://gist.github.com/namannik/3b7c8b69c2d0768d0c2b48d2ed5ff71c

此解决方案与@jaysquared.com发布的解决方案的区别在于,此解决方案不需要style.json


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接