我想使用mapbox工具从MBTiles矢量数据存储区提供GeoJson磁贴。 这可能吗?
到目前为止我做了什么:
要检查,如果可以读取MBTiles文件,我已经尝试过了。
var tilelive = require('tilelive');
var MBTiles = require('mbtiles');
MBTiles.registerProtocols(tilelive);
var listsrc = function(src){ console.log('src: ' + src); }
tilelive.list('/home/bergw/Downloads', listsrc);
但它返回:null
尝试使用tilelive-vector
时会出现更多问题:
var opts = {};
opts.xml = 'file:///home/bergw/getgeojson/project.xml';
//opts.xml = 'file:///home/bergw/shapefiles/source.tm2/data.xml';
opts.format = 'json';
//opts.base = !style.tmpid(id) && uri.pathname;
opts.scale = 1; // data.scale || 1;
opts.source = 'mbtiles:///home/bergw/Downloads/source.mbtiles';
//opts.source = new MBTiles('/home/bergw/Downloads/source.mbtiles')
//opts.source = 'tmsource:///home/bergw/shapefiles/source.tm2';
v = new Vector(opts, done);
project.xml
是mapnik样式,我是从导出的tm2z
中提取的。
它仍然包含对原始shapefile的引用,但如果我不使用它,我会得到Error: No xml
。
使用我为源参数尝试的所有组合,我得到Error: Invalid tilesource protocol
。
我们非常感谢您提供有关如何处理或暗示其他工具或其组合更合适的任何帮助。
此致 威廉
答案 0 :(得分:1)
TileMill 2旨在创建protocol buffers作为矢量图块而不是GeoJSON。它也不是服务器,而是设计和设备。创作工具,因此不适合您目前的用例。像this tutorial for TileStache之类的东西对你来说是更好的选择。