2017-12-13 15 views
0

Nodejsを使用してサーバー側でマップを生成し、そのマップのイメージを作成する必要があります。私はleaflet-headlessを使って地図を作成し、画像を生成しています。リーフレットを変更することはできませんリーフレット - ヘッドレスを使用する場合のビューパラメータ

これはコードである:

const L = require('leaflet-headless'); 
const document = global.document; 
let createMap = (lanLat) => { 
     const element = document.createElement('div'); 
     element.id = 'map-leaflet-image'; 
     document.body.appendChild(element); 

     const filename = path.join(__dirname, '/leaflet-image.png'); 
     const map = L.map(element.id).setView([0, 0], 3); 

     L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { 
      attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' 
     }).addTo(map); 

     map.saveImage(filename,() => { 
      console.log('done'); 
     }) 
}; 

これが動作し、画像が保存されているが、私は(ズームアウト)setView([0,0], 1)setView()パラメータを変更すると、私はエラーメッセージが表示されます任意

return prev.apply(ctx, arguments);

Error: Image given has not completed loading

at Error (native) at CanvasRenderingContext2D.ctx.(anonymous function) [as drawImage]

を思考?

答えて

0

これは誰かに興味があるかもしれないが、問題は、リーフレット画像のlibを使用するmap.save()関数にあった。

これは、他のマーカー(?!)とともにマップに追加された特定の座標のマーカーが原因でエラーが発生するという奇妙なシナリオが原因で発生しました。私はそのマーカーを削除し、それは働いた。

関連する問題