使用OGR读取Mapbox矢量图块pbf时出现问题

时间:2019-01-07 13:51:25

标签: mapbox geojson vector-tiles

我想将在Geoserver中创建的pbf矢量图块转换为GeoJson格式。为此,我使用了这个link,它没有给出太多有关如何执行此操作的说明。我已经在Linux终端中使用ogrinfo 6449_traffic.vector.pbf进行了测试,这给了我以下错误:

Unable to open datasource `6449_traffic.vector.pbf' with the following drivers.
  -> PCIDSK
  -> netCDF
  -> JP2OpenJPEG
  -> PDF
  -> ESRI Shapefile
  -> MapInfo File
  -> UK .NTF
  -> OGR_SDTS
  -> S57
  -> DGN
  -> OGR_VRT
  -> REC
  -> Memory
  -> BNA
  -> CSV
  -> NAS
  -> GML
  -> GPX
  -> LIBKML
  -> KML
  -> GeoJSON
  -> Interlis 1
  -> Interlis 2
  -> OGR_GMT
  -> GPKG
  -> SQLite
  -> OGR_DODS
  -> ODBC
  -> WAsP
  -> PGeo
  -> MSSQLSpatial
  -> OGR_OGDI
  -> PostgreSQL
  -> MySQL
  -> OpenFileGDB
  -> XPlane
  -> DXF
  -> CAD
  -> Geoconcept
  -> GeoRSS
  -> GPSTrackMaker
  -> VFK

如何使用此工具或其他替代工具将mvt.pbf文件转换为GeoJson?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,这个https://github.com/mapbox/pbf为我工作。您需要2个文件:

  • 架构文件(通常为.proto文件)
  • 数据文件(您的.pbf文件)

首先,您需要使用.proto.js转换为pbf Schema.proto > Schema.js

然后,您可以读取或写入pbf,为此,您需要执行一些javascript和html代码并从Web浏览器启动。或者,如果要从终端启动,请以这种方式使用node data_extractor.js ):

// Imports
var fs = require("fs");
var Pbf = require('pbf');
var Vector_Tile = require('./Schema.js').Tile;
// *Tile* is the exported object of my schema file. You need to check what is yours.

// Read the .pbf
var pbf = new Pbf(fs.readFileSync('./ogrinfo 6449_traffic.vector.pbf'));
var obj = Vector_Tile.read(pbf);
console.log(obj)
  • 然后在终端机上运行:node data_extractor.js