GeoJson矢量瓷砖与TM2和tilelive矢量

时间:2013-12-10 14:39:40

标签: mapbox tilemill

我想使用mapbox工具从MBTiles矢量数据存储区提供GeoJson磁贴。 这可能吗?

到目前为止我做了什么:

  • 克隆并安装了大量存储库:TM2,tilelive,tilelive-vector,mbtiles,...
  • 将shapefile导入TM2
  • 应用了一种风格(这对于服务GeoJson来说甚至是必要的吗?)
  • 导出样式和MBTiles数据库

要检查,如果可以读取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

我们非常感谢您提供有关如何处理或暗示其他工具或其组合更合适的任何帮助。

此致 威廉

1 个答案:

答案 0 :(得分:1)

TileMill 2旨在创建protocol buffers作为矢量图块而不是GeoJSON。它也不是服务器,而是设计和设备。创作工具,因此不适合您目前的用例。像this tutorial for TileStache之类的东西对你来说是更好的选择。