2015-07-10 167 views
1

这是我的版本。但它不起作用。显示画布,但不响应拖轮和缩放。如何将base64解码图像添加到开发图中?

   var layer = new ol.layer.Image({ 
       source: new ol.source.ImageCanvas({ 
        canvasFunction: function(){ 
         var canvas = document.createElement('canvas'); 
         var context = canvas.getContext('2d'); 
         var image = new Image(); 

         canvas.setAttribute('width', attachment.width); 
         canvas.setAttribute('height', attachment.height); 

         image.onload = function(){ 
          context.drawImage(image, 0, 0); 
         }; 

         image.src = attachment.src; 

         return canvas; 
        }, 
        projection: view.getProjection() 
       }) 
      }); 
+0

您可以提交您自己的问题的答案。当你自己发现解决方案时,实际上是推荐的事情。 – Jason

回答

3

我找到答案!只需使用ol.source.ImageStatic和imageLoadFunction:

  var layer = new ol.layer.Image({ 
      source : new ol.source.ImageStatic({ 
       imageExtent : view.getProjection().getExtent(), 
       size : [attachment.width, attachment.height], 
       imageLoadFunction : function(image){ 
        image.getImage().src = attachment.src; 
       }, 
       projection : view.getProjection(), 
       url : '' 
      }) 
     });