Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
67707b7ded
|
||
|
|
9c96037e32
|
||
|
|
fc4c63b519
|
||
|
|
fe1c9f6300
|
||
|
|
0d66bc1266
|
||
|
|
ba3982d9a6
|
||
|
|
f2cc9a9783
|
||
|
|
0c1aeebdf7
|
||
|
|
3324a57206
|
11
dist/assets/index.03aa5401.js
vendored
11
dist/assets/index.03aa5401.js
vendored
File diff suppressed because one or more lines are too long
11
dist/assets/index.24fe7964.js
vendored
Normal file
11
dist/assets/index.24fe7964.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
BIN
dist/img/avatars/raucao.png
vendored
Normal file
BIN
dist/img/avatars/raucao.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 260 KiB |
BIN
dist/img/avatars/tobyyoungfox.jpg
vendored
Normal file
BIN
dist/img/avatars/tobyyoungfox.jpg
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
3
dist/index.html
vendored
3
dist/index.html
vendored
@@ -6,7 +6,8 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Road2Bitcoin Live Map</title>
|
<title>Road2Bitcoin Live Map</title>
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css">
|
||||||
<script type="module" crossorigin src="/assets/index.03aa5401.js"></script>
|
<script defer data-domain="r2b22.kip.pe" src="https://plausible.io/js/plausible.js"></script>
|
||||||
|
<script type="module" crossorigin src="/assets/index.24fe7964.js"></script>
|
||||||
<link rel="stylesheet" href="/assets/index.eed9f443.css">
|
<link rel="stylesheet" href="/assets/index.eed9f443.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
182553
geo/legacy-route.json
Normal file
182553
geo/legacy-route.json
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -6,6 +6,7 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Road2Bitcoin Live Map</title>
|
<title>Road2Bitcoin Live Map</title>
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css">
|
||||||
|
<script defer data-domain="r2b22.kip.pe" src="https://plausible.io/js/plausible.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="map"><div id="popup"></div></div>
|
<div id="map"><div id="popup"></div></div>
|
||||||
|
|||||||
37
main.js
37
main.js
@@ -7,12 +7,14 @@ import Point from 'ol/geom/Point';
|
|||||||
import {Tile as TileLayer, Vector as VectorLayer} from 'ol/layer';
|
import {Tile as TileLayer, Vector as VectorLayer} from 'ol/layer';
|
||||||
import {Circle as CircleStyle, Fill, Icon, Stroke, Style} from 'ol/style';
|
import {Circle as CircleStyle, Fill, Icon, Stroke, Style} from 'ol/style';
|
||||||
import {OSM, Vector as VectorSource} from 'ol/source';
|
import {OSM, Vector as VectorSource} from 'ol/source';
|
||||||
import {useGeographic, fromLonLat} from 'ol/proj';
|
import {useGeographic} from 'ol/proj';
|
||||||
import geojsonRoute from './geo/route.json'
|
import geojsonRoute from './geo/r2b22-route.json'
|
||||||
import geojsonPOI from './geo/poi.json'
|
import geojsonPOI from './geo/r2b22-poi.json';
|
||||||
|
import geojsonLegacy from './geo/legacy-route.json';
|
||||||
|
|
||||||
useGeographic();
|
useGeographic();
|
||||||
|
|
||||||
|
async function main() {
|
||||||
const styles = {
|
const styles = {
|
||||||
lineOrange: new Style({
|
lineOrange: new Style({
|
||||||
stroke: new Stroke({
|
stroke: new Stroke({
|
||||||
@@ -60,7 +62,9 @@ const styles = {
|
|||||||
// Route
|
// Route
|
||||||
//
|
//
|
||||||
|
|
||||||
const lastStageFinished = 2;
|
const tourStatus = await fetch('https://r2b22.kip.pe/status.json').then(res => res.json());
|
||||||
|
|
||||||
|
const lastStageFinished = tourStatus.lastStageFinished;
|
||||||
const stagesCompleted = geojsonRoute.features.slice(0, lastStageFinished);
|
const stagesCompleted = geojsonRoute.features.slice(0, lastStageFinished);
|
||||||
const stagesAhead = geojsonRoute.features.slice(lastStageFinished);
|
const stagesAhead = geojsonRoute.features.slice(lastStageFinished);
|
||||||
const vectorSourceStagesCompleted = new VectorSource();
|
const vectorSourceStagesCompleted = new VectorSource();
|
||||||
@@ -111,6 +115,18 @@ const trackedPointsLayer = new VectorLayer({
|
|||||||
style: styles.iconVan
|
style: styles.iconVan
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//
|
||||||
|
// Legacy routes
|
||||||
|
//
|
||||||
|
|
||||||
|
const vectorSourceLegacy = new VectorSource();
|
||||||
|
vectorSourceLegacy.addFeatures(new GeoJSON().readFeatures(geojsonLegacy));
|
||||||
|
|
||||||
|
const legacyLayer = new VectorLayer({
|
||||||
|
source: vectorSourceLegacy,
|
||||||
|
style: styles.lineOrange
|
||||||
|
});
|
||||||
|
|
||||||
//
|
//
|
||||||
// Map initialization
|
// Map initialization
|
||||||
//
|
//
|
||||||
@@ -130,6 +146,7 @@ const map = new Map({
|
|||||||
}),
|
}),
|
||||||
stagesCompletedLayer,
|
stagesCompletedLayer,
|
||||||
stagesAheadLayer,
|
stagesAheadLayer,
|
||||||
|
legacyLayer,
|
||||||
poiLayer,
|
poiLayer,
|
||||||
trackedPointsLayer
|
trackedPointsLayer
|
||||||
],
|
],
|
||||||
@@ -219,8 +236,8 @@ map.on('movestart', disposePopover);
|
|||||||
//
|
//
|
||||||
|
|
||||||
const updateInterval = 5000;
|
const updateInterval = 5000;
|
||||||
let followedFeature = vanFeature;
|
// let followedFeature = vanFeature;
|
||||||
let followedZoomed = false;
|
// let followedZoomed = false;
|
||||||
// let followedFeature = null;
|
// let followedFeature = null;
|
||||||
|
|
||||||
function startFollowing(feature, followLink) {
|
function startFollowing(feature, followLink) {
|
||||||
@@ -243,8 +260,9 @@ function updateData(startInterval=false) {
|
|||||||
.then(response => response.json())
|
.then(response => response.json())
|
||||||
.then(data => {
|
.then(data => {
|
||||||
console.log(data);
|
console.log(data);
|
||||||
const coords = [data.lon, data.lat];
|
const van_data = data.find(i => i.name == 'satoshithevan');
|
||||||
vanFeature.getGeometry().setCoordinates(coords);
|
const van_coords = [van_data.lon, van_data.lat];
|
||||||
|
vanFeature.getGeometry().setCoordinates(van_coords);
|
||||||
|
|
||||||
// let zoomLevel;
|
// let zoomLevel;
|
||||||
// if (!followedZoomed) {
|
// if (!followedZoomed) {
|
||||||
@@ -267,3 +285,6 @@ function updateData(startInterval=false) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
updateData(true);
|
updateData(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
|
|||||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "ol-vite",
|
"name": "ol-vite",
|
||||||
"version": "1.2.1",
|
"version": "1.6.0",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "ol-vite",
|
"name": "ol-vite",
|
||||||
"version": "1.2.1",
|
"version": "1.6.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ol": "latest"
|
"ol": "latest"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "map",
|
"name": "map",
|
||||||
"version": "1.2.1",
|
"version": "1.6.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "vite",
|
"start": "vite",
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
|
|||||||
BIN
public/img/avatars/raucao.png
Normal file
BIN
public/img/avatars/raucao.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 260 KiB |
BIN
public/img/avatars/tobyyoungfox.jpg
Normal file
BIN
public/img/avatars/tobyyoungfox.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
Reference in New Issue
Block a user