1
我正在尝试使用Tilestrata运行运行Ubuntu 16.04的Digital Ocean droplet上的Web地图磁贴服务器。我在所有设置完成后仍然遇到的问题是这样的错误:Digital Ocean上的Tilestrata错误Ubuntu 16.04
[email protected]:~/tileserver$ node server.js
/home/carl/node_modules/tilestrata/lib/TileServer.js:502
var callback = function(err) { if (err) throw err; };
^
Error: Unable to initialize "basemap" layer: "expected < at line 1"
at /home/carl/node_modules/tilestrata/lib/TileServer.js:106:19
at /home/carl/node_modules/tilestrata/node_modules/async/lib/async.js:52:16
at done (/home/carl/node_modules/tilestrata/node_modules/async/lib/async.js:243:17)
at /home/carl/node_modules/tilestrata/node_modules/async/lib/async.js:44:16
at Immediate._onImmediate (/home/carl/node_modules/tilestrata/lib/TileRequestHandler.js:125:4)
at processImmediate [as _immediateCallback] (timers.js:383:17)
我的配置应该很好。它与已经在亚马逊AWS实例上工作的完全一样(我想切换到DO,因为它们有更好的定价方案)。我找不出为什么节点服务器脚本不会读取mapnik xml文件(project.xml)。这与在AWS Ubuntu EC2实例中正常工作的XML相同。这里是server.js的完整剧本:
var tilestrata = require('tilestrata');
var disk = require('tilestrata-disk');
var mapnik = require('tilestrata-mapnik');
var dependency = require('tilestrata-dependency');
var strata = tilestrata();
// define layers
strata.layer('basemap')
.route('tile.png')
.use(disk.cache({dir: '/home/carl/tileserver/tiles/basemap/'}))
.use(mapnik({
xml: '/home/carl/tileserver/project/project.xml',
tileSize: 256,
scale: 1
}));
// start accepting requests
strata.listen(8080);
我知道脚本是做什么的,因为它成功地创建了tiles/basemap
目录。但是,Mapnik插件会窒息,好像没有project.xml文件,那肯定是最重要的,或者路径错误,而不是。有任何想法吗?
谢谢,修复它。在文档中提到这一点很好,因为我花了几个月的时间来敲打我的头,试图弄清楚我做错了什么。 – northlandiguana