mirror of
https://github.com/iiab/iiab.git
synced 2025-02-13 19:52:06 +00:00
89 lines
1.9 KiB
JavaScript
89 lines
1.9 KiB
JavaScript
import {Fill, Stroke, Style} from 'ol/style';
|
|
import 'ol/ol.css';
|
|
import GeoJSON from 'ol/format/GeoJSON';
|
|
import Map from 'ol/Map';
|
|
import VectorLayer from 'ol/layer/Vector';
|
|
import VectorSource from 'ol/source/Vector';
|
|
import View from 'ol/View';
|
|
//import XYZSource from 'ol/source/XYZ';
|
|
//import MVT from 'ol/format/MVT';
|
|
|
|
// a global variable to control which features are shown
|
|
var show = {};
|
|
var mapData = "/common/assets";
|
|
|
|
|
|
var map = new Map({
|
|
target: 'map-container',
|
|
layers: [
|
|
new VectorLayer({
|
|
source: new VectorSource({
|
|
format: new GeoJSON(),
|
|
url: mapData + '/countries.json'
|
|
}),
|
|
style: new Style({
|
|
fill: new Fill({
|
|
color: 'rgb(219, 180, 131)'
|
|
}),
|
|
stroke: new Stroke({
|
|
color: 'white'
|
|
})
|
|
})
|
|
}),
|
|
|
|
],
|
|
|
|
view: new View({
|
|
center: [0, 0],
|
|
zoom: 2
|
|
})
|
|
});
|
|
|
|
var setBoxStyle = function(feature) {
|
|
var name = feature.get("name");
|
|
//alert(keys+'');
|
|
if (typeof show !== 'undefined' &&
|
|
show != null && name == show) {
|
|
return new Style({
|
|
fill: new Fill({
|
|
color: 'rgba(67, 163, 46, 0.2)'
|
|
}),
|
|
stroke: new Stroke({
|
|
color: 'rgba(67, 163, 46, 1)',
|
|
width: 2
|
|
})
|
|
})
|
|
} else {
|
|
return new Style({
|
|
fill: new Fill({
|
|
color: 'rgba(255,255,255,.10)'
|
|
}),
|
|
stroke: new Stroke({
|
|
color: 'rgba(255,255,255,.3)'
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
var boxLayer = new VectorLayer({
|
|
source: new VectorSource({
|
|
format: new GeoJSON(),
|
|
url: mapData + '/bboxes.geojson'
|
|
}),
|
|
id: 'boxes',
|
|
style: setBoxStyle
|
|
});
|
|
map.addLayer(boxLayer);
|
|
|
|
$( document ).on("mouseover",".extract",function(){
|
|
|
|
var data = JSON.parse($(this).attr('data-region'));
|
|
show = data.name;
|
|
//setBoxStyle();
|
|
boxLayer.changed();
|
|
});
|
|
$( document ).on("mouseout",".extract",function(){
|
|
var data = JSON.parse($(this).attr('data-region'));
|
|
show = '';
|
|
boxLayer.changed();
|
|
});
|