o postgis loader emite consultas de metadados, mas não de dados
EDIT 1: Acabei de descobrir que o postgis tem umFunção ST_AsMVT embutido, o que faz exatamente o que eu quero (acho), então não vou usar o mapnik!
EDIT 2: infelizmente, essa função ainda não está em uma versão lançada do PostGIS, mas espero que esteja dentro das próximas semanas.
Originalmente publicado comoquestão do github.
Quando faço algo como o seguinte, com o log ativado para o meu banco de dados, vejo que algumas solicitações de "metadados" são feitas para o postgis, no entanto, nenhuma consulta de dados real é feita.
As solicitações de metadados são (presumivelmente) necessárias para a lógica relacionada a nomes / tipos de campos e extensão (quando não fornecidos explicitamente).
var postgis = new mapnik.Datasource({
type: 'postgis',
host: ... etc,
table: 'some_geometry_table',
geometry_field: 'geom',
srid: 4326,
extent: "-180,-85.0511,180,85.0511",
estimate_extent: false,
row_limit: 10 // !! this doesn't seem to do anything
});
var map = new mapnik.Map(256, 256);
var layer = new mapnik.Layer('some_layer');
layer.datasource = postgis;
map.add_layer(layer);
map.render(new mapnik.VectorTile(z, x, y), {}, (err, vtile) => {
if (err) next(err);
var data = vtile.getDataSync({});
var file = path + z + "," + x + "," + y + ".pbf"
console.log(data);
console.log("written: " + file);
fs.writeFileSync(file, data);
next(null);
});
});
Consulta de metadados como visto nos logs do postgres:
SELECT * FROM some_geometry_table LIMIT 0
O que estou fazendo errado?