Compare commits
2 commits
77b4f845ae
...
2242863fdd
Author | SHA1 | Date | |
---|---|---|---|
Chandler Swift | 2242863fdd | ||
Chandler Swift | 8d26ccf5c4 |
|
@ -1,6 +1,6 @@
|
||||||
import TileLayer from 'ol/layer/Tile';
|
import TileLayer from 'ol/layer/Tile';
|
||||||
import OSM from 'ol/source/OSM';
|
import OSM from 'ol/source/OSM';
|
||||||
import Stamen from 'ol/source/Stamen.js';
|
import StadiaMaps from 'ol/source/StadiaMaps.js';
|
||||||
|
|
||||||
import chandlerLayer from './chandler/layer.js';
|
import chandlerLayer from './chandler/layer.js';
|
||||||
import amtrakLayer from './amtrak/layer.js';
|
import amtrakLayer from './amtrak/layer.js';
|
||||||
|
@ -42,16 +42,16 @@ const layerCategories = [
|
||||||
{
|
{
|
||||||
name: "Stamen Watercolor (Raster)",
|
name: "Stamen Watercolor (Raster)",
|
||||||
layer: new TileLayer({
|
layer: new TileLayer({
|
||||||
source: new Stamen({
|
source: new StadiaMaps({
|
||||||
layer: 'watercolor',
|
layer: 'stamen_watercolor',
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Stamen Toner (Raster)",
|
name: "Stamen Toner (Raster)",
|
||||||
layer: new TileLayer({
|
layer: new TileLayer({
|
||||||
source: new Stamen({
|
source: new StadiaMaps({
|
||||||
layer: 'toner',
|
layer: 'stamen_toner',
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
|
|
34
main.js
34
main.js
|
@ -1,9 +1,11 @@
|
||||||
import './style.css';
|
import './style.css';
|
||||||
import {Map, View} from 'ol';
|
import {Map, View} from 'ol';
|
||||||
import {fromLonLat, get} from 'ol/proj.js';
|
import {fromLonLat, get, transform} from 'ol/proj.js';
|
||||||
import {defaults as defaultControls} from 'ol/control.js';
|
import {defaults as defaultControls} from 'ol/control.js';
|
||||||
import Overlay from 'ol/Overlay.js';
|
import Overlay from 'ol/Overlay.js';
|
||||||
|
|
||||||
|
import ContextMenu from 'ol-contextmenu';
|
||||||
|
|
||||||
import ToggleMenuControl from './ui/controls.js';
|
import ToggleMenuControl from './ui/controls.js';
|
||||||
|
|
||||||
import layerCategories from './layers/index.js';
|
import layerCategories from './layers/index.js';
|
||||||
|
@ -27,8 +29,36 @@ closer.onclick = function () {
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const contextMenu = new ContextMenu({
|
||||||
|
width: 170,
|
||||||
|
defaultItems: false,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
text: 'Open on OSM',
|
||||||
|
callback: obj => {
|
||||||
|
const coords = transform(obj.coordinate, 'EPSG:3857', 'EPSG:4326')
|
||||||
|
window.open(
|
||||||
|
`https://www.openstreetmap.org/#map=${map.getView().getZoom()}/${coords[1]}/${coords[0]}`,
|
||||||
|
"_blank",
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Copy lat/long',
|
||||||
|
callback: async function(obj){
|
||||||
|
const coords = transform(obj.coordinate, 'EPSG:3857', 'EPSG:4326')
|
||||||
|
try {
|
||||||
|
await navigator.clipboard.writeText(`${coords[1]}, ${coords[0]}`);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error.message);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
const map = new Map({
|
const map = new Map({
|
||||||
controls: defaultControls().extend([new ToggleMenuControl()]),
|
controls: defaultControls().extend([new ToggleMenuControl(), contextMenu]),
|
||||||
target: 'map',
|
target: 'map',
|
||||||
layers: [],
|
layers: [],
|
||||||
overlays: [popupOverlay],
|
overlays: [popupOverlay],
|
||||||
|
|
915
package-lock.json
generated
915
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -12,6 +12,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"hls.js": "^1.5.2",
|
"hls.js": "^1.5.2",
|
||||||
"ol": "latest",
|
"ol": "latest",
|
||||||
|
"ol-contextmenu": "^5.3.0",
|
||||||
"proj4": "2.9.0"
|
"proj4": "2.9.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue