2016-02-29 35 views

回答

5

這是因爲您的設備像素比例爲2,因爲您有HiDPI(視網膜)顯示屏。

您可以用{pixelRatio: 1}配置您的地圖,並得到一個模糊的地圖,或縮放導出圖像時ol.has.DEVICE_PIXEL_RATIO不等於1

map.once('postcompose', function(event) { 
    var dataURL; 
    var canvas = event.context.canvas; 
    if (ol.has.DEVICE_PIXEL_RATIO == 1) { 
    dataURL = canvas.toDataURL('image/png'); 
    } else { 
    var targetCanvas = document.createElement('canvas'); 
    var size = map.getSize(); 
    targetCanvas.width = size[0]; 
    targetCanvas.height = size[1]; 
    targetCanvas.getContext('2d').drawImage(canvas, 
     0, 0, canvas.width, canvas.height, 
     0, 0, targetCanvas.width, targetCanvas.height); 
    dataURL = targetCanvas.toDataURL('image/png'); 
    } 
}); 
map.renderSync(); 
+0

我們可以獲得縮放圖像的相同質量的圖像嗎? – Rayiez

+0

您必須選擇 - 要麼尺寸和質量相同,要麼尺寸相同,質量相同。 – ahocevar

+0

''HTMLCanvasElement'無法執行'toDataURL':受污染的畫布可能無法導出。「...爲什麼? (Chrome,Tomcat7和Java應用程序) –