-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a1e26ca
commit 0a54eb6
Showing
2 changed files
with
387 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,274 @@ | ||
/*! modern-normalize v2.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */ | ||
|
||
/* | ||
Document | ||
======== | ||
*/ | ||
|
||
/** | ||
Use a better box model (opinionated). | ||
*/ | ||
|
||
*, | ||
::before, | ||
::after { | ||
box-sizing: border-box; | ||
} | ||
|
||
html { | ||
/* Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) */ | ||
font-family: | ||
system-ui, | ||
'Segoe UI', | ||
Roboto, | ||
Helvetica, | ||
Arial, | ||
sans-serif, | ||
'Apple Color Emoji', | ||
'Segoe UI Emoji'; | ||
line-height: 1.15; /* 1. Correct the line height in all browsers. */ | ||
-webkit-text-size-adjust: 100%; /* 2. Prevent adjustments of font size after orientation changes in iOS. */ | ||
-moz-tab-size: 4; /* 3. Use a more readable tab size (opinionated). */ | ||
tab-size: 4; /* 3 */ | ||
} | ||
|
||
/* | ||
Sections | ||
======== | ||
*/ | ||
|
||
body { | ||
margin: 0; /* Remove the margin in all browsers. */ | ||
} | ||
|
||
/* | ||
Grouping content | ||
================ | ||
*/ | ||
|
||
/** | ||
1. Add the correct height in Firefox. | ||
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) | ||
*/ | ||
|
||
hr { | ||
height: 0; /* 1 */ | ||
color: inherit; /* 2 */ | ||
} | ||
|
||
/* | ||
Text-level semantics | ||
==================== | ||
*/ | ||
|
||
/** | ||
Add the correct text decoration in Chrome, Edge, and Safari. | ||
*/ | ||
|
||
abbr[title] { | ||
text-decoration: underline dotted; | ||
} | ||
|
||
/** | ||
Add the correct font weight in Edge and Safari. | ||
*/ | ||
|
||
b, | ||
strong { | ||
font-weight: bolder; | ||
} | ||
|
||
/** | ||
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) | ||
2. Correct the odd 'em' font sizing in all browsers. | ||
*/ | ||
|
||
code, | ||
kbd, | ||
samp, | ||
pre { | ||
font-family: | ||
ui-monospace, | ||
SFMono-Regular, | ||
Consolas, | ||
'Liberation Mono', | ||
Menlo, | ||
monospace; /* 1 */ | ||
font-size: 1em; /* 2 */ | ||
} | ||
|
||
/** | ||
Add the correct font size in all browsers. | ||
*/ | ||
|
||
small { | ||
font-size: 80%; | ||
} | ||
|
||
/** | ||
Prevent 'sub' and 'sup' elements from affecting the line height in all browsers. | ||
*/ | ||
|
||
sub, | ||
sup { | ||
font-size: 75%; | ||
line-height: 0; | ||
position: relative; | ||
vertical-align: baseline; | ||
} | ||
|
||
sub { | ||
bottom: -0.25em; | ||
} | ||
|
||
sup { | ||
top: -0.5em; | ||
} | ||
|
||
/* | ||
Tabular data | ||
============ | ||
*/ | ||
|
||
/** | ||
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) | ||
2. Correct table border color inheritance in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) | ||
*/ | ||
|
||
table { | ||
text-indent: 0; /* 1 */ | ||
border-color: inherit; /* 2 */ | ||
} | ||
|
||
/* | ||
Forms | ||
===== | ||
*/ | ||
|
||
/** | ||
1. Change the font styles in all browsers. | ||
2. Remove the margin in Firefox and Safari. | ||
*/ | ||
|
||
button, | ||
input, | ||
optgroup, | ||
select, | ||
textarea { | ||
font-family: inherit; /* 1 */ | ||
font-size: 100%; /* 1 */ | ||
line-height: 1.15; /* 1 */ | ||
margin: 0; /* 2 */ | ||
} | ||
|
||
/** | ||
Remove the inheritance of text transform in Edge and Firefox. | ||
*/ | ||
|
||
button, | ||
select { | ||
text-transform: none; | ||
} | ||
|
||
/** | ||
Correct the inability to style clickable types in iOS and Safari. | ||
*/ | ||
|
||
button, | ||
[type='button'], | ||
[type='reset'], | ||
[type='submit'] { | ||
-webkit-appearance: button; | ||
} | ||
|
||
/** | ||
Remove the inner border and padding in Firefox. | ||
*/ | ||
|
||
::-moz-focus-inner { | ||
border-style: none; | ||
padding: 0; | ||
} | ||
|
||
/** | ||
Restore the focus styles unset by the previous rule. | ||
*/ | ||
|
||
:-moz-focusring { | ||
outline: 1px dotted ButtonText; | ||
} | ||
|
||
/** | ||
Remove the additional ':invalid' styles in Firefox. | ||
See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737 | ||
*/ | ||
|
||
:-moz-ui-invalid { | ||
box-shadow: none; | ||
} | ||
|
||
/** | ||
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers. | ||
*/ | ||
|
||
legend { | ||
padding: 0; | ||
} | ||
|
||
/** | ||
Add the correct vertical alignment in Chrome and Firefox. | ||
*/ | ||
|
||
progress { | ||
vertical-align: baseline; | ||
} | ||
|
||
/** | ||
Correct the cursor style of increment and decrement buttons in Safari. | ||
*/ | ||
|
||
::-webkit-inner-spin-button, | ||
::-webkit-outer-spin-button { | ||
height: auto; | ||
} | ||
|
||
/** | ||
1. Correct the odd appearance in Chrome and Safari. | ||
2. Correct the outline style in Safari. | ||
*/ | ||
|
||
[type='search'] { | ||
-webkit-appearance: textfield; /* 1 */ | ||
outline-offset: -2px; /* 2 */ | ||
} | ||
|
||
/** | ||
Remove the inner padding in Chrome and Safari on macOS. | ||
*/ | ||
|
||
::-webkit-search-decoration { | ||
-webkit-appearance: none; | ||
} | ||
|
||
/** | ||
1. Correct the inability to style clickable types in iOS and Safari. | ||
2. Change font properties to 'inherit' in Safari. | ||
*/ | ||
|
||
::-webkit-file-upload-button { | ||
-webkit-appearance: button; /* 1 */ | ||
font: inherit; /* 2 */ | ||
} | ||
|
||
/* | ||
Interactive | ||
=========== | ||
*/ | ||
|
||
/* | ||
Add the correct display in Chrome and Safari. | ||
*/ | ||
|
||
summary { | ||
display: list-item; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
|
||
<head> | ||
<meta charset="utf-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1"> | ||
<title>eBike Fare Calculator</title> | ||
|
||
<link rel="stylesheet" href="css/normalize.css"> | ||
|
||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin="" /> | ||
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script> | ||
|
||
</head> | ||
|
||
<body> | ||
<h1>TEST</h1> | ||
<button id="startStopButton">Start/Stop Tracking</button> | ||
|
||
<div id="map" style="width: 600px; height: 400px;"></div> | ||
<script> | ||
|
||
document.addEventListener("DOMContentLoaded", (event) => { | ||
const map = L.map('map').setView([14.599732043846203, 120.98514882838623], 13); | ||
|
||
const tiles = L.tileLayer('http://{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}', { | ||
maxZoom: 19, | ||
subdomains:['mt0','mt1','mt2','mt3'], | ||
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>' | ||
}).addTo(map); | ||
let watchID; | ||
let positionOptions = { | ||
enableHighAccuracy: true, // Uses GPS if available | ||
timeout: 5000, // Milliseconds to wait before timeout if no position is received | ||
maximumAge: 0 // Set to 0 to ensure the device doesn't return a cached position | ||
}; | ||
|
||
let allPositions = []; | ||
|
||
let currentLatitude = null; | ||
let currentLongitude = null; | ||
|
||
let isTracking = false; | ||
let startPosition = null; | ||
let endPosition = null; | ||
|
||
let startMarker = null; | ||
let stopMarker = null; | ||
|
||
document.getElementById('startStopButton').addEventListener('click', function() { | ||
if (!isTracking) { | ||
startTracking(); | ||
} else { | ||
stopTracking(); | ||
calculateFare(); | ||
} | ||
}); | ||
|
||
function startTracking() { | ||
if (navigator.geolocation) { | ||
watchID = navigator.geolocation.watchPosition(positionUpdate, positionError, positionOptions); | ||
isTracking = true; | ||
} else { | ||
console.log("Geolocation is not supported by this browser."); | ||
} | ||
} | ||
|
||
function positionUpdate(position) { | ||
currentLatitude = position.coords.latitude; | ||
currentLongitude = position.coords.longitude; | ||
|
||
let coords = [currentLatitude, currentLongitude]; | ||
|
||
if (startPosition === null) { | ||
startPosition = coords; | ||
startMarker = L.marker(startPosition).addTo(map); | ||
} | ||
|
||
allPositions.push(coords); | ||
map.setView(coords); | ||
|
||
// Update the position on your map or perform your calculations here | ||
|
||
console.log("Latitude: " + currentLatitude + ", Longitude: " + currentLongitude); | ||
} | ||
|
||
function positionError(error) { | ||
console.warn('ERROR(' + error.code + '): ' + error.message); | ||
} | ||
|
||
function stopTracking() { | ||
isTracking = false; | ||
if (navigator.geolocation) { | ||
navigator.geolocation.clearWatch(watchID); | ||
stopPosition = [currentLatitude, currentLongitude]; | ||
|
||
startMarker = L.marker(stopPosition).addTo(map); | ||
map.setView(stopPosition); | ||
console.log("Latitude: " + currentLatitude + ", Longitude: " + currentLongitude); | ||
} | ||
} | ||
|
||
function calculateFare() { | ||
// Calculate distance between startPosition and endPosition | ||
// Apply fare calculation logic | ||
// Display fare in an alert or on the page | ||
alert(allPositions); | ||
} | ||
}); | ||
</script> | ||
</body> | ||
|
||
</html> |