OSM数据转mapBox格式

Dot*_*tan 4 openstreetmap mapbox

我看到几个地方将OSM数据转换为MVT(mapbox 矢量切片)以进行简单渲染。

其中包括:

  • OSRM提供基于 MVT 的路线图像进行渲染
  • OpenMapTiles可以下载 MVT 格式的 OSM 地图
  • GeoServer可以导入OSM和导出MVT

有没有一个简单的工具可以在本地将OSM数据转换为MVT?

我有自己的 OSM 格式数据,我想将其转换为 MVT 并存储在本地,而不渲染为地图图像。

sca*_*cai 5

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 的矢量切片服务)。
  • geojson-vt - 在浏览器中动态将 GeoJSON 切片为矢量切片。
  • java-vector-tile - 矢量瓦片的 java 编码器和解码器。
  • mapbox-vector-tile-java - 编码和解码 v2.1 Mapbox 矢量切片。将 JTS Geometry 与 MVT 功能相互转换,包括简单的用户数据支持。用于将世界坐标转换为 MVT 坐标并裁剪为平铺信封的实用函数。
  • cached-vector-tile - vector-tile-js 接口的替代实现,由普通 JS 对象/数组而不是按需解析的 protobuf 数据支持。牺牲内存效率来换取更快的 feature.loadGeometry() 调用。
  • tilegrinder - 一个帮助程序库,用于在 MBTiles 中的每个矢量切片上应用数据更改功能,使用本机 protobuf 包装器进行解和编码,重新压缩结果并将它们存储在 MBTiles 中或作为单个文件。
  • SwiftVectorTiles - 根据 Mapbox 矢量切片规范的矢量切片 Swift 编码器.

客户

  • Mapbox GL Native - C++/OpenGL 矢量地图库,带有适用于 Android、iOS、Node.js、macOS 和 Qt 的本机 SDK
  • Mapbox GL JS - JavaScript/WebGL 矢量地图库。
  • OpenLayers 3 - JavaScript 矢量和光栅库。
  • WhirlyGlobe/Maply - Objective C 代码,能够在 iOS 设备上读取和渲染矢量图块(以及使用 mapnik xml 的样式)。
  • Leaflet.MapboxVectorTile能够从 REST 端点读取 PBF MapboxVectorTiles 并将它们呈现为 Leaflet 地图上的 TileLayer。如果您想在标准 Leaflet web 地图上使用矢量切片而不需要 WebGL,请使用此选项。
  • CARTO Mobile SDK - 专注于离线功能的 C++ 地图库,适用于 iOS、Android、Windows Phone 和 Xamarin,并绑定了 Java、Objective-C 和 C#。基于Nutiteq Maps SDK,但开源并使用 CartoCSS。
  • Mapzen Tangram - 用于使用 WebGL 在 Web 浏览器中实时渲染 2D 和 3D 地图的 JavaScript 库,支持 MVT、GeoJSON、TopoJSON
  • Mapzen Tangram-es - C++ 库,用于使用 OpenGL ES 2 以及自定义样式和交互来渲染 2D 和 3D 地图
  • mapbox-gl-leaflet - 在 Leaflet 中创建 Mapbox GL 图层
  • react-native-mapbox-gl - 从 React 应用程序渲染 Mapbox GL 地图
  • 悬停板- 使用 Leaflet 0.7.x 在画布上渲染矢量图块(支持 GeoJSON、TopoJSON 和 protobuf)
  • Leaflet.VectorGrid - 在 Leaflet 1.0.0 中显示网格矢量数据(切片 GeoJSON、TopoJSON 或 Mapbox 矢量切片)
  • ArcGIS API for JavaScript - 绘制矢量切片图层作为 web 地图的一部分。通过集成完成渲染mapbox-gl-js
  • mapscii - 用于 xterm 兼容终端的盲文和 ASCII 渲染器的矢量平铺

应用程序/命令行工具

  • Mapbox Studio - 桌面设计工作室,用于从原始地理数据创建矢量切片并将其即时渲染为图像切片。内部使用tilelive.js模块来处理矢量图块(请参阅tilelive-bridgetilelive-vector
  • kosmtik - 使用 CartoCSS 和 Mapnik 设计地图.
  • ArcGIS Pro - 从 ArcGIS Pro 中创作的地图或从 ArcMap 导入的地图生成矢量切片。
  • MVT Styler - 矢量图块的地图样式编辑器。
  • Maputnik - Mapbox GL 样式规范的视觉样式编辑器。

CLI 实用程序

  • Datamaps C 应用程序可用于创建矢量图块并将其存储在 mbtiles 中。查看render-vector命令。
  • tilemaker - 命令行工具,可直接从 .osm.pbf 提取物生成矢量切片,无需中间数据库。
  • 矢量瓦片生产者C++ 命令行工具,使用 Mapnik XML 以选定的缩放级别为给定区域创建矢量切片。
  • tippecanoe - 从大量 GeoJSON 功能集合构建矢量图块集.
  • 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 地图上绘制和编辑功能的支持

服务器

  • tessera - 支持服务和渲染矢量切片。使用与 Mapbox Studio 相同的核心库。
  • tilestrata - 使用tilestrata-vt,它可以生成Mapnik矢量瓦片;使用tilestrata-postgismvt,它可以从PostGIS数据库提供Mapbox矢量切片
  • SpatialServer (PGRestAPI) - SpatialDev创建的多用途 GeoSpatial NodeJS Web 服务器,不仅提供填充矢量切片的 MBTiles,还可以从 PostGIS 数据库动态剪切矢量切片。
  • Utilery Server 从 PostGIS 查询生成矢量切片。基于Python
  • tileserver Mapzen 矢量平铺服务。
  • TileStache通过 .pbf 扩展请求添加了对 Mapbox 矢量图块的支持。
  • Kartotherian Wikipedia 瓦片服务器,带有Tilerator后端瓦片预生成器
  • ArcGIS Online - 支持在由 ArcGIS API for JavaScript 提供支持的地图应用程序中提供矢量切片和渲染
  • Portal for ArcGIS - 支持在由 ArcGIS API for JavaScript 提供支持的地图应用程序中提供矢量切片和渲染
  • tilesplash - 一个轻量且快速的nodejs网络服务器,用于从postgis后端提供topojson或mapbox矢量图块
  • go-vtile-example - 用 Go 编写的示例服务器
  • Tegola - 用纯 Go 编写的 MVT 服务器,支持从 PostGIS 数据提供者提供切片服务。
  • t-rex - 用 Rust 编写的单个可执行文件中的 MVT 服务器. 提供来自 PostGIS 的图块,支持自定义图块网格。

低级实用程序

文章