Javascript 使用节点Mapnik+创建矢量分幅;PostGIS(500(内部服务器错误))
我正在尝试在谷歌地图中创建带有矢量图块的网络地图。我正在使用:Javascript 使用节点Mapnik+创建矢量分幅;PostGIS(500(内部服务器错误)),javascript,node.js,google-maps-api-3,postgis,mapnik,Javascript,Node.js,Google Maps Api 3,Postgis,Mapnik,我正在尝试在谷歌地图中创建带有矢量图块的网络地图。我正在使用: mapnik node.js node mapnik postGIS 我使用端口8000(127.0.0.1:8000)显示地图磁贴 var mapTiles = { tilejson: '1.0.0', scheme: 'xyz', tiles: ['127.0.0.1:8000/{z}/{x}/{y}.png'], formatter: function(options, data) { retu
mapnik
node.js
node mapnik
postGIS
var mapTiles = {
tilejson: '1.0.0',
scheme: 'xyz',
tiles: ['127.0.0.1:8000/{z}/{x}/{y}.png'],
formatter: function(options, data) { return data.NAME }
};
我有server.js
,这个文件我用来创建服务器
http.createServer(function(req, res) {
parseXYZ(req, TMS_SCHEME, function(err,params) {
if (err) {
res.writeHead(500, {'Content-Type': 'text/plain'});
res.end(err.message);
} else {
try {
var map = new mapnik.Map(256, 256, mercator.proj4);
var layer = new mapnik.Layer('tile', mercator.proj4);
var postgis = new mapnik.Datasource(postgis_settings); // settings defined above
var bbox = mercator.xyz_to_envelope(parseInt(params.x),
parseInt(params.y),
parseInt(params.z), false); // coordinates provided by the sphericalmercator.js script
layer.datasource = postgis;
layer.styles = ['polygon']; // this pertains the the style in the xml doc
map.bufferSize = 0; // how much edging is provided for each tile rendered
map.load(path.join(__dirname, 'tile_symbols.xml'), {strict: true}, function(err,map) {
if (err) throw err;
map.add_layer(layer);
map.extent = bbox;
var im = new mapnik.Image(map.width, map.height);
map.render(im, function(err, im) {
if (err) {
throw err;
} else {
res.writeHead(200, {'Content-Type': 'image/png'});
res.end(im.encodeSync('png'));
}
});
});
}
catch (err) {
res.writeHead(500, {'Content-Type': 'text/plain'});
res.end(err.message);
}
}
});
}).listen(port);
之后,我启动服务>node server.js
我收到成功消息服务器在端口8000上运行
。然后,我尝试检查我的代码工作与否,发现了一些问题:
没有提供的x,y,z
index.html
文件(http://localhost/webmaps/
),即
多边形没有出现在地图中,我得到500(内部服务器错误)
-无法为类型创建数据源:“postgis”(没有成功注册数据源插件目录)
有人能帮我解决这个问题吗?或者,如果有人有其他方法在谷歌地图中为海量数据制作矢量图块,这将非常有用。看起来您需要将postgis注册为插件。查看github上注册数据源行的
节点mapnik
中的示例代码。有没有发现@Adi?是的,@Adi,运气好吗?我只是问了一个问题