Проблема в чтении Mapbox векторной плитки pbf с использованием OGR - PullRequest
0 голосов
/ 07 января 2019

Я хочу преобразовать векторные плитки 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, используя этот инструмент или любые другие?

1 Ответ

0 голосов
/ 28 июля 2019

У меня была такая же проблема, и эта 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...