首页 文章

OSM数据为mapBox格式

提问于
浏览
2

我看到了几个OSM数据转换为MVT(mapbox矢量切片)的地方,用于简单渲染 .

其中包括:

  • OSRM,它提供了基于MVT的渲染路线图像

  • OpenMapTiles,可以下载MVT格式的OSM Map

  • GeoServer可以导入OSM并导出MVT

Is there a simple tool to convert OSM data to MVT locally?

我有自己的OSM格式数据,我想转换为MVT并在本地存储,而不需要渲染到 Map 图像 .

2 回答

  • 2

    MVT的具体内容是这是平铺和多分辨率(基于缩放)显示优化,更像是用于视觉快速渲染和样式的"rendered" Map ,它不是真正的典型地理数据格式 . 例如,它没有地理坐标,它在矢量对象的tile中有"pixel space"坐标 . 这使'simple conversion' from / to geodata相当棘手,而且非常典型的转换解决方案很奇怪 - 使用 Map 服务器或服务与您的数据,然后从中刮取瓷砖 . 对于瓷砖刮削,最好的工具似乎是tilelive-copy .

    但是,从上面的长列表中你可能想要的最接近的是tippecanoe,它将GeoJSON转换为MVT(在mbtiles文件中) . 如果您的数据是.osm格式,那么您需要将其转换为geojson;但是还有其他工具,例如ogr2ogr . 请注意,OSM文件包含许多数据层,并且结构非常具体,因此您需要为所有转换步骤找到运行良好的配置 .

  • 0

    GitHub上的mapbox/awesome-vector-tiles存储库有很长的Mapbox Vector Tile实现列表 . 这是今天的清单:

    解析器和发生器

    • vector-tile-js - 使用JavaScript解析矢量切片 .

    • mapnik-vector-tile - 在Mapnik之上的C矢量图块读/写实现 .

    • mbtiles-cpp - 用于将mbtiles和矢量数据解码为函数回调的C库 .

    • vector-tile-py - 将Mapnik矢量切片转换为GeoJSON的Python工具

    • node-mapnik - 用于矢量切片的Node.js API依赖于 mapnik-vector-tile

    • vector-tile-cs - 使用C#解析矢量切片(本机C#实现,无依赖关系) .

    • mapbox-vector-tile-cs - 使用C#解析矢量切片(使用protobuf-net) .

    • tilelive-bridge - 实现Tilelive API用于从Node.js中的传统Mapnik数据源创建矢量切片 .

    • tilelive-vector - 实现Tilelive API用于读取矢量切片并渲染到Node.js中的图像切片 .

    • mapbox-vector-tile是由Mapzen维护的矢量切片编码的Python包 . (它用于Mapzen的vector tile service) .

    • geojson-vt - 在浏览器中即时将GeoJSON切片为矢量切片 .

    • java-vector-tile - 用于矢量切片的java编码器和解码器 .

    • mapbox-vector-tile-java - 对v2.1 Mapbox矢量图块进行编码和解码 . 将JTS Geometry转换为MVT功能和从MVT功能转换,包括简单的用户数据支持 . 用于将世界坐标转换为MVT坐标和剪切到平铺包络的实用程序功能 .

    • cached-vector-tile - vector-tile-js接口的替代实现,由纯JS对象/数组支持,而不是解析按需protobuf数据 . 以更快的feature.loadGeometry()调用换取内存效率 .

    • tilegrinder - 一个辅助库,用于在MBTiles中的每个矢量切片上应用数据更改功能,使用本机protobuf包装器进行解除编码,重新压缩结果并将它们存储在MBTiles中或作为单个文件存储 .

    • SwiftVectorTiles - 根据Mapbox矢量图块规范的矢量切片的Swift编码器 .

    客户

    • Mapbox GL Native - 带有原生SDK的C / OpenGL矢量 Map 库,适用于Android,iOS,Node.js,macOS和Qt

    • Mapbox GL JS - JavaScript / WebGL矢量 Map 库 .

    • OpenLayers 3 - JavaScript矢量和栅格库 .

    • WhirlyGlobe/Maply - 能够在iOS设备上读取和渲染矢量切片(以及使用mapnik xml的样式)的目标C代码 .

    • Leaflet.MapboxVectorTile能够从REST endpoints 读取PBF MapboxVectorTiles,并在Leaflet Map上将它们渲染为TileLayer . 如果要在标准Leaflet Web Map 上使用矢量切片而不需要WebGL,请使用此选项 .

    • CARTO Mobile SDK - C Map 库专注于离线功能,适用于iOS,Android,Windows Phone和Xamarin,带有Java,Objective-C和C#的绑定 . 基于Nutiteq Maps SDK,但开源并使用CartoCSS .

    • Mapzen Tangram - 用于使用WebGL在Web浏览器中呈现2D和3D Map 的JavaScript库,支持MVT,GeoJSON,TopoJSON

    • Mapzen Tangram-es - 使用OpenGL ES 2渲染2D和3D Map 的C库,具有自定义样式和交互

    • mapbox-gl-leaflet - 在Leaflet中创建Mapbox GL图层

    • react-native-mapbox-gl - 从React应用程序渲染Mapbox GL贴图

    • hoverboard - 使用Leaflet 0.7.x在画布上渲染矢量切片(支持GeoJSON,TopoJSON和protobuf)

    • Leaflet.VectorGrid - 在Leaflet 1.0.0中显示网格化矢量数据(切片GeoJSON,TopoJSON或Mapbox矢量图块)

    • ArcGIS API for JavaScript - 将矢量切片图层绘制为Web Map 的一部分 . 通过 mapbox-gl-js 集成完成渲染 .

    • mapscii - 用于xterm兼容终端的矢量平铺到盲文和ASCII渲染器

    应用程序/命令行工具

    • Mapbox Studio - 桌面设计工作室,用于从原始地理数据创建矢量切片并将其即时渲染到图像切片中 . 内部使用 tilelive.js 模块来处理矢量切片(参见 tilelive-bridgetilelive-vector

    • kosmtik - 使用CartoCSS和Mapnik设计 Map .

    • ArcGIS Pro - 从ArcGIS Pro中创作的 Map 生成矢量切片或从ArcMap导入 .

    • MVT Styler - 矢量切片的 Map 样式编辑器 .

    • Maputnik - Mapbox GL样式规范的可视样式编辑器 .

    CLI实用程序

    • Datamaps C应用程序,可用于创建矢量切片并将其存储在mbtiles中 . 请参阅 render-vector 命令 .

    • tilemaker - 直接从.osm.pbf提取生成矢量切片而不使用中间数据库的命令行工具 .

    • vector-tiles-producer C中的命令行工具使用Mapnik XML以选定的缩放级别为给定区域创建矢量切片 .

    • tippecanoe - 从大量GeoJSON功能集构建矢量tilesets .

    • vt-geojson - 将矢量切片解码为GeoJSON FeatureCollections

    • tl - tilelive的备用命令行界面

    • tileshrink - 减少图层范围并简化MBTiles中所有矢量图块的结果几何图形

    • tiler - 用于将GeoJSON,Shapefiles或PostGIS图层转换为原始矢量图块(或MBTiles)的命令行工具

    • geojson2mvt - 用于为geojson文件中的给定xyz边界构建静态矢量切片树的npm包(使用vt-geojson)

    Mapbox GL JS插件

    • gl-draw - 在Mapbox GL JS Map 上添加对绘图和编辑功能的支持

    服务器

    • tessera - 支持服务和渲染矢量切片 . 使用与Mapbox Studio相同的核心库 .

    • tilestrata - 使用tilestrata-vt,它可以生成Mapnik矢量图块;使用tilestrata-postgismvt,它可以从PostGIS数据库中提供Mapbox Vector Tiles

    • SpatialServer (PGRestAPI) - 在SpatialDev创建的多用途GeoSpatial NodeJS Web服务器,不仅可以为填充了矢量切片的MBTile提供服务,还可以从PostGIS数据库中动态切割矢量切片 .

    • Utilery用于从PostGIS查询生成矢量切片的服务器 . 基于Python

    • tileserver Mapzen矢量平铺服务 .

    • TileStache通过.pbf扩展请求添加了对Mapbox Vector切片的支持 .

    • Kartotherian具有Tilerator后端磁贴预生成器的Wikipedia磁贴服务器

    • ArcGIS Online - 支持在由ArcGIS API for JavaScript支持的 Map 应用程序中提供矢量切片和渲染

    • Portal for ArcGIS - 支持在由ArcGIS API for JavaScript支持的 Map 应用程序中提供矢量切片和渲染

    • tilesplash - 一个轻快的nodejs网络服务器,用于从postgis后端提供topojson或mapbox矢量切片

    • go-vtile-example - 用Go编写的示例服务器

    • Tegola - 用纯Go编写的MVT服务器,支持PostGIS数据提供程序中的服务切片 .

    • t-rex - 用Rust编写的单个可执行文件中的MVT服务器 . 提供PostGIS中支持自定义图块网格的图块 .

    低级实用程序

    文章

相关问题