我是靠谱客的博主 勤恳裙子,这篇文章主要介绍OpenLayers3添加ImageCanvas作为图层,现在分享给大家,希望可以做个参考。

ol3中的ImageCanvas天然就是为了让用户将Canvas画的图像添加到地图中作为图层。

下面给出代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加一个Canvas图层</title>
<script type="text/javascript" src="../build/ol-debug.js" ></script>
<link rel="stylesheet" href="../css/ol.css" />
</head>
<body>
	<div id="map" class="map"></div>
<script>
var isFirst=true;//是否第一次加载该canvas图层
var canvasOption=new Object();
//ImageCanvas有一个canvasFunction属性
//通过查看源代码,发现该属性其实是一个回调函数,需要对该函数进行实现,从而创建一个canvas
//创建回调函数如下
canvasOption.canvasFunction=function(extent, resolution, pixelRatio, size, projection){
if(isFirst)//这里必须要做一个判断,每次的范围变动都会引起重绘,从而触发该回调函数,不判断的话,将会导致canvas无法被绘制到地图上,出现闪现的情况
{
isFirst=false;
var canvas=document.createElement('canvas');
canvas.width=size[0];
canvas.height=size[1];
var context = canvas.getContext('2d');
context.fillStyle = "blue";
context.fillRect(0,0,1000,1000);
return canvas;
}
};
//为ImageCanvasLayer创建数据源
var imageCanvas=new ol.source.ImageCanvas(canvasOption);
//创建一个ImageCanvasLayer图层
var imageCanvasLayer=new ol.layer.Image({
source:imageCanvas
});
var layers = [
new ol.layer.Tile({
source: new ol.source.OSM()//这里使用ol自带的一个地图图层作为底图
}),
imageCanvasLayer
];
var map = new ol.Map({
layers: layers,
target: 'map',
view: new ol.View({
center: [-10997148, 4569099],
zoom: 4
})
});
</script>
</body>
</html>


最后

以上就是勤恳裙子最近收集整理的关于OpenLayers3添加ImageCanvas作为图层的全部内容,更多相关OpenLayers3添加ImageCanvas作为图层内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(118)

评论列表共有 0 条评论

立即
投稿
返回
顶部