pattern_ol3
by kalifa17
HTML
<link rel="stylesheet" href="http://openlayers.org/en/v3.15.1/css/ol.css">
<script src="http://openlayers.org/en/v3.15.1/build/ol.js"></script>
<div id="info"> </div>
<div><img id="tree_icon" src="http://www.freeiconspng.com/uploads/small-tree-icon-2.jpg" withd=50 height=50></div>
<div><canvas id="myCanvas" width="100" height="100" style="border:1px solid #d3d3d3;"></div>
<div id="map" class="map"></div>
JavaScript
function makePattern() {
var cnv = document.createElement('canvas');
var ctx = cnv.getContext('2d');
cnv.width = 6;
cnv.height = 6;
ctx.fillStyle = 'rgb(255, 0, 0)';
for(var i = 0; i < 3; ++i) {
ctx.fillRect(i, i, 1, 1);
}
return ctx.createPattern(cnv, 'repeat');
}
function makePattern4(){
var img = document.getElementById('tree_icon');
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
//ctx.clearRect(0, 0, c.width, c.height);
// ctx.clearRect(0, 0, 10, 10);
var pat = ctx.createPattern(img, 'repeat');
ctx.rect(0, 0, 300, 200);
ctx.fillStyle = pat;
ctx.fill();
ctx.globalAlpha = 0.5;
// return pat;
return ctx.createPattern(c, 'repeat');
};
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
}),
new ol.layer.Image({
source: new ol.source.ImageVector({
source: new ol.source.Vector({
url: 'http://openlayers.org/en/master/examples/data/geojson/countries.geojson',
format: new ol.format.GeoJSON()
}),
style: new ol.style.Style({
fill: new ol.style.Fill({
//color: 'rgba(255, 255, 255, 0.6)'
color: makePattern4()
}),
stroke: new ol.style.Stroke({
color: '#319FD3',
width: 1
})
})
})
})
],
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 1
})
});
var featureOverlay = new ol.layer.Vector({
source: new ol.source.Vector(),
map: map,
style: new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#f00',
width: 1
}),
fill: new ol.style.Fill({
color: 'rgba(255,0,0,0.1)'
})
})
});
var highlight;
var displayFeatureInfo = function(pixel) {
var feature = map.forEachFeatureAtPixel(pixel, function(feature) {
return feature;
});
var info = document.getElementById('info');
if (feature) {
...