add photo tiles from Bianco Veigel & Rene Hansen
This commit is contained in:
parent
8a7a5a5972
commit
4af74834b4
124
dist/main.css
vendored
124
dist/main.css
vendored
|
@ -250,6 +250,130 @@
|
||||||
cursor: move;
|
cursor: move;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.layer-switcher.shown.ol-control {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher.shown.ol-control:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher {
|
||||||
|
position: absolute;
|
||||||
|
top: 3.5em;
|
||||||
|
right: 0.5em;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher.shown {
|
||||||
|
bottom: 3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher .panel {
|
||||||
|
padding: 0 1em 0 0;
|
||||||
|
margin: 0;
|
||||||
|
border: 4px solid #eee;
|
||||||
|
border-radius: 4px;
|
||||||
|
background-color: white;
|
||||||
|
display: none;
|
||||||
|
max-height: 100%;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher.shown .panel {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher button {
|
||||||
|
float: right;
|
||||||
|
width: 38px;
|
||||||
|
height: 38px;
|
||||||
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAACE1BMVEX///8A//8AgICA//8AVVVAQID///8rVVVJtttgv98nTmJ2xNgkW1ttyNsmWWZmzNZYxM4gWGgeU2JmzNNr0N1Rwc0eU2VXxdEhV2JqytQeVmMhVmNoydUfVGUgVGQfVGQfVmVqy9hqy9dWw9AfVWRpydVry9YhVmMgVGNUw9BrytchVWRexdGw294gVWQgVmUhVWPd4N6HoaZsy9cfVmQgVGRrytZsy9cgVWQgVWMgVWRsy9YfVWNsy9YgVWVty9YgVWVry9UgVWRsy9Zsy9UfVWRsy9YgVWVty9YgVWRty9Vsy9aM09sgVWRTws/AzM0gVWRtzNYgVWRuy9Zsy9cgVWRGcHxty9bb5ORbxdEgVWRty9bn6OZTws9mydRfxtLX3Nva5eRix9NFcXxOd4JPeINQeIMiVmVUws9Vws9Vw9BXw9BYxNBaxNBbxNBcxdJexdElWWgmWmhjyNRlx9IqXGtoipNpytVqytVryNNrytZsjZUuX210k5t1y9R2zNR3y9V4lp57zth9zdaAnKOGoaeK0NiNpquV09mesrag1tuitbmj1tuj19uktrqr2d2svcCu2d2xwMO63N+7x8nA3uDC3uDFz9DK4eHL4eLN4eIyYnDX5OM5Z3Tb397e4uDf4uHf5uXi5ePi5+Xj5+Xk5+Xm5+Xm6OY6aHXQ19fT4+NfhI1Ww89gx9Nhx9Nsy9ZWw9Dpj2abAAAAWnRSTlMAAQICAwQEBgcIDQ0ODhQZGiAiIyYpKywvNTs+QklPUlNUWWJjaGt0dnd+hIWFh4mNjZCSm6CpsbW2t7nDzNDT1dje5efr7PHy9PT29/j4+Pn5+vr8/f39/f6DPtKwAAABTklEQVR4Xr3QVWPbMBSAUTVFZmZmhhSXMjNvkhwqMzMzMzPDeD+xASvObKePPa+ffHVl8PlsnE0+qPpBuQjVJjno6pZpSKXYl7/bZyFaQxhf98hHDKEppwdWIW1frFnrxSOWHFfWesSEWC6R/P4zOFrix3TzDFLlXRTR8c0fEEJ1/itpo7SVO9Jdr1DVxZ0USyjZsEY5vZfiiAC0UoTGOrm9PZLuRl8X+Dq1HQtoFbJZbv61i+Poblh/97TC7n0neCcK0ETNUrz1/xPHf+DNAW9Ac6t8O8WH3Vp98f5lCaYKAOFZMLyHL4Y0fe319idMNgMMp+zWVSybUed/+/h7I4wRAG1W6XDy4XmjR9HnzvDRZXUAYDFOhC1S/Hh+fIXxen+eO+AKqbs+wAo30zDTDvDxKoJN88sjUzDFAvBzEUGFsnADoIvAJzoh2BZ8sner+Ke/vwECuQAAAABJRU5ErkJggg==') /*logo.png*/;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: 2px;
|
||||||
|
background-color: white;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher.shown button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher button:focus, .layer-switcher button:hover {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher ul {
|
||||||
|
padding-left: 2em;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher li.group > label {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher li.layer {
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher li.layer label, .layer-switcher li.layer input {
|
||||||
|
display: table-cell;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher label.disabled {
|
||||||
|
opacity:0.4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher input {
|
||||||
|
margin: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher.touch ::-webkit-scrollbar {
|
||||||
|
width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher.touch ::-webkit-scrollbar-track {
|
||||||
|
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher.touch ::-webkit-scrollbar-thumb {
|
||||||
|
border-radius: 10px;
|
||||||
|
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher .group button {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: top;
|
||||||
|
float: none;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
background-position: center 2px;
|
||||||
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAW0lEQVR4nGNgGAWMyBwXFxcGBgaGeii3EU0tXHzPnj1wQRYsihqQ+I0ExDEMQAYNONgoAN0AmMkNaDSyQSheY8JiaCMOGzE04zIAmyFYNTMw4A+DRhzsUUBtAADw4BCeIZkGdwAAAABJRU5ErkJggg==');
|
||||||
|
-webkit-transition: -webkit-transform .2s ease-in-out;
|
||||||
|
-ms-transition: -ms-transform .2s ease-in-out;
|
||||||
|
transition: transform .2s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher .group.layer-switcher-close button {
|
||||||
|
transform: rotate(-90deg);
|
||||||
|
-webkit-transform: rotate(-90deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
li.group.layer-switcher-fold {
|
||||||
|
margin-left: -18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher .group.layer-switcher-fold > ul {
|
||||||
|
padding-left: 3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-switcher .group.layer-switcher-fold.layer-switcher-close > ul {
|
||||||
|
overflow: hidden;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
html, body {
|
html, body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
height: 100%; }
|
height: 100%; }
|
||||||
|
|
2
dist/main.css.map
vendored
2
dist/main.css.map
vendored
File diff suppressed because one or more lines are too long
6364
dist/main.js
vendored
6364
dist/main.js
vendored
File diff suppressed because it is too large
Load diff
2
dist/main.js.map
vendored
2
dist/main.js.map
vendored
File diff suppressed because one or more lines are too long
33
package-lock.json
generated
33
package-lock.json
generated
|
@ -2369,14 +2369,12 @@
|
||||||
"balanced-match": {
|
"balanced-match": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.11",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
|
@ -2391,20 +2389,17 @@
|
||||||
"code-point-at": {
|
"code-point-at": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"concat-map": {
|
"concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"console-control-strings": {
|
"console-control-strings": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"core-util-is": {
|
"core-util-is": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
|
@ -2521,8 +2516,7 @@
|
||||||
"inherits": {
|
"inherits": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"ini": {
|
"ini": {
|
||||||
"version": "1.3.5",
|
"version": "1.3.5",
|
||||||
|
@ -2534,7 +2528,6 @@
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"number-is-nan": "^1.0.0"
|
"number-is-nan": "^1.0.0"
|
||||||
}
|
}
|
||||||
|
@ -2549,7 +2542,6 @@
|
||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"brace-expansion": "^1.1.7"
|
"brace-expansion": "^1.1.7"
|
||||||
}
|
}
|
||||||
|
@ -2557,14 +2549,12 @@
|
||||||
"minimist": {
|
"minimist": {
|
||||||
"version": "0.0.8",
|
"version": "0.0.8",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"minipass": {
|
"minipass": {
|
||||||
"version": "2.3.5",
|
"version": "2.3.5",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "^5.1.2",
|
"safe-buffer": "^5.1.2",
|
||||||
"yallist": "^3.0.0"
|
"yallist": "^3.0.0"
|
||||||
|
@ -2583,7 +2573,6 @@
|
||||||
"version": "0.5.1",
|
"version": "0.5.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"minimist": "0.0.8"
|
"minimist": "0.0.8"
|
||||||
}
|
}
|
||||||
|
@ -2664,8 +2653,7 @@
|
||||||
"number-is-nan": {
|
"number-is-nan": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"object-assign": {
|
"object-assign": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
|
@ -2677,7 +2665,6 @@
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
|
@ -2799,7 +2786,6 @@
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"code-point-at": "^1.0.0",
|
"code-point-at": "^1.0.0",
|
||||||
"is-fullwidth-code-point": "^1.0.0",
|
"is-fullwidth-code-point": "^1.0.0",
|
||||||
|
@ -4617,6 +4603,11 @@
|
||||||
"rbush": "2.0.2"
|
"rbush": "2.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"ol-layerswitcher": {
|
||||||
|
"version": "3.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ol-layerswitcher/-/ol-layerswitcher-3.3.0.tgz",
|
||||||
|
"integrity": "sha512-/ZFwcsGyjneugZWEItxkwCULix5lpRVJ2d/y+Ydd4r01MTtwMZHPJQMV3Q6ChrKgKtVwjLU7vyBXziLnaIvWsA=="
|
||||||
|
},
|
||||||
"on-finished": {
|
"on-finished": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
"mini-css-extract-plugin": "^0.7.0",
|
"mini-css-extract-plugin": "^0.7.0",
|
||||||
"node-sass": "^4.12.0",
|
"node-sass": "^4.12.0",
|
||||||
"ol": "^5.3.3",
|
"ol": "^5.3.3",
|
||||||
|
"ol-layerswitcher": "^3.3.0",
|
||||||
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
||||||
"sass-loader": "^7.1.0",
|
"sass-loader": "^7.1.0",
|
||||||
"ts-loader": "^6.0.4",
|
"ts-loader": "^6.0.4",
|
||||||
|
|
64
src/app.js
64
src/app.js
|
@ -4,8 +4,11 @@ import WebGLMap from 'ol/WebGLMap.js';
|
||||||
import {WEBGL} from 'ol/has.js'
|
import {WEBGL} from 'ol/has.js'
|
||||||
import View from 'ol/View.js';
|
import View from 'ol/View.js';
|
||||||
import {defaults as defaultControls, Attribution as AttributionControl} from 'ol/control.js';
|
import {defaults as defaultControls, Attribution as AttributionControl} from 'ol/control.js';
|
||||||
|
import LayerSwitcher from 'ol-layerswitcher';
|
||||||
import {all as allStrategy} from 'ol/loadingstrategy';
|
import {all as allStrategy} from 'ol/loadingstrategy';
|
||||||
import {bbox as bboxStrategy} from 'ol/loadingstrategy.js';
|
import {bbox as bboxStrategy} from 'ol/loadingstrategy.js';
|
||||||
|
import LayerGroup from 'ol/layer/Group';
|
||||||
|
import LayerImage from 'ol/layer/Image';
|
||||||
import TileLayer from 'ol/layer/Tile';
|
import TileLayer from 'ol/layer/Tile';
|
||||||
import OSM from 'ol/source/OSM.js';
|
import OSM from 'ol/source/OSM.js';
|
||||||
import XYZ from 'ol/source/XYZ';
|
import XYZ from 'ol/source/XYZ';
|
||||||
|
@ -127,23 +130,25 @@ var styles = {
|
||||||
var vectorSource = new VectorSource({
|
var vectorSource = new VectorSource({
|
||||||
format: new OSMXML(),
|
format: new OSMXML(),
|
||||||
url: 'https://seafile.milliways.info/f/688170149668429f9598/?dl=1',
|
url: 'https://seafile.milliways.info/f/688170149668429f9598/?dl=1',
|
||||||
strategy: allStrategy
|
strategy: allStrategy,
|
||||||
})
|
|
||||||
|
|
||||||
var map = new MapClass({
|
|
||||||
target: 'map',
|
|
||||||
controls: defaultControls().extend([
|
|
||||||
]),
|
|
||||||
numZoomLevels: 19,
|
|
||||||
units: 'm',
|
|
||||||
layers: [
|
|
||||||
new TileLayer({
|
|
||||||
source: new OSM()
|
|
||||||
}),
|
|
||||||
new VectorLayer({
|
|
||||||
source: vectorSource,
|
|
||||||
attributions: '©<a href="https://git.milliways.info/Milliways/cccamp19-map">Milliways</a>',
|
attributions: '©<a href="https://git.milliways.info/Milliways/cccamp19-map">Milliways</a>',
|
||||||
|
});
|
||||||
|
|
||||||
|
var tileLayer = new TileLayer({
|
||||||
|
title: 'Photos',
|
||||||
|
type: 'base',
|
||||||
|
source: new XYZ({
|
||||||
|
url: 'https://cdn.eventphone.de/maps/ziegeleipark/{z}/{x}/{y}.jpg',
|
||||||
|
maxZoom: 22,
|
||||||
|
minZoom: 14,
|
||||||
|
attributions: 'Bianco Veigel & Rene Hansen',
|
||||||
attributionsCollapsible: false,
|
attributionsCollapsible: false,
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
var vectorLayer = new VectorLayer({
|
||||||
|
title: 'Milliways Overlay',
|
||||||
|
source: vectorSource,
|
||||||
style: function(feature) {
|
style: function(feature) {
|
||||||
for (var key in styles) {
|
for (var key in styles) {
|
||||||
var value = feature.get(key);
|
var value = feature.get(key);
|
||||||
|
@ -165,6 +170,35 @@ var map = new MapClass({
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var osmLayer = new TileLayer({
|
||||||
|
title: 'OSM',
|
||||||
|
type: 'base',
|
||||||
|
source: new OSM()
|
||||||
|
});
|
||||||
|
|
||||||
|
var map = new MapClass({
|
||||||
|
target: 'map',
|
||||||
|
controls: defaultControls().extend([
|
||||||
|
new LayerSwitcher()
|
||||||
|
]),
|
||||||
|
numZoomLevels: 19,
|
||||||
|
units: 'm',
|
||||||
|
layers: [
|
||||||
|
new LayerGroup({
|
||||||
|
title: 'Base Layers',
|
||||||
|
layers: [
|
||||||
|
tileLayer,
|
||||||
|
osmLayer
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
new LayerGroup({
|
||||||
|
title: 'overlays',
|
||||||
|
layers: [
|
||||||
|
vectorLayer
|
||||||
|
]
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
view: new View({
|
view: new View({
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
@import "~ol/ol.css";
|
@import "~ol/ol.css";
|
||||||
|
@import "~ol-layerswitcher/src/ol-layerswitcher.css";
|
||||||
|
|
||||||
html, body {
|
html, body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
Loading…
Reference in a new issue