如何将mapbox studio地图导出为.mbtiles文件

rik*_*mbo 4 export mapbox mbtiles

所以我猜这个问题的答案是"不",但有没有办法将我用mapbox studio(https://www.mapbox.com/studio/)在线设计的地图导出到.mbtiles文件中所以我可以自己主持吗?

老实说,我愿意为此付钱(省去了我得到一个世界.pbf文件的麻烦,把它变成一个postgresql数据库真是一个痛苦,特别是像我这样的平庸电脑)

听起来好像曾经有过一种方法可以做到这一点,但截至目前看起来他们已经夺走了这种能力.我可以看到很多不同的方式来使用我创建的地图,但是一切都迫使我使用mapbox作为托管服务......似乎没有办法下载我创建的地图.

ini*_*_js 8

我认为你的假设是正确的.MapBox似乎希望您使用他们的API和API密钥.

但是,如果您可以回退,则可以使用栅格切片进行部分解决.或者,您可以从OSM数据而不是从mapbox服务器获取矢量mbtiles.

mapbox离线支持android/ios

我已经在2017年4月联系了mapbox支持,我被告知的是,虽然你可以从MapBox工作室下载的样式文件不包含tile,但是有一种方法可以让它们在Android/iOS上脱机呈现.

如果您想离线使用Mapbox地图,则需要按照Android或iOS显示的示例进行操作,具体取决于您的平台.从本质上讲,移动SDK采用指向您在Mapbox Studio中创建的自定义样式的样式URL,并且SDK处理下载保持地图脱机所需的所有其他资源(字体,图标,拼贴等).查看我们的离线地图指南,了解有关其工作原理的更多信息.

链接:

通过快速查看示例代码,看起来瓦片的下载是在应用程序内完成的,但是提前完成,例如在安装应用程序之后,您仍然具有网络连接.关于您的结算问题,我不会立即查看此下载中是否涉及您的Mapbox API密钥.每个离线区域有6000个离线磁贴限制.

不适用于桌面:该网站还提到离线不是MapboxGl-JS的选项,因此您必须破解它才能使您的离线区域在桌面Web浏览器上可用.

mapbox studio出口为mbtiles ...

据说在设置中有一个非常明显的选项,可以将你的源代码下载为mapbox studio classic中的mbtiles文件.一个mapbox经典问题在GitHub上有此按钮的应该是一个屏幕截图.选项现在可能已经消失.

该github项目https://github.com/klokantech/vector-tiles-sample提供了项目/工具的链接,这些项目/工具可以将mbtiles文件分解为其包含的pbf文件,这些文件是每个矢量图块的protobuf压缩格式(https ://github.com/mapbox/mbutil).稍微过时了.

否则可能有效的方法是提前为从MapBox检索的每个切片缓存网络请求,然后在APP代理中缓存对缓存的请求.我不确定这是否反对ToS.您可能必须使用要缓存的所有XYZ坐标以编程方式执行此操作.

与tippecanoe潜水生产矢量瓷砖

您可以使用tippecanoe创建矢量切片(并自己托管).我知道,这不是MapBox.但从长远来看,它可能会更进一步.

关于它的好短篇博客文章:http://fuzzytolerance.info/blog/2017/02/02/Making-your-own-tiles-with-Tippecanoe/

您创建的mbtiles,您可以对它们进行分层,并可能使用开源maputnik(有点像mapbox的样式编辑器)对它们进行样式化.然后用自己的服务器服务mbtiles,并将你的风格插入mapboxGL-js或openlayers.

TileMill - (带有光栅图块的.mbtiles)后备

TileMill仍然可用(但已弃用),可在桌面上运行,并允许您从shapefile创建地图(例如,您可以通过https://mapzen.com/data/metro-extracts获取单个城市的openstreetmap shapefile /).

TileMill会在流程结束时给你一个mbtiles文件.虽然,mbtiles包含光栅图块,而不是矢量图块.矢量图块可以动态设置样式,因此当您想要适应各种字体或适应光线的情况时,它在移动设备上很不错.

栅格图块可能就足够了,因为在您的应用程序中,您可能能够在该基础图层之上渲染其他交互式对象.OpenLayers是一个可移植的框架,您可以在其中执行此操作,例如,允许用户绘制对象或单击您从数据库中单独从地图数据加载的兴趣点.

获取基于OSM的矢量切片而不是mapbox

现在似乎有另一个Vector tile的制造商,http://openmaptiles.org(曾经是http://osm2vectortiles.org).

您可以访问此处,并为您选择的城市下载mbtiles文件,例如:https://openmaptiles.org/downloads/#city,然后使用磁贴服务器为您的应用提供该文件(本地).(或者使用上面提到的工具之一将其分解为单独的pbf文件并从本地磁盘/内存中读取文件)

通过这种方法,您可以将OSM中的矢量mbtiles与您在mapbox studio中创建的样式(mapbox studio允许您下载带有.json样式的zip文件)相结合,您仍然可以使用MapBoxGL来显示它.

有Maputnik http://maputnik.com/,您可以使用它编辑mapboxgl样式文件(编辑器使用本地存储).据推测,https://github.com/boundlessgeo/ol-mapbox-style允许您将该样式转换为适合OpenLayer样式API的代码.