Проблема при чтении pbf векторной плитки Mapbox с помощью OGR

Я хочу преобразовать векторные плитки pbf, созданные в Geoserver, в формат GeoJson. Для этого я использовал эту ссылку, которая не дает подробных инструкций о том, как это сделать. Я тестировал ogrinfo 6449_traffic.vector.pbf в терминале Linux, который дает мне следующую ошибку:

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 с помощью этого инструмента или любых альтернативных?


person Harry Wilson    schedule 07.01.2019    source источник


Ответы (1)


У меня была такая же проблема, и этот https://github.com/mapbox/pbf работал у меня. Вам нужно 2 файла:

  • Файл схемы (обычно .proto файл)
  • Файл данных (ваш .pbf файл)

Сначала вам нужно преобразовать .proto в .js с помощью: pbf Schema.proto > Schema.js

Затем вы можете прочитать или написать pbf, для этого вам нужно выполнить некоторый код javascript и html и запустить его из веб-браузера. Или, если вы хотите запустить с терминала, используйте 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
person faanbece    schedule 28.07.2019