2016-05-13 142 views
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文件,那肯定是最重要的,或者路徑錯誤,而不是。有任何想法嗎?

回答

1

xml選項需要更改爲pathname。這改變了0.4.0

+0

謝謝,修復它。在文檔中提到這一點很好,因爲我花了幾個月的時間來敲打我的頭,試圖弄清楚我做錯了什麼。 – northlandiguana

相關問題