Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca72b7a368 |
@@ -70,9 +70,8 @@ This project has been made possible thanks to the following open source projects
|
|||||||
- [SortableJS](https://github.com/SortableJS/Sortable) — creating a sortable file tree
|
- [SortableJS](https://github.com/SortableJS/Sortable) — creating a sortable file tree
|
||||||
- Mapping:
|
- Mapping:
|
||||||
- [MapLibre GL JS](https://github.com/maplibre/maplibre-gl-js) — beautiful and fast interactive map rendering
|
- [MapLibre GL JS](https://github.com/maplibre/maplibre-gl-js) — beautiful and fast interactive map rendering
|
||||||
- [GraphHopper](https://github.com/graphhopper/graphhopper) — powerful routing engine
|
- [GraphHopper](https://github.com/graphhopper/graphhopper) — routing engine
|
||||||
- [OpenStreetMap](https://www.openstreetmap.org) — open map data used by most of the map layers, and by the routing engine
|
- [OpenStreetMap](https://www.openstreetmap.org) — map data used by most of the map layers, and by the routing engine
|
||||||
- [Mapterhorn](https://github.com/mapterhorn/mapterhorn) — high-quality open terrain data used by some map layers (including for 3D), and by the routing engine
|
|
||||||
- Search:
|
- Search:
|
||||||
- [DocSearch](https://github.com/algolia/docsearch) — search engine for the documentation
|
- [DocSearch](https://github.com/algolia/docsearch) — search engine for the documentation
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
target/
|
|
||||||
pkg/
|
|
||||||
@@ -1,367 +0,0 @@
|
|||||||
# This file is automatically @generated by Cargo.
|
|
||||||
# It is not intended for manual editing.
|
|
||||||
version = 4
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "android_system_properties"
|
|
||||||
version = "0.1.6"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc"
|
|
||||||
dependencies = [
|
|
||||||
"libc",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "autocfg"
|
|
||||||
version = "1.5.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "bumpalo"
|
|
||||||
version = "3.20.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cc"
|
|
||||||
version = "1.4.6"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4"
|
|
||||||
dependencies = [
|
|
||||||
"find-msvc-tools",
|
|
||||||
"shlex",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cfg-if"
|
|
||||||
version = "1.0.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "chrono"
|
|
||||||
version = "0.4.45"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327"
|
|
||||||
dependencies = [
|
|
||||||
"iana-time-zone",
|
|
||||||
"js-sys",
|
|
||||||
"num-traits",
|
|
||||||
"wasm-bindgen",
|
|
||||||
"windows-link",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "core-foundation-sys"
|
|
||||||
version = "0.8.7"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "find-msvc-tools"
|
|
||||||
version = "0.1.12"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "futures-core"
|
|
||||||
version = "0.3.34"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "futures-task"
|
|
||||||
version = "0.3.34"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "futures-util"
|
|
||||||
version = "0.3.34"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc"
|
|
||||||
dependencies = [
|
|
||||||
"futures-core",
|
|
||||||
"futures-task",
|
|
||||||
"pin-project-lite",
|
|
||||||
"slab",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "getrandom"
|
|
||||||
version = "0.4.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
|
|
||||||
dependencies = [
|
|
||||||
"cfg-if",
|
|
||||||
"libc",
|
|
||||||
"r-efi",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "gpx-rs"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"chrono",
|
|
||||||
"quick-xml",
|
|
||||||
"uuid",
|
|
||||||
"wasm-bindgen",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "iana-time-zone"
|
|
||||||
version = "0.1.65"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470"
|
|
||||||
dependencies = [
|
|
||||||
"android_system_properties",
|
|
||||||
"core-foundation-sys",
|
|
||||||
"iana-time-zone-haiku",
|
|
||||||
"js-sys",
|
|
||||||
"log",
|
|
||||||
"wasm-bindgen",
|
|
||||||
"windows-core",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "iana-time-zone-haiku"
|
|
||||||
version = "0.1.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
|
|
||||||
dependencies = [
|
|
||||||
"cc",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "js-sys"
|
|
||||||
version = "0.3.103"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102"
|
|
||||||
dependencies = [
|
|
||||||
"cfg-if",
|
|
||||||
"futures-util",
|
|
||||||
"wasm-bindgen",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "libc"
|
|
||||||
version = "0.2.189"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "log"
|
|
||||||
version = "0.4.34"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "memchr"
|
|
||||||
version = "2.8.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "num-traits"
|
|
||||||
version = "0.2.19"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
|
||||||
dependencies = [
|
|
||||||
"autocfg",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "once_cell"
|
|
||||||
version = "1.21.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pin-project-lite"
|
|
||||||
version = "0.2.17"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "proc-macro2"
|
|
||||||
version = "1.0.106"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
|
||||||
dependencies = [
|
|
||||||
"unicode-ident",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "quick-xml"
|
|
||||||
version = "0.42.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "41b1177fdf999d2321d3fb46ff47159d9c1fb9ad66a4879f8c50a0b504615e9b"
|
|
||||||
dependencies = [
|
|
||||||
"memchr",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "quote"
|
|
||||||
version = "1.0.46"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "r-efi"
|
|
||||||
version = "6.0.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rustversion"
|
|
||||||
version = "1.0.23"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "shlex"
|
|
||||||
version = "2.0.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "slab"
|
|
||||||
version = "0.4.12"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "syn"
|
|
||||||
version = "2.0.118"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"unicode-ident",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "unicode-ident"
|
|
||||||
version = "1.0.24"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "uuid"
|
|
||||||
version = "1.26.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce"
|
|
||||||
dependencies = [
|
|
||||||
"getrandom",
|
|
||||||
"js-sys",
|
|
||||||
"wasm-bindgen",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "wasm-bindgen"
|
|
||||||
version = "0.2.126"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4"
|
|
||||||
dependencies = [
|
|
||||||
"cfg-if",
|
|
||||||
"once_cell",
|
|
||||||
"rustversion",
|
|
||||||
"wasm-bindgen-macro",
|
|
||||||
"wasm-bindgen-shared",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "wasm-bindgen-macro"
|
|
||||||
version = "0.2.126"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1"
|
|
||||||
dependencies = [
|
|
||||||
"quote",
|
|
||||||
"wasm-bindgen-macro-support",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "wasm-bindgen-macro-support"
|
|
||||||
version = "0.2.126"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e"
|
|
||||||
dependencies = [
|
|
||||||
"bumpalo",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
"wasm-bindgen-shared",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "wasm-bindgen-shared"
|
|
||||||
version = "0.2.126"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24"
|
|
||||||
dependencies = [
|
|
||||||
"unicode-ident",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows-core"
|
|
||||||
version = "0.62.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
|
|
||||||
dependencies = [
|
|
||||||
"windows-implement",
|
|
||||||
"windows-interface",
|
|
||||||
"windows-link",
|
|
||||||
"windows-result",
|
|
||||||
"windows-strings",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows-implement"
|
|
||||||
version = "0.60.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows-interface"
|
|
||||||
version = "0.59.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows-link"
|
|
||||||
version = "0.2.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows-result"
|
|
||||||
version = "0.4.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
|
|
||||||
dependencies = [
|
|
||||||
"windows-link",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows-strings"
|
|
||||||
version = "0.5.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
|
|
||||||
dependencies = [
|
|
||||||
"windows-link",
|
|
||||||
]
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
[package]
|
|
||||||
name = "gpx-rs"
|
|
||||||
version = "0.1.0"
|
|
||||||
edition = "2024"
|
|
||||||
|
|
||||||
[lib]
|
|
||||||
crate-type = ["cdylib"]
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
chrono = "0.4.45"
|
|
||||||
quick-xml = "0.42.0"
|
|
||||||
uuid = {version = "1.26.1", features = ["v4", "js"]}
|
|
||||||
wasm-bindgen = "0.2"
|
|
||||||
@@ -1,274 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://www.topografix.com/GPX/1/1"
|
|
||||||
xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd
|
|
||||||
http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd
|
|
||||||
http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd
|
|
||||||
http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"
|
|
||||||
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
|
|
||||||
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
|
|
||||||
xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" version="1.1"
|
|
||||||
creator="https://gpx.studio">
|
|
||||||
<metadata>
|
|
||||||
<name>simple</name>
|
|
||||||
<desc>description</desc>
|
|
||||||
<author>
|
|
||||||
<name>gpx.studio</name>
|
|
||||||
<link href="https://gpx.studio">
|
|
||||||
<text>link text</text>
|
|
||||||
</link>
|
|
||||||
</author>
|
|
||||||
</metadata>
|
|
||||||
<trk>
|
|
||||||
<name>track name</name>
|
|
||||||
<cmt>track comment</cmt>
|
|
||||||
<desc>track description</desc>
|
|
||||||
<src>track source</src>
|
|
||||||
<link href="https://gpx.studio">
|
|
||||||
<text>track link text</text>
|
|
||||||
</link>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.790867" lon="4.404968">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790714" lon="4.405036">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790336" lon="4.405259">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790165" lon="4.405331">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790008" lon="4.405359">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789818" lon="4.405359">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789409" lon="4.40534">
|
|
||||||
<ele>107.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789105" lon="4.405411">
|
|
||||||
<ele>106.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788799" lon="4.405527">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788645" lon="4.405606">
|
|
||||||
<ele>109.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.7885" lon="4.405711">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78822" lon="4.405959">
|
|
||||||
<ele>112.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787956" lon="4.406092">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787814" lon="4.406143">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787674" lon="4.406177">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787451" lon="4.406199">
|
|
||||||
<ele>115.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787297" lon="4.406177">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78716" lon="4.406098">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787045" lon="4.405984">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786683" lon="4.405653">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786538" lon="4.405543">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78635" lon="4.405441">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786275" lon="4.40542">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786182" lon="4.405435">
|
|
||||||
<ele>116.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786121" lon="4.405475">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786042" lon="4.405558">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785821" lon="4.405925">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785672" lon="4.406119">
|
|
||||||
<ele>112.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785516" lon="4.406256">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785384" lon="4.406364">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785126" lon="4.406475">
|
|
||||||
<ele>106.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784697" lon="4.406537">
|
|
||||||
<ele>104.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784591" lon="4.40657">
|
|
||||||
<ele>104.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784507" lon="4.406612">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784435" lon="4.40669">
|
|
||||||
<ele>103.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784209" lon="4.407148">
|
|
||||||
<ele>103.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784162" lon="4.407257">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784077" lon="4.407372">
|
|
||||||
<ele>104.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784006" lon="4.407435">
|
|
||||||
<ele>105.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783924" lon="4.407471">
|
|
||||||
<ele>106.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783837" lon="4.407486">
|
|
||||||
<ele>107.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783771" lon="4.407472">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783697" lon="4.407428">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783626" lon="4.407363">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783548" lon="4.407274">
|
|
||||||
<ele>110.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783458" lon="4.407134">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783123" lon="4.406435">
|
|
||||||
<ele>111.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782982" lon="4.406168">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782871" lon="4.406044">
|
|
||||||
<ele>113.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78279" lon="4.406021">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782714" lon="4.406018">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782607" lon="4.406047">
|
|
||||||
<ele>113.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782405" lon="4.406194">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782175" lon="4.406413">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781749" lon="4.407018">
|
|
||||||
<ele>118.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781654" lon="4.407316">
|
|
||||||
<ele>119.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781563" lon="4.407764">
|
|
||||||
<ele>121.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781487" lon="4.407984">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781422" lon="4.408216">
|
|
||||||
<ele>122.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781395" lon="4.408508">
|
|
||||||
<ele>123.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781399" lon="4.409114">
|
|
||||||
<ele>126.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781367" lon="4.409428">
|
|
||||||
<ele>128.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781286" lon="4.409607">
|
|
||||||
<ele>129.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78116" lon="4.409789">
|
|
||||||
<ele>130.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780804" lon="4.409993">
|
|
||||||
<ele>130.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780389" lon="4.410334">
|
|
||||||
<ele>131.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780232" lon="4.410563">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780094" lon="4.410827">
|
|
||||||
<ele>132.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779723" lon="4.411582">
|
|
||||||
<ele>135.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779591" lon="4.411791">
|
|
||||||
<ele>135.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779125" lon="4.412435">
|
|
||||||
<ele>132.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778676" lon="4.412979">
|
|
||||||
<ele>134.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778194" lon="4.413466">
|
|
||||||
<ele>136.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777427" lon="4.414302">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777165" lon="4.414736">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776927" lon="4.415201">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776778" lon="4.415613">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776553" lon="4.416425">
|
|
||||||
<ele>134.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776326" lon="4.417304">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776129" lon="4.418383">
|
|
||||||
<ele>129.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
</gpx>
|
|
||||||
@@ -1,660 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"
|
|
||||||
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
|
|
||||||
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
|
|
||||||
xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" version="1.1" creator="https://gpx.studio">
|
|
||||||
<metadata>
|
|
||||||
<name>with_cad</name>
|
|
||||||
<author>
|
|
||||||
<name>gpx.studio</name>
|
|
||||||
<link href="https://gpx.studio"></link>
|
|
||||||
</author>
|
|
||||||
</metadata>
|
|
||||||
<trk>
|
|
||||||
<name>with_cad</name>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.790867" lon="4.404968">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790714" lon="4.405036">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790336" lon="4.405259">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790165" lon="4.405331">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790008" lon="4.405359">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789818" lon="4.405359">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789409" lon="4.40534">
|
|
||||||
<ele>107.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789105" lon="4.405411">
|
|
||||||
<ele>106.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788799" lon="4.405527">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788645" lon="4.405606">
|
|
||||||
<ele>109.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.7885" lon="4.405711">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78822" lon="4.405959">
|
|
||||||
<ele>112.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787956" lon="4.406092">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787814" lon="4.406143">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787674" lon="4.406177">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787451" lon="4.406199">
|
|
||||||
<ele>115.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787297" lon="4.406177">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78716" lon="4.406098">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787045" lon="4.405984">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786683" lon="4.405653">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786538" lon="4.405543">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78635" lon="4.405441">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786275" lon="4.40542">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786182" lon="4.405435">
|
|
||||||
<ele>116.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786121" lon="4.405475">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786042" lon="4.405558">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785821" lon="4.405925">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785672" lon="4.406119">
|
|
||||||
<ele>112.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785516" lon="4.406256">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785384" lon="4.406364">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785126" lon="4.406475">
|
|
||||||
<ele>106.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784697" lon="4.406537">
|
|
||||||
<ele>104.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784591" lon="4.40657">
|
|
||||||
<ele>104.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784507" lon="4.406612">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784435" lon="4.40669">
|
|
||||||
<ele>103.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784209" lon="4.407148">
|
|
||||||
<ele>103.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784162" lon="4.407257">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784077" lon="4.407372">
|
|
||||||
<ele>104.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784006" lon="4.407435">
|
|
||||||
<ele>105.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783924" lon="4.407471">
|
|
||||||
<ele>106.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783837" lon="4.407486">
|
|
||||||
<ele>107.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783771" lon="4.407472">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783697" lon="4.407428">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783626" lon="4.407363">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783548" lon="4.407274">
|
|
||||||
<ele>110.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783458" lon="4.407134">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783123" lon="4.406435">
|
|
||||||
<ele>111.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782982" lon="4.406168">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782871" lon="4.406044">
|
|
||||||
<ele>113.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78279" lon="4.406021">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782714" lon="4.406018">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782607" lon="4.406047">
|
|
||||||
<ele>113.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782405" lon="4.406194">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782175" lon="4.406413">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781749" lon="4.407018">
|
|
||||||
<ele>118.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781654" lon="4.407316">
|
|
||||||
<ele>119.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781563" lon="4.407764">
|
|
||||||
<ele>121.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781487" lon="4.407984">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781422" lon="4.408216">
|
|
||||||
<ele>122.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781395" lon="4.408508">
|
|
||||||
<ele>123.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781399" lon="4.409114">
|
|
||||||
<ele>126.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781367" lon="4.409428">
|
|
||||||
<ele>128.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781286" lon="4.409607">
|
|
||||||
<ele>129.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78116" lon="4.409789">
|
|
||||||
<ele>130.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780804" lon="4.409993">
|
|
||||||
<ele>130.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780389" lon="4.410334">
|
|
||||||
<ele>131.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780232" lon="4.410563">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780094" lon="4.410827">
|
|
||||||
<ele>132.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779723" lon="4.411582">
|
|
||||||
<ele>135.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779591" lon="4.411791">
|
|
||||||
<ele>135.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779125" lon="4.412435">
|
|
||||||
<ele>132.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778676" lon="4.412979">
|
|
||||||
<ele>134.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778194" lon="4.413466">
|
|
||||||
<ele>136.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777427" lon="4.414302">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777165" lon="4.414736">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776927" lon="4.415201">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776778" lon="4.415613">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776553" lon="4.416425">
|
|
||||||
<ele>134.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776326" lon="4.417304">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>80</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776129" lon="4.418383">
|
|
||||||
<ele>129.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:cad>90</gpxtpx:cad>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
</gpx>
|
|
||||||
@@ -1,660 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"
|
|
||||||
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
|
|
||||||
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
|
|
||||||
xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" version="1.1" creator="https://gpx.studio">
|
|
||||||
<metadata>
|
|
||||||
<name>with_hr</name>
|
|
||||||
<author>
|
|
||||||
<name>gpx.studio</name>
|
|
||||||
<link href="https://gpx.studio"></link>
|
|
||||||
</author>
|
|
||||||
</metadata>
|
|
||||||
<trk>
|
|
||||||
<name>with_hr</name>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.790867" lon="4.404968">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790714" lon="4.405036">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790336" lon="4.405259">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790165" lon="4.405331">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790008" lon="4.405359">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789818" lon="4.405359">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789409" lon="4.40534">
|
|
||||||
<ele>107.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789105" lon="4.405411">
|
|
||||||
<ele>106.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788799" lon="4.405527">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788645" lon="4.405606">
|
|
||||||
<ele>109.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.7885" lon="4.405711">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78822" lon="4.405959">
|
|
||||||
<ele>112.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787956" lon="4.406092">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787814" lon="4.406143">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787674" lon="4.406177">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787451" lon="4.406199">
|
|
||||||
<ele>115.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787297" lon="4.406177">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78716" lon="4.406098">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787045" lon="4.405984">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786683" lon="4.405653">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786538" lon="4.405543">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78635" lon="4.405441">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786275" lon="4.40542">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786182" lon="4.405435">
|
|
||||||
<ele>116.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786121" lon="4.405475">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786042" lon="4.405558">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785821" lon="4.405925">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785672" lon="4.406119">
|
|
||||||
<ele>112.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785516" lon="4.406256">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785384" lon="4.406364">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785126" lon="4.406475">
|
|
||||||
<ele>106.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784697" lon="4.406537">
|
|
||||||
<ele>104.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784591" lon="4.40657">
|
|
||||||
<ele>104.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784507" lon="4.406612">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784435" lon="4.40669">
|
|
||||||
<ele>103.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784209" lon="4.407148">
|
|
||||||
<ele>103.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784162" lon="4.407257">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784077" lon="4.407372">
|
|
||||||
<ele>104.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784006" lon="4.407435">
|
|
||||||
<ele>105.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783924" lon="4.407471">
|
|
||||||
<ele>106.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783837" lon="4.407486">
|
|
||||||
<ele>107.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783771" lon="4.407472">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783697" lon="4.407428">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783626" lon="4.407363">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783548" lon="4.407274">
|
|
||||||
<ele>110.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783458" lon="4.407134">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783123" lon="4.406435">
|
|
||||||
<ele>111.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782982" lon="4.406168">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782871" lon="4.406044">
|
|
||||||
<ele>113.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78279" lon="4.406021">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782714" lon="4.406018">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782607" lon="4.406047">
|
|
||||||
<ele>113.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782405" lon="4.406194">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782175" lon="4.406413">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781749" lon="4.407018">
|
|
||||||
<ele>118.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781654" lon="4.407316">
|
|
||||||
<ele>119.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781563" lon="4.407764">
|
|
||||||
<ele>121.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781487" lon="4.407984">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781422" lon="4.408216">
|
|
||||||
<ele>122.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781395" lon="4.408508">
|
|
||||||
<ele>123.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781399" lon="4.409114">
|
|
||||||
<ele>126.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781367" lon="4.409428">
|
|
||||||
<ele>128.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781286" lon="4.409607">
|
|
||||||
<ele>129.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78116" lon="4.409789">
|
|
||||||
<ele>130.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780804" lon="4.409993">
|
|
||||||
<ele>130.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780389" lon="4.410334">
|
|
||||||
<ele>131.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780232" lon="4.410563">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780094" lon="4.410827">
|
|
||||||
<ele>132.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779723" lon="4.411582">
|
|
||||||
<ele>135.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779591" lon="4.411791">
|
|
||||||
<ele>135.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779125" lon="4.412435">
|
|
||||||
<ele>132.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778676" lon="4.412979">
|
|
||||||
<ele>134.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778194" lon="4.413466">
|
|
||||||
<ele>136.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777427" lon="4.414302">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777165" lon="4.414736">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776927" lon="4.415201">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776778" lon="4.415613">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776553" lon="4.416425">
|
|
||||||
<ele>134.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776326" lon="4.417304">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>150</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776129" lon="4.418383">
|
|
||||||
<ele>129.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:hr>160</gpxtpx:hr>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
</gpx>
|
|
||||||
@@ -1,500 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"
|
|
||||||
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
|
|
||||||
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
|
|
||||||
xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" version="1.1" creator="https://gpx.studio">
|
|
||||||
<metadata>
|
|
||||||
<name>with_power</name>
|
|
||||||
<author>
|
|
||||||
<name>gpx.studio</name>
|
|
||||||
<link href="https://gpx.studio"></link>
|
|
||||||
</author>
|
|
||||||
</metadata>
|
|
||||||
<trk>
|
|
||||||
<name>with_power</name>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.790867" lon="4.404968">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790714" lon="4.405036">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790336" lon="4.405259">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790165" lon="4.405331">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790008" lon="4.405359">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789818" lon="4.405359">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789409" lon="4.40534">
|
|
||||||
<ele>107.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789105" lon="4.405411">
|
|
||||||
<ele>106.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788799" lon="4.405527">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788645" lon="4.405606">
|
|
||||||
<ele>109.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.7885" lon="4.405711">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78822" lon="4.405959">
|
|
||||||
<ele>112.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787956" lon="4.406092">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787814" lon="4.406143">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787674" lon="4.406177">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787451" lon="4.406199">
|
|
||||||
<ele>115.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787297" lon="4.406177">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78716" lon="4.406098">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787045" lon="4.405984">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786683" lon="4.405653">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786538" lon="4.405543">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78635" lon="4.405441">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786275" lon="4.40542">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786182" lon="4.405435">
|
|
||||||
<ele>116.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786121" lon="4.405475">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786042" lon="4.405558">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785821" lon="4.405925">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785672" lon="4.406119">
|
|
||||||
<ele>112.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785516" lon="4.406256">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785384" lon="4.406364">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785126" lon="4.406475">
|
|
||||||
<ele>106.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784697" lon="4.406537">
|
|
||||||
<ele>104.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784591" lon="4.40657">
|
|
||||||
<ele>104.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784507" lon="4.406612">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784435" lon="4.40669">
|
|
||||||
<ele>103.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784209" lon="4.407148">
|
|
||||||
<ele>103.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784162" lon="4.407257">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784077" lon="4.407372">
|
|
||||||
<ele>104.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784006" lon="4.407435">
|
|
||||||
<ele>105.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783924" lon="4.407471">
|
|
||||||
<ele>106.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783837" lon="4.407486">
|
|
||||||
<ele>107.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783771" lon="4.407472">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783697" lon="4.407428">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783626" lon="4.407363">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783548" lon="4.407274">
|
|
||||||
<ele>110.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783458" lon="4.407134">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783123" lon="4.406435">
|
|
||||||
<ele>111.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782982" lon="4.406168">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782871" lon="4.406044">
|
|
||||||
<ele>113.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78279" lon="4.406021">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782714" lon="4.406018">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782607" lon="4.406047">
|
|
||||||
<ele>113.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782405" lon="4.406194">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782175" lon="4.406413">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781749" lon="4.407018">
|
|
||||||
<ele>118.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781654" lon="4.407316">
|
|
||||||
<ele>119.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781563" lon="4.407764">
|
|
||||||
<ele>121.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781487" lon="4.407984">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781422" lon="4.408216">
|
|
||||||
<ele>122.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781395" lon="4.408508">
|
|
||||||
<ele>123.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781399" lon="4.409114">
|
|
||||||
<ele>126.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781367" lon="4.409428">
|
|
||||||
<ele>128.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781286" lon="4.409607">
|
|
||||||
<ele>129.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78116" lon="4.409789">
|
|
||||||
<ele>130.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780804" lon="4.409993">
|
|
||||||
<ele>130.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780389" lon="4.410334">
|
|
||||||
<ele>131.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780232" lon="4.410563">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780094" lon="4.410827">
|
|
||||||
<ele>132.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779723" lon="4.411582">
|
|
||||||
<ele>135.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779591" lon="4.411791">
|
|
||||||
<ele>135.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779125" lon="4.412435">
|
|
||||||
<ele>132.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778676" lon="4.412979">
|
|
||||||
<ele>134.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778194" lon="4.413466">
|
|
||||||
<ele>136.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777427" lon="4.414302">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777165" lon="4.414736">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776927" lon="4.415201">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776778" lon="4.415613">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776553" lon="4.416425">
|
|
||||||
<ele>134.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776326" lon="4.417304">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>200</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776129" lon="4.418383">
|
|
||||||
<ele>129.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<power>210</power>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
</gpx>
|
|
||||||
@@ -1,665 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://www.topografix.com/GPX/1/1"
|
|
||||||
xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd
|
|
||||||
http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd
|
|
||||||
http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd
|
|
||||||
http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"
|
|
||||||
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
|
|
||||||
xmlns:gpxpx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
|
|
||||||
xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" version="1.1"
|
|
||||||
creator="https://gpx.studio">
|
|
||||||
<metadata>
|
|
||||||
<name>with_power</name>
|
|
||||||
<author>
|
|
||||||
<name>gpx.studio</name>
|
|
||||||
<link href="https://gpx.studio"></link>
|
|
||||||
</author>
|
|
||||||
</metadata>
|
|
||||||
<trk>
|
|
||||||
<name>with_power</name>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.790867" lon="4.404968">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790714" lon="4.405036">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790336" lon="4.405259">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790165" lon="4.405331">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790008" lon="4.405359">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789818" lon="4.405359">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789409" lon="4.40534">
|
|
||||||
<ele>107.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789105" lon="4.405411">
|
|
||||||
<ele>106.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788799" lon="4.405527">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788645" lon="4.405606">
|
|
||||||
<ele>109.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.7885" lon="4.405711">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78822" lon="4.405959">
|
|
||||||
<ele>112.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787956" lon="4.406092">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787814" lon="4.406143">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787674" lon="4.406177">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787451" lon="4.406199">
|
|
||||||
<ele>115.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787297" lon="4.406177">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78716" lon="4.406098">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787045" lon="4.405984">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786683" lon="4.405653">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786538" lon="4.405543">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78635" lon="4.405441">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786275" lon="4.40542">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786182" lon="4.405435">
|
|
||||||
<ele>116.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786121" lon="4.405475">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786042" lon="4.405558">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785821" lon="4.405925">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785672" lon="4.406119">
|
|
||||||
<ele>112.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785516" lon="4.406256">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785384" lon="4.406364">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785126" lon="4.406475">
|
|
||||||
<ele>106.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784697" lon="4.406537">
|
|
||||||
<ele>104.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784591" lon="4.40657">
|
|
||||||
<ele>104.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784507" lon="4.406612">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784435" lon="4.40669">
|
|
||||||
<ele>103.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784209" lon="4.407148">
|
|
||||||
<ele>103.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784162" lon="4.407257">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784077" lon="4.407372">
|
|
||||||
<ele>104.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784006" lon="4.407435">
|
|
||||||
<ele>105.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783924" lon="4.407471">
|
|
||||||
<ele>106.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783837" lon="4.407486">
|
|
||||||
<ele>107.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783771" lon="4.407472">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783697" lon="4.407428">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783626" lon="4.407363">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783548" lon="4.407274">
|
|
||||||
<ele>110.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783458" lon="4.407134">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783123" lon="4.406435">
|
|
||||||
<ele>111.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782982" lon="4.406168">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782871" lon="4.406044">
|
|
||||||
<ele>113.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78279" lon="4.406021">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782714" lon="4.406018">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782607" lon="4.406047">
|
|
||||||
<ele>113.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782405" lon="4.406194">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782175" lon="4.406413">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781749" lon="4.407018">
|
|
||||||
<ele>118.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781654" lon="4.407316">
|
|
||||||
<ele>119.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781563" lon="4.407764">
|
|
||||||
<ele>121.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781487" lon="4.407984">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781422" lon="4.408216">
|
|
||||||
<ele>122.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781395" lon="4.408508">
|
|
||||||
<ele>123.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781399" lon="4.409114">
|
|
||||||
<ele>126.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781367" lon="4.409428">
|
|
||||||
<ele>128.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781286" lon="4.409607">
|
|
||||||
<ele>129.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78116" lon="4.409789">
|
|
||||||
<ele>130.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780804" lon="4.409993">
|
|
||||||
<ele>130.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780389" lon="4.410334">
|
|
||||||
<ele>131.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780232" lon="4.410563">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780094" lon="4.410827">
|
|
||||||
<ele>132.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779723" lon="4.411582">
|
|
||||||
<ele>135.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779591" lon="4.411791">
|
|
||||||
<ele>135.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779125" lon="4.412435">
|
|
||||||
<ele>132.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778676" lon="4.412979">
|
|
||||||
<ele>134.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778194" lon="4.413466">
|
|
||||||
<ele>136.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777427" lon="4.414302">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777165" lon="4.414736">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776927" lon="4.415201">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776778" lon="4.415613">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776553" lon="4.416425">
|
|
||||||
<ele>134.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776326" lon="4.417304">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>200</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776129" lon="4.418383">
|
|
||||||
<ele>129.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxpx:PowerExtension>
|
|
||||||
<gpxpx:PowerInWatts>210</gpxpx:PowerInWatts>
|
|
||||||
</gpxpx:PowerExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
</gpx>
|
|
||||||
@@ -1,253 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"
|
|
||||||
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
|
|
||||||
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
|
|
||||||
xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" version="1.1" creator="https://gpx.studio">
|
|
||||||
<metadata>
|
|
||||||
<name>with_routes</name>
|
|
||||||
<author>
|
|
||||||
<name>gpx.studio</name>
|
|
||||||
<link href="https://gpx.studio"></link>
|
|
||||||
</author>
|
|
||||||
</metadata>
|
|
||||||
<rte>
|
|
||||||
<name>route 1</name>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<rtept lat="50.790867" lon="4.404968">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.790714" lon="4.405036">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.790336" lon="4.405259">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.790165" lon="4.405331">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.790008" lon="4.405359">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.789818" lon="4.405359">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.789409" lon="4.40534">
|
|
||||||
<ele>107.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.789105" lon="4.405411">
|
|
||||||
<ele>106.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.788799" lon="4.405527">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.788645" lon="4.405606">
|
|
||||||
<ele>109.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.7885" lon="4.405711">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.78822" lon="4.405959">
|
|
||||||
<ele>112.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.787956" lon="4.406092">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.787814" lon="4.406143">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.787674" lon="4.406177">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.787451" lon="4.406199">
|
|
||||||
<ele>115.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.787297" lon="4.406177">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.78716" lon="4.406098">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.787045" lon="4.405984">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.786683" lon="4.405653">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.786538" lon="4.405543">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.78635" lon="4.405441">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.786275" lon="4.40542">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.786182" lon="4.405435">
|
|
||||||
<ele>116.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.786121" lon="4.405475">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.786042" lon="4.405558">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.785821" lon="4.405925">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.785672" lon="4.406119">
|
|
||||||
<ele>112.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.785516" lon="4.406256">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.785384" lon="4.406364">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.785126" lon="4.406475">
|
|
||||||
<ele>106.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.784697" lon="4.406537">
|
|
||||||
<ele>104.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.784591" lon="4.40657">
|
|
||||||
<ele>104.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.784507" lon="4.406612">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.784435" lon="4.40669">
|
|
||||||
<ele>103.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.784209" lon="4.407148">
|
|
||||||
<ele>103.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.784162" lon="4.407257">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.784077" lon="4.407372">
|
|
||||||
<ele>104.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.784006" lon="4.407435">
|
|
||||||
<ele>105.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.783924" lon="4.407471">
|
|
||||||
<ele>106.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.783837" lon="4.407486">
|
|
||||||
<ele>107.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.783771" lon="4.407472">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.783697" lon="4.407428">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.783626" lon="4.407363">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.783548" lon="4.407274">
|
|
||||||
<ele>110.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.783458" lon="4.407134">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.783123" lon="4.406435">
|
|
||||||
<ele>111.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.782982" lon="4.406168">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.782871" lon="4.406044">
|
|
||||||
<ele>113.3</ele>
|
|
||||||
</rtept>
|
|
||||||
</rte>
|
|
||||||
<rte>
|
|
||||||
<name>route 2</name>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<rtept lat="50.782212" lon="4.406377">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.782175" lon="4.406413">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.781749" lon="4.407018">
|
|
||||||
<ele>118.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.781654" lon="4.407316">
|
|
||||||
<ele>119.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.781563" lon="4.407764">
|
|
||||||
<ele>121.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.781487" lon="4.407984">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.781422" lon="4.408216">
|
|
||||||
<ele>122.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.781395" lon="4.408508">
|
|
||||||
<ele>123.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.781399" lon="4.409114">
|
|
||||||
<ele>126.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.781367" lon="4.409428">
|
|
||||||
<ele>128.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.781286" lon="4.409607">
|
|
||||||
<ele>129.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.78116" lon="4.409789">
|
|
||||||
<ele>130.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.780804" lon="4.409993">
|
|
||||||
<ele>130.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.780389" lon="4.410334">
|
|
||||||
<ele>131.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.780232" lon="4.410563">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.780094" lon="4.410827">
|
|
||||||
<ele>132.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.779723" lon="4.411582">
|
|
||||||
<ele>135.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.779591" lon="4.411791">
|
|
||||||
<ele>135.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.779125" lon="4.412435">
|
|
||||||
<ele>132.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.778676" lon="4.412979">
|
|
||||||
<ele>134.0</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.778194" lon="4.413466">
|
|
||||||
<ele>136.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.777427" lon="4.414302">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.777165" lon="4.414736">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.776927" lon="4.415201">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.776778" lon="4.415613">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.776553" lon="4.416425">
|
|
||||||
<ele>134.8</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.776326" lon="4.417304">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
</rtept>
|
|
||||||
<rtept lat="50.776129" lon="4.418383">
|
|
||||||
<ele>129.5</ele>
|
|
||||||
</rtept>
|
|
||||||
</rte>
|
|
||||||
</gpx>
|
|
||||||
@@ -1,253 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"
|
|
||||||
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
|
|
||||||
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
|
|
||||||
xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" version="1.1" creator="https://gpx.studio">
|
|
||||||
<metadata>
|
|
||||||
<name>with_segments</name>
|
|
||||||
<author>
|
|
||||||
<name>gpx.studio</name>
|
|
||||||
<link href="https://gpx.studio"></link>
|
|
||||||
</author>
|
|
||||||
</metadata>
|
|
||||||
<trk>
|
|
||||||
<name>with_segments</name>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.790867" lon="4.404968">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790714" lon="4.405036">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790336" lon="4.405259">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790165" lon="4.405331">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790008" lon="4.405359">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789818" lon="4.405359">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789409" lon="4.40534">
|
|
||||||
<ele>107.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789105" lon="4.405411">
|
|
||||||
<ele>106.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788799" lon="4.405527">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788645" lon="4.405606">
|
|
||||||
<ele>109.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.7885" lon="4.405711">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78822" lon="4.405959">
|
|
||||||
<ele>112.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787956" lon="4.406092">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787814" lon="4.406143">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787674" lon="4.406177">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787451" lon="4.406199">
|
|
||||||
<ele>115.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787297" lon="4.406177">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78716" lon="4.406098">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787045" lon="4.405984">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786683" lon="4.405653">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786538" lon="4.405543">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78635" lon="4.405441">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786275" lon="4.40542">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786182" lon="4.405435">
|
|
||||||
<ele>116.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786121" lon="4.405475">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786042" lon="4.405558">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785821" lon="4.405925">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785672" lon="4.406119">
|
|
||||||
<ele>112.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785516" lon="4.406256">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785384" lon="4.406364">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785126" lon="4.406475">
|
|
||||||
<ele>106.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784697" lon="4.406537">
|
|
||||||
<ele>104.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784591" lon="4.40657">
|
|
||||||
<ele>104.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784507" lon="4.406612">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784435" lon="4.40669">
|
|
||||||
<ele>103.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784209" lon="4.407148">
|
|
||||||
<ele>103.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784162" lon="4.407257">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784077" lon="4.407372">
|
|
||||||
<ele>104.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784006" lon="4.407435">
|
|
||||||
<ele>105.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783924" lon="4.407471">
|
|
||||||
<ele>106.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783837" lon="4.407486">
|
|
||||||
<ele>107.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783771" lon="4.407472">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783697" lon="4.407428">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783626" lon="4.407363">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783548" lon="4.407274">
|
|
||||||
<ele>110.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783458" lon="4.407134">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783123" lon="4.406435">
|
|
||||||
<ele>111.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782982" lon="4.406168">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782871" lon="4.406044">
|
|
||||||
<ele>113.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.782212" lon="4.406377">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782175" lon="4.406413">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781749" lon="4.407018">
|
|
||||||
<ele>118.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781654" lon="4.407316">
|
|
||||||
<ele>119.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781563" lon="4.407764">
|
|
||||||
<ele>121.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781487" lon="4.407984">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781422" lon="4.408216">
|
|
||||||
<ele>122.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781395" lon="4.408508">
|
|
||||||
<ele>123.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781399" lon="4.409114">
|
|
||||||
<ele>126.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781367" lon="4.409428">
|
|
||||||
<ele>128.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781286" lon="4.409607">
|
|
||||||
<ele>129.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78116" lon="4.409789">
|
|
||||||
<ele>130.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780804" lon="4.409993">
|
|
||||||
<ele>130.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780389" lon="4.410334">
|
|
||||||
<ele>131.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780232" lon="4.410563">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780094" lon="4.410827">
|
|
||||||
<ele>132.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779723" lon="4.411582">
|
|
||||||
<ele>135.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779591" lon="4.411791">
|
|
||||||
<ele>135.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779125" lon="4.412435">
|
|
||||||
<ele>132.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778676" lon="4.412979">
|
|
||||||
<ele>134.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778194" lon="4.413466">
|
|
||||||
<ele>136.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777427" lon="4.414302">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777165" lon="4.414736">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776927" lon="4.415201">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776778" lon="4.415613">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776553" lon="4.416425">
|
|
||||||
<ele>134.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776326" lon="4.417304">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776129" lon="4.418383">
|
|
||||||
<ele>129.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
</gpx>
|
|
||||||
@@ -1,267 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"
|
|
||||||
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
|
|
||||||
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
|
|
||||||
xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" version="1.1" creator="https://gpx.studio">
|
|
||||||
<metadata>
|
|
||||||
<name>with_style</name>
|
|
||||||
<author>
|
|
||||||
<name>gpx.studio</name>
|
|
||||||
<link href="https://gpx.studio"></link>
|
|
||||||
</author>
|
|
||||||
</metadata>
|
|
||||||
<trk>
|
|
||||||
<name>with_style</name>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<extensions>
|
|
||||||
<gpx_style:line>
|
|
||||||
<gpx_style:color>2d3ee9</gpx_style:color>
|
|
||||||
<gpx_style:opacity>0.5</gpx_style:opacity>
|
|
||||||
<gpx_style:width>6</gpx_style:width>
|
|
||||||
</gpx_style:line>
|
|
||||||
</extensions>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.790867" lon="4.404968">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790714" lon="4.405036">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790336" lon="4.405259">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790165" lon="4.405331">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790008" lon="4.405359">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789818" lon="4.405359">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789409" lon="4.40534">
|
|
||||||
<ele>107.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789105" lon="4.405411">
|
|
||||||
<ele>106.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788799" lon="4.405527">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788645" lon="4.405606">
|
|
||||||
<ele>109.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.7885" lon="4.405711">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78822" lon="4.405959">
|
|
||||||
<ele>112.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787956" lon="4.406092">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787814" lon="4.406143">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787674" lon="4.406177">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787451" lon="4.406199">
|
|
||||||
<ele>115.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787297" lon="4.406177">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78716" lon="4.406098">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787045" lon="4.405984">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786683" lon="4.405653">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786538" lon="4.405543">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78635" lon="4.405441">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786275" lon="4.40542">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786182" lon="4.405435">
|
|
||||||
<ele>116.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786121" lon="4.405475">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786042" lon="4.405558">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785821" lon="4.405925">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785672" lon="4.406119">
|
|
||||||
<ele>112.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785516" lon="4.406256">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785384" lon="4.406364">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785126" lon="4.406475">
|
|
||||||
<ele>106.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784697" lon="4.406537">
|
|
||||||
<ele>104.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784591" lon="4.40657">
|
|
||||||
<ele>104.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784507" lon="4.406612">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784435" lon="4.40669">
|
|
||||||
<ele>103.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784209" lon="4.407148">
|
|
||||||
<ele>103.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784162" lon="4.407257">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784077" lon="4.407372">
|
|
||||||
<ele>104.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784006" lon="4.407435">
|
|
||||||
<ele>105.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783924" lon="4.407471">
|
|
||||||
<ele>106.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783837" lon="4.407486">
|
|
||||||
<ele>107.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783771" lon="4.407472">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783697" lon="4.407428">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783626" lon="4.407363">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783548" lon="4.407274">
|
|
||||||
<ele>110.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783458" lon="4.407134">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783123" lon="4.406435">
|
|
||||||
<ele>111.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782982" lon="4.406168">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782871" lon="4.406044">
|
|
||||||
<ele>113.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78279" lon="4.406021">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782714" lon="4.406018">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782607" lon="4.406047">
|
|
||||||
<ele>113.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782405" lon="4.406194">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782175" lon="4.406413">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781749" lon="4.407018">
|
|
||||||
<ele>118.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781654" lon="4.407316">
|
|
||||||
<ele>119.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781563" lon="4.407764">
|
|
||||||
<ele>121.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781487" lon="4.407984">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781422" lon="4.408216">
|
|
||||||
<ele>122.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781395" lon="4.408508">
|
|
||||||
<ele>123.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781399" lon="4.409114">
|
|
||||||
<ele>126.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781367" lon="4.409428">
|
|
||||||
<ele>128.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781286" lon="4.409607">
|
|
||||||
<ele>129.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78116" lon="4.409789">
|
|
||||||
<ele>130.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780804" lon="4.409993">
|
|
||||||
<ele>130.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780389" lon="4.410334">
|
|
||||||
<ele>131.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780232" lon="4.410563">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780094" lon="4.410827">
|
|
||||||
<ele>132.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779723" lon="4.411582">
|
|
||||||
<ele>135.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779591" lon="4.411791">
|
|
||||||
<ele>135.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779125" lon="4.412435">
|
|
||||||
<ele>132.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778676" lon="4.412979">
|
|
||||||
<ele>134.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778194" lon="4.413466">
|
|
||||||
<ele>136.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777427" lon="4.414302">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777165" lon="4.414736">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776927" lon="4.415201">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776778" lon="4.415613">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776553" lon="4.416425">
|
|
||||||
<ele>134.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776326" lon="4.417304">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776129" lon="4.418383">
|
|
||||||
<ele>129.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
</gpx>
|
|
||||||
@@ -1,820 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"
|
|
||||||
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
|
|
||||||
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
|
|
||||||
xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" version="1.1" creator="https://gpx.studio">
|
|
||||||
<metadata>
|
|
||||||
<name>with_surface</name>
|
|
||||||
<author>
|
|
||||||
<name>gpx.studio</name>
|
|
||||||
<link href="https://gpx.studio"></link>
|
|
||||||
</author>
|
|
||||||
</metadata>
|
|
||||||
<trk>
|
|
||||||
<name>with_surface</name>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.790867" lon="4.404968">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790714" lon="4.405036">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790336" lon="4.405259">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790165" lon="4.405331">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790008" lon="4.405359">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789818" lon="4.405359">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789409" lon="4.40534">
|
|
||||||
<ele>107.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789105" lon="4.405411">
|
|
||||||
<ele>106.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788799" lon="4.405527">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788645" lon="4.405606">
|
|
||||||
<ele>109.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.7885" lon="4.405711">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78822" lon="4.405959">
|
|
||||||
<ele>112.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787956" lon="4.406092">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787814" lon="4.406143">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787674" lon="4.406177">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787451" lon="4.406199">
|
|
||||||
<ele>115.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787297" lon="4.406177">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78716" lon="4.406098">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787045" lon="4.405984">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786683" lon="4.405653">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786538" lon="4.405543">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78635" lon="4.405441">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786275" lon="4.40542">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786182" lon="4.405435">
|
|
||||||
<ele>116.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786121" lon="4.405475">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786042" lon="4.405558">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785821" lon="4.405925">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785672" lon="4.406119">
|
|
||||||
<ele>112.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785516" lon="4.406256">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785384" lon="4.406364">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785126" lon="4.406475">
|
|
||||||
<ele>106.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784697" lon="4.406537">
|
|
||||||
<ele>104.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784591" lon="4.40657">
|
|
||||||
<ele>104.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784507" lon="4.406612">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784435" lon="4.40669">
|
|
||||||
<ele>103.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784209" lon="4.407148">
|
|
||||||
<ele>103.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784162" lon="4.407257">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784077" lon="4.407372">
|
|
||||||
<ele>104.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784006" lon="4.407435">
|
|
||||||
<ele>105.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783924" lon="4.407471">
|
|
||||||
<ele>106.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783837" lon="4.407486">
|
|
||||||
<ele>107.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783771" lon="4.407472">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783697" lon="4.407428">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783626" lon="4.407363">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783548" lon="4.407274">
|
|
||||||
<ele>110.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783458" lon="4.407134">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783123" lon="4.406435">
|
|
||||||
<ele>111.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782982" lon="4.406168">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782871" lon="4.406044">
|
|
||||||
<ele>113.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78279" lon="4.406021">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782714" lon="4.406018">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782607" lon="4.406047">
|
|
||||||
<ele>113.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782405" lon="4.406194">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782175" lon="4.406413">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781749" lon="4.407018">
|
|
||||||
<ele>118.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781654" lon="4.407316">
|
|
||||||
<ele>119.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781563" lon="4.407764">
|
|
||||||
<ele>121.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781487" lon="4.407984">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781422" lon="4.408216">
|
|
||||||
<ele>122.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781395" lon="4.408508">
|
|
||||||
<ele>123.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781399" lon="4.409114">
|
|
||||||
<ele>126.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781367" lon="4.409428">
|
|
||||||
<ele>128.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781286" lon="4.409607">
|
|
||||||
<ele>129.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78116" lon="4.409789">
|
|
||||||
<ele>130.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780804" lon="4.409993">
|
|
||||||
<ele>130.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780389" lon="4.410334">
|
|
||||||
<ele>131.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780232" lon="4.410563">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780094" lon="4.410827">
|
|
||||||
<ele>132.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779723" lon="4.411582">
|
|
||||||
<ele>135.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779591" lon="4.411791">
|
|
||||||
<ele>135.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779125" lon="4.412435">
|
|
||||||
<ele>132.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778676" lon="4.412979">
|
|
||||||
<ele>134.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778194" lon="4.413466">
|
|
||||||
<ele>136.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777427" lon="4.414302">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777165" lon="4.414736">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776927" lon="4.415201">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776778" lon="4.415613">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776553" lon="4.416425">
|
|
||||||
<ele>134.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776326" lon="4.417304">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>asphalt</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776129" lon="4.418383">
|
|
||||||
<ele>129.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:Extensions>
|
|
||||||
<surface>cobblestone</surface>
|
|
||||||
</gpxtpx:Extensions>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
</gpx>
|
|
||||||
@@ -1,660 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"
|
|
||||||
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
|
|
||||||
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
|
|
||||||
xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" version="1.1" creator="https://gpx.studio">
|
|
||||||
<metadata>
|
|
||||||
<name>with_temp</name>
|
|
||||||
<author>
|
|
||||||
<name>gpx.studio</name>
|
|
||||||
<link href="https://gpx.studio"></link>
|
|
||||||
</author>
|
|
||||||
</metadata>
|
|
||||||
<trk>
|
|
||||||
<name>with_temp</name>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.790867" lon="4.404968">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790714" lon="4.405036">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790336" lon="4.405259">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790165" lon="4.405331">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790008" lon="4.405359">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789818" lon="4.405359">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789409" lon="4.40534">
|
|
||||||
<ele>107.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789105" lon="4.405411">
|
|
||||||
<ele>106.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788799" lon="4.405527">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788645" lon="4.405606">
|
|
||||||
<ele>109.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.7885" lon="4.405711">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78822" lon="4.405959">
|
|
||||||
<ele>112.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787956" lon="4.406092">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787814" lon="4.406143">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787674" lon="4.406177">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787451" lon="4.406199">
|
|
||||||
<ele>115.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787297" lon="4.406177">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78716" lon="4.406098">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787045" lon="4.405984">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786683" lon="4.405653">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786538" lon="4.405543">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78635" lon="4.405441">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786275" lon="4.40542">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786182" lon="4.405435">
|
|
||||||
<ele>116.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786121" lon="4.405475">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786042" lon="4.405558">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785821" lon="4.405925">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785672" lon="4.406119">
|
|
||||||
<ele>112.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785516" lon="4.406256">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785384" lon="4.406364">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785126" lon="4.406475">
|
|
||||||
<ele>106.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784697" lon="4.406537">
|
|
||||||
<ele>104.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784591" lon="4.40657">
|
|
||||||
<ele>104.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784507" lon="4.406612">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784435" lon="4.40669">
|
|
||||||
<ele>103.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784209" lon="4.407148">
|
|
||||||
<ele>103.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784162" lon="4.407257">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784077" lon="4.407372">
|
|
||||||
<ele>104.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784006" lon="4.407435">
|
|
||||||
<ele>105.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783924" lon="4.407471">
|
|
||||||
<ele>106.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783837" lon="4.407486">
|
|
||||||
<ele>107.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783771" lon="4.407472">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783697" lon="4.407428">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783626" lon="4.407363">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783548" lon="4.407274">
|
|
||||||
<ele>110.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783458" lon="4.407134">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783123" lon="4.406435">
|
|
||||||
<ele>111.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782982" lon="4.406168">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782871" lon="4.406044">
|
|
||||||
<ele>113.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78279" lon="4.406021">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782714" lon="4.406018">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782607" lon="4.406047">
|
|
||||||
<ele>113.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782405" lon="4.406194">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782175" lon="4.406413">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781749" lon="4.407018">
|
|
||||||
<ele>118.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781654" lon="4.407316">
|
|
||||||
<ele>119.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781563" lon="4.407764">
|
|
||||||
<ele>121.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781487" lon="4.407984">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781422" lon="4.408216">
|
|
||||||
<ele>122.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781395" lon="4.408508">
|
|
||||||
<ele>123.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781399" lon="4.409114">
|
|
||||||
<ele>126.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781367" lon="4.409428">
|
|
||||||
<ele>128.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781286" lon="4.409607">
|
|
||||||
<ele>129.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78116" lon="4.409789">
|
|
||||||
<ele>130.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780804" lon="4.409993">
|
|
||||||
<ele>130.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780389" lon="4.410334">
|
|
||||||
<ele>131.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780232" lon="4.410563">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780094" lon="4.410827">
|
|
||||||
<ele>132.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779723" lon="4.411582">
|
|
||||||
<ele>135.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779591" lon="4.411791">
|
|
||||||
<ele>135.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779125" lon="4.412435">
|
|
||||||
<ele>132.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778676" lon="4.412979">
|
|
||||||
<ele>134.0</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778194" lon="4.413466">
|
|
||||||
<ele>136.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777427" lon="4.414302">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777165" lon="4.414736">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776927" lon="4.415201">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776778" lon="4.415613">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776553" lon="4.416425">
|
|
||||||
<ele>134.8</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776326" lon="4.417304">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>21</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776129" lon="4.418383">
|
|
||||||
<ele>129.5</ele>
|
|
||||||
<extensions>
|
|
||||||
<gpxtpx:TrackPointExtension>
|
|
||||||
<gpxtpx:atemp>22</gpxtpx:atemp>
|
|
||||||
</gpxtpx:TrackPointExtension>
|
|
||||||
</extensions>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
</gpx>
|
|
||||||
@@ -1,340 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"
|
|
||||||
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
|
|
||||||
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
|
|
||||||
xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" version="1.1" creator="https://gpx.studio">
|
|
||||||
<metadata>
|
|
||||||
<name>with_time</name>
|
|
||||||
<author>
|
|
||||||
<name>gpx.studio</name>
|
|
||||||
<link href="https://gpx.studio"></link>
|
|
||||||
</author>
|
|
||||||
</metadata>
|
|
||||||
<trk>
|
|
||||||
<name>with_time</name>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.790867" lon="4.404968">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<time>2023-12-31T23:00:00.000Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790714" lon="4.405036">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<time>2023-12-31T23:00:03.180Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790336" lon="4.405259">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<time>2023-12-31T23:00:11.254Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790165" lon="4.405331">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<time>2023-12-31T23:00:14.795Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790008" lon="4.405359">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<time>2023-12-31T23:00:17.957Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789818" lon="4.405359">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<time>2023-12-31T23:00:21.759Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789409" lon="4.40534">
|
|
||||||
<ele>107.0</ele>
|
|
||||||
<time>2023-12-31T23:00:29.948Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789105" lon="4.405411">
|
|
||||||
<ele>106.0</ele>
|
|
||||||
<time>2023-12-31T23:00:36.098Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788799" lon="4.405527">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<time>2023-12-31T23:00:42.396Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788645" lon="4.405606">
|
|
||||||
<ele>109.8</ele>
|
|
||||||
<time>2023-12-31T23:00:45.636Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.7885" lon="4.405711">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<time>2023-12-31T23:00:48.827Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78822" lon="4.405959">
|
|
||||||
<ele>112.0</ele>
|
|
||||||
<time>2023-12-31T23:00:55.249Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787956" lon="4.406092">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<time>2023-12-31T23:01:00.794Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787814" lon="4.406143">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<time>2023-12-31T23:01:03.708Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787674" lon="4.406177">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<time>2023-12-31T23:01:06.542Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787451" lon="4.406199">
|
|
||||||
<ele>115.3</ele>
|
|
||||||
<time>2023-12-31T23:01:11.014Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787297" lon="4.406177">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<time>2023-12-31T23:01:14.108Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78716" lon="4.406098">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<time>2023-12-31T23:01:17.026Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787045" lon="4.405984">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<time>2023-12-31T23:01:19.742Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786683" lon="4.405653">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<time>2023-12-31T23:01:28.110Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786538" lon="4.405543">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
<time>2023-12-31T23:01:31.328Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78635" lon="4.405441">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<time>2023-12-31T23:01:35.306Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786275" lon="4.40542">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<time>2023-12-31T23:01:36.830Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786182" lon="4.405435">
|
|
||||||
<ele>116.0</ele>
|
|
||||||
<time>2023-12-31T23:01:38.701Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786121" lon="4.405475">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<time>2023-12-31T23:01:40.022Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786042" lon="4.405558">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
<time>2023-12-31T23:01:41.920Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785821" lon="4.405925">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<time>2023-12-31T23:01:48.333Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785672" lon="4.406119">
|
|
||||||
<ele>112.5</ele>
|
|
||||||
<time>2023-12-31T23:01:52.195Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785516" lon="4.406256">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<time>2023-12-31T23:01:55.766Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785384" lon="4.406364">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<time>2023-12-31T23:01:58.740Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785126" lon="4.406475">
|
|
||||||
<ele>106.3</ele>
|
|
||||||
<time>2023-12-31T23:02:04.091Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784697" lon="4.406537">
|
|
||||||
<ele>104.3</ele>
|
|
||||||
<time>2023-12-31T23:02:12.713Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784591" lon="4.40657">
|
|
||||||
<ele>104.0</ele>
|
|
||||||
<time>2023-12-31T23:02:14.875Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784507" lon="4.406612">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<time>2023-12-31T23:02:16.638Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784435" lon="4.40669">
|
|
||||||
<ele>103.3</ele>
|
|
||||||
<time>2023-12-31T23:02:18.384Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784209" lon="4.407148">
|
|
||||||
<ele>103.5</ele>
|
|
||||||
<time>2023-12-31T23:02:25.735Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784162" lon="4.407257">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<time>2023-12-31T23:02:27.404Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784077" lon="4.407372">
|
|
||||||
<ele>104.8</ele>
|
|
||||||
<time>2023-12-31T23:02:29.642Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784006" lon="4.407435">
|
|
||||||
<ele>105.8</ele>
|
|
||||||
<time>2023-12-31T23:02:31.271Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783924" lon="4.407471">
|
|
||||||
<ele>106.8</ele>
|
|
||||||
<time>2023-12-31T23:02:32.974Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783837" lon="4.407486">
|
|
||||||
<ele>107.8</ele>
|
|
||||||
<time>2023-12-31T23:02:34.725Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783771" lon="4.407472">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<time>2023-12-31T23:02:36.057Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783697" lon="4.407428">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<time>2023-12-31T23:02:37.639Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783626" lon="4.407363">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<time>2023-12-31T23:02:39.280Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783548" lon="4.407274">
|
|
||||||
<ele>110.5</ele>
|
|
||||||
<time>2023-12-31T23:02:41.205Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783458" lon="4.407134">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<time>2023-12-31T23:02:43.731Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783123" lon="4.406435">
|
|
||||||
<ele>111.8</ele>
|
|
||||||
<time>2023-12-31T23:02:54.830Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782982" lon="4.406168">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<time>2023-12-31T23:02:59.232Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782871" lon="4.406044">
|
|
||||||
<ele>113.3</ele>
|
|
||||||
<time>2023-12-31T23:03:01.951Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78279" lon="4.406021">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<time>2023-12-31T23:03:03.598Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782714" lon="4.406018">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<time>2023-12-31T23:03:05.119Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782607" lon="4.406047">
|
|
||||||
<ele>113.8</ele>
|
|
||||||
<time>2023-12-31T23:03:07.291Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782405" lon="4.406194">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<time>2023-12-31T23:03:11.741Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782175" lon="4.406413">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<time>2023-12-31T23:03:17.114Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781749" lon="4.407018">
|
|
||||||
<ele>118.5</ele>
|
|
||||||
<time>2023-12-31T23:03:28.573Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781654" lon="4.407316">
|
|
||||||
<ele>119.5</ele>
|
|
||||||
<time>2023-12-31T23:03:32.796Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781563" lon="4.407764">
|
|
||||||
<ele>121.3</ele>
|
|
||||||
<time>2023-12-31T23:03:38.750Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781487" lon="4.407984">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
<time>2023-12-31T23:03:41.922Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781422" lon="4.408216">
|
|
||||||
<ele>122.8</ele>
|
|
||||||
<time>2023-12-31T23:03:45.133Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781395" lon="4.408508">
|
|
||||||
<ele>123.5</ele>
|
|
||||||
<time>2023-12-31T23:03:48.867Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781399" lon="4.409114">
|
|
||||||
<ele>126.3</ele>
|
|
||||||
<time>2023-12-31T23:03:56.536Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781367" lon="4.409428">
|
|
||||||
<ele>128.0</ele>
|
|
||||||
<time>2023-12-31T23:04:00.561Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781286" lon="4.409607">
|
|
||||||
<ele>129.0</ele>
|
|
||||||
<time>2023-12-31T23:04:03.346Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78116" lon="4.409789">
|
|
||||||
<ele>130.0</ele>
|
|
||||||
<time>2023-12-31T23:04:06.761Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780804" lon="4.409993">
|
|
||||||
<ele>130.8</ele>
|
|
||||||
<time>2023-12-31T23:04:14.339Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780389" lon="4.410334">
|
|
||||||
<ele>131.8</ele>
|
|
||||||
<time>2023-12-31T23:04:23.699Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780232" lon="4.410563">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<time>2023-12-31T23:04:27.973Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780094" lon="4.410827">
|
|
||||||
<ele>132.8</ele>
|
|
||||||
<time>2023-12-31T23:04:32.307Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779723" lon="4.411582">
|
|
||||||
<ele>135.8</ele>
|
|
||||||
<time>2023-12-31T23:04:44.408Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779591" lon="4.411791">
|
|
||||||
<ele>135.5</ele>
|
|
||||||
<time>2023-12-31T23:04:48.146Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779125" lon="4.412435">
|
|
||||||
<ele>132.5</ele>
|
|
||||||
<time>2023-12-31T23:05:00.532Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778676" lon="4.412979">
|
|
||||||
<ele>134.0</ele>
|
|
||||||
<time>2023-12-31T23:05:11.852Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778194" lon="4.413466">
|
|
||||||
<ele>136.8</ele>
|
|
||||||
<time>2023-12-31T23:05:23.300Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777427" lon="4.414302">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<time>2023-12-31T23:05:41.944Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777165" lon="4.414736">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<time>2023-12-31T23:05:49.538Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776927" lon="4.415201">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<time>2023-12-31T23:05:57.109Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776778" lon="4.415613">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<time>2023-12-31T23:06:03.116Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776553" lon="4.416425">
|
|
||||||
<ele>134.8</ele>
|
|
||||||
<time>2023-12-31T23:06:14.336Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776326" lon="4.417304">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<time>2023-12-31T23:06:26.353Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776129" lon="4.418383">
|
|
||||||
<ele>129.5</ele>
|
|
||||||
<time>2023-12-31T23:06:40.567Z</time>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
</gpx>
|
|
||||||
@@ -1,257 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"
|
|
||||||
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
|
|
||||||
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
|
|
||||||
xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" version="1.1" creator="https://gpx.studio">
|
|
||||||
<metadata>
|
|
||||||
<name>with_tracks</name>
|
|
||||||
<author>
|
|
||||||
<name>gpx.studio</name>
|
|
||||||
<link href="https://gpx.studio"></link>
|
|
||||||
</author>
|
|
||||||
</metadata>
|
|
||||||
<trk>
|
|
||||||
<name>track 1</name>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.790867" lon="4.404968">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790714" lon="4.405036">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790336" lon="4.405259">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790165" lon="4.405331">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790008" lon="4.405359">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789818" lon="4.405359">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789409" lon="4.40534">
|
|
||||||
<ele>107.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789105" lon="4.405411">
|
|
||||||
<ele>106.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788799" lon="4.405527">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788645" lon="4.405606">
|
|
||||||
<ele>109.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.7885" lon="4.405711">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78822" lon="4.405959">
|
|
||||||
<ele>112.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787956" lon="4.406092">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787814" lon="4.406143">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787674" lon="4.406177">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787451" lon="4.406199">
|
|
||||||
<ele>115.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787297" lon="4.406177">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78716" lon="4.406098">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787045" lon="4.405984">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786683" lon="4.405653">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786538" lon="4.405543">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78635" lon="4.405441">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786275" lon="4.40542">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786182" lon="4.405435">
|
|
||||||
<ele>116.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786121" lon="4.405475">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786042" lon="4.405558">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785821" lon="4.405925">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785672" lon="4.406119">
|
|
||||||
<ele>112.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785516" lon="4.406256">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785384" lon="4.406364">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785126" lon="4.406475">
|
|
||||||
<ele>106.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784697" lon="4.406537">
|
|
||||||
<ele>104.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784591" lon="4.40657">
|
|
||||||
<ele>104.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784507" lon="4.406612">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784435" lon="4.40669">
|
|
||||||
<ele>103.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784209" lon="4.407148">
|
|
||||||
<ele>103.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784162" lon="4.407257">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784077" lon="4.407372">
|
|
||||||
<ele>104.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784006" lon="4.407435">
|
|
||||||
<ele>105.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783924" lon="4.407471">
|
|
||||||
<ele>106.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783837" lon="4.407486">
|
|
||||||
<ele>107.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783771" lon="4.407472">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783697" lon="4.407428">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783626" lon="4.407363">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783548" lon="4.407274">
|
|
||||||
<ele>110.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783458" lon="4.407134">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783123" lon="4.406435">
|
|
||||||
<ele>111.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782982" lon="4.406168">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782871" lon="4.406044">
|
|
||||||
<ele>113.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
<trk>
|
|
||||||
<name>track 2</name>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.782212" lon="4.406377">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782175" lon="4.406413">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781749" lon="4.407018">
|
|
||||||
<ele>118.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781654" lon="4.407316">
|
|
||||||
<ele>119.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781563" lon="4.407764">
|
|
||||||
<ele>121.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781487" lon="4.407984">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781422" lon="4.408216">
|
|
||||||
<ele>122.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781395" lon="4.408508">
|
|
||||||
<ele>123.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781399" lon="4.409114">
|
|
||||||
<ele>126.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781367" lon="4.409428">
|
|
||||||
<ele>128.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781286" lon="4.409607">
|
|
||||||
<ele>129.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78116" lon="4.409789">
|
|
||||||
<ele>130.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780804" lon="4.409993">
|
|
||||||
<ele>130.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780389" lon="4.410334">
|
|
||||||
<ele>131.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780232" lon="4.410563">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780094" lon="4.410827">
|
|
||||||
<ele>132.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779723" lon="4.411582">
|
|
||||||
<ele>135.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779591" lon="4.411791">
|
|
||||||
<ele>135.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779125" lon="4.412435">
|
|
||||||
<ele>132.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778676" lon="4.412979">
|
|
||||||
<ele>134.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778194" lon="4.413466">
|
|
||||||
<ele>136.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777427" lon="4.414302">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777165" lon="4.414736">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776927" lon="4.415201">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776778" lon="4.415613">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776553" lon="4.416425">
|
|
||||||
<ele>134.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776326" lon="4.417304">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776129" lon="4.418383">
|
|
||||||
<ele>129.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
</gpx>
|
|
||||||
@@ -1,346 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"
|
|
||||||
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
|
|
||||||
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
|
|
||||||
xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" version="1.1" creator="https://gpx.studio">
|
|
||||||
<metadata>
|
|
||||||
<name>with_tracks_and_segments</name>
|
|
||||||
<author>
|
|
||||||
<name>gpx.studio</name>
|
|
||||||
<link href="https://gpx.studio"></link>
|
|
||||||
</author>
|
|
||||||
</metadata>
|
|
||||||
<trk>
|
|
||||||
<name>track 1</name>
|
|
||||||
<type>Running</type>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.790867" lon="4.404968">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<time>2023-12-31T23:00:00.000Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790714" lon="4.405036">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<time>2023-12-31T23:00:03.180Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790336" lon="4.405259">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<time>2023-12-31T23:00:11.254Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790165" lon="4.405331">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<time>2023-12-31T23:00:14.795Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790008" lon="4.405359">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
<time>2023-12-31T23:00:17.957Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789818" lon="4.405359">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<time>2023-12-31T23:00:21.759Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789409" lon="4.40534">
|
|
||||||
<ele>107.0</ele>
|
|
||||||
<time>2023-12-31T23:00:29.948Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789105" lon="4.405411">
|
|
||||||
<ele>106.0</ele>
|
|
||||||
<time>2023-12-31T23:00:36.098Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788799" lon="4.405527">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<time>2023-12-31T23:00:42.396Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788645" lon="4.405606">
|
|
||||||
<ele>109.8</ele>
|
|
||||||
<time>2023-12-31T23:00:45.636Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.7885" lon="4.405711">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<time>2023-12-31T23:00:48.827Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78822" lon="4.405959">
|
|
||||||
<ele>112.0</ele>
|
|
||||||
<time>2023-12-31T23:00:55.249Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787956" lon="4.406092">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<time>2023-12-31T23:01:00.794Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787814" lon="4.406143">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
<time>2023-12-31T23:01:03.708Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787674" lon="4.406177">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<time>2023-12-31T23:01:06.542Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787451" lon="4.406199">
|
|
||||||
<ele>115.3</ele>
|
|
||||||
<time>2023-12-31T23:01:11.014Z</time>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.78727108169855" lon="4.406133681127736">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
<time>2023-12-31T23:01:14.708Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787297" lon="4.406177">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
<time>2023-12-31T23:01:15.462Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78716" lon="4.406098">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<time>2023-12-31T23:01:18.380Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787045" lon="4.405984">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
<time>2023-12-31T23:01:21.096Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786683" lon="4.405653">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<time>2023-12-31T23:01:29.464Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786538" lon="4.405543">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
<time>2023-12-31T23:01:32.682Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78635" lon="4.405441">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<time>2023-12-31T23:01:36.660Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786275" lon="4.40542">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<time>2023-12-31T23:01:38.184Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786182" lon="4.405435">
|
|
||||||
<ele>116.0</ele>
|
|
||||||
<time>2023-12-31T23:01:40.055Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786121" lon="4.405475">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<time>2023-12-31T23:01:41.376Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786042" lon="4.405558">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
<time>2023-12-31T23:01:43.274Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785821" lon="4.405925">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
<time>2023-12-31T23:01:49.687Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785672" lon="4.406119">
|
|
||||||
<ele>112.5</ele>
|
|
||||||
<time>2023-12-31T23:01:53.549Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785516" lon="4.406256">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<time>2023-12-31T23:01:57.120Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785384" lon="4.406364">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
<time>2023-12-31T23:02:00.094Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785126" lon="4.406475">
|
|
||||||
<ele>106.3</ele>
|
|
||||||
<time>2023-12-31T23:02:05.445Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784697" lon="4.406537">
|
|
||||||
<ele>104.3</ele>
|
|
||||||
<time>2023-12-31T23:02:14.067Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784591" lon="4.40657">
|
|
||||||
<ele>104.0</ele>
|
|
||||||
<time>2023-12-31T23:02:16.229Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784507" lon="4.406612">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<time>2023-12-31T23:02:17.992Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784435" lon="4.40669">
|
|
||||||
<ele>103.3</ele>
|
|
||||||
<time>2023-12-31T23:02:19.738Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784209" lon="4.407148">
|
|
||||||
<ele>103.5</ele>
|
|
||||||
<time>2023-12-31T23:02:27.089Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784162" lon="4.407257">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
<time>2023-12-31T23:02:28.758Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784077" lon="4.407372">
|
|
||||||
<ele>104.8</ele>
|
|
||||||
<time>2023-12-31T23:02:30.996Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784006" lon="4.407435">
|
|
||||||
<ele>105.8</ele>
|
|
||||||
<time>2023-12-31T23:02:32.625Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783924" lon="4.407471">
|
|
||||||
<ele>106.8</ele>
|
|
||||||
<time>2023-12-31T23:02:34.328Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783837" lon="4.407486">
|
|
||||||
<ele>107.8</ele>
|
|
||||||
<time>2023-12-31T23:02:36.079Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783771" lon="4.407472">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
<time>2023-12-31T23:02:37.411Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783697" lon="4.407428">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
<time>2023-12-31T23:02:38.993Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783626" lon="4.407363">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
<time>2023-12-31T23:02:40.634Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783548" lon="4.407274">
|
|
||||||
<ele>110.5</ele>
|
|
||||||
<time>2023-12-31T23:02:42.559Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783458" lon="4.407134">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
<time>2023-12-31T23:02:45.085Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783123" lon="4.406435">
|
|
||||||
<ele>111.8</ele>
|
|
||||||
<time>2023-12-31T23:02:56.184Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782982" lon="4.406168">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
<time>2023-12-31T23:03:00.586Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782871" lon="4.406044">
|
|
||||||
<ele>113.3</ele>
|
|
||||||
<time>2023-12-31T23:03:03.305Z</time>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
<trk>
|
|
||||||
<name>track 2</name>
|
|
||||||
<type>Running</type>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.782212" lon="4.406377">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
<time>2023-12-31T23:03:17.151Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782175" lon="4.406413">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
<time>2023-12-31T23:03:18.020Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781749" lon="4.407018">
|
|
||||||
<ele>118.5</ele>
|
|
||||||
<time>2023-12-31T23:03:29.479Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781654" lon="4.407316">
|
|
||||||
<ele>119.5</ele>
|
|
||||||
<time>2023-12-31T23:03:33.702Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781563" lon="4.407764">
|
|
||||||
<ele>121.3</ele>
|
|
||||||
<time>2023-12-31T23:03:39.656Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781487" lon="4.407984">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
<time>2023-12-31T23:03:42.828Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781422" lon="4.408216">
|
|
||||||
<ele>122.8</ele>
|
|
||||||
<time>2023-12-31T23:03:46.039Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781395" lon="4.408508">
|
|
||||||
<ele>123.5</ele>
|
|
||||||
<time>2023-12-31T23:03:49.773Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781399" lon="4.409114">
|
|
||||||
<ele>126.3</ele>
|
|
||||||
<time>2023-12-31T23:03:57.442Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781367" lon="4.409428">
|
|
||||||
<ele>128.0</ele>
|
|
||||||
<time>2023-12-31T23:04:01.467Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781286" lon="4.409607">
|
|
||||||
<ele>129.0</ele>
|
|
||||||
<time>2023-12-31T23:04:04.252Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78116" lon="4.409789">
|
|
||||||
<ele>130.0</ele>
|
|
||||||
<time>2023-12-31T23:04:07.667Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780804" lon="4.409993">
|
|
||||||
<ele>130.8</ele>
|
|
||||||
<time>2023-12-31T23:04:15.245Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780389" lon="4.410334">
|
|
||||||
<ele>131.8</ele>
|
|
||||||
<time>2023-12-31T23:04:24.605Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780232" lon="4.410563">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<time>2023-12-31T23:04:28.879Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780094" lon="4.410827">
|
|
||||||
<ele>132.8</ele>
|
|
||||||
<time>2023-12-31T23:04:33.213Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779723" lon="4.411582">
|
|
||||||
<ele>135.8</ele>
|
|
||||||
<time>2023-12-31T23:04:45.314Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779591" lon="4.411791">
|
|
||||||
<ele>135.5</ele>
|
|
||||||
<time>2023-12-31T23:04:49.052Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779125" lon="4.412435">
|
|
||||||
<ele>132.5</ele>
|
|
||||||
<time>2023-12-31T23:05:01.438Z</time>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.77906316558724" lon="4.412547477922485">
|
|
||||||
<ele>133.3</ele>
|
|
||||||
<time>2023-12-31T23:05:03.324Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778676" lon="4.412979">
|
|
||||||
<ele>134.0</ele>
|
|
||||||
<time>2023-12-31T23:05:12.804Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778194" lon="4.413466">
|
|
||||||
<ele>136.8</ele>
|
|
||||||
<time>2023-12-31T23:05:24.252Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777427" lon="4.414302">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<time>2023-12-31T23:05:42.896Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777165" lon="4.414736">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<time>2023-12-31T23:05:50.490Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776927" lon="4.415201">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
<time>2023-12-31T23:05:58.061Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776778" lon="4.415613">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
<time>2023-12-31T23:06:04.068Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776553" lon="4.416425">
|
|
||||||
<ele>134.8</ele>
|
|
||||||
<time>2023-12-31T23:06:15.288Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776326" lon="4.417304">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
<time>2023-12-31T23:06:27.305Z</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776129" lon="4.418383">
|
|
||||||
<ele>129.5</ele>
|
|
||||||
<time>2023-12-31T23:06:41.519Z</time>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
</gpx>
|
|
||||||
@@ -1,276 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://www.topografix.com/GPX/1/1"
|
|
||||||
xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd
|
|
||||||
http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd
|
|
||||||
http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd
|
|
||||||
http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"
|
|
||||||
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
|
|
||||||
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
|
|
||||||
xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" version="1.1"
|
|
||||||
creator="https://gpx.studio">
|
|
||||||
<metadata>
|
|
||||||
<name>with_waypoint</name>
|
|
||||||
<author>
|
|
||||||
<name>gpx.studio</name>
|
|
||||||
<link href="https://gpx.studio"></link>
|
|
||||||
</author>
|
|
||||||
</metadata>
|
|
||||||
<wpt lat="50.7836710064975" lon="4.410764082658738">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
<name>waypoint name</name>
|
|
||||||
<cmt>waypoint comment</cmt>
|
|
||||||
<desc>waypoint description</desc>
|
|
||||||
<link href="https://gpx.studio">
|
|
||||||
<text>waypoint link text</text>
|
|
||||||
</link>
|
|
||||||
<sym>Bike Trail</sym>
|
|
||||||
<type>Bike Trail</type>
|
|
||||||
</wpt>
|
|
||||||
<trk>
|
|
||||||
<name>with_waypoint</name>
|
|
||||||
<type>Cycling</type>
|
|
||||||
<trkseg>
|
|
||||||
<trkpt lat="50.790867" lon="4.404968">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790714" lon="4.405036">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790336" lon="4.405259">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790165" lon="4.405331">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.790008" lon="4.405359">
|
|
||||||
<ele>110.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789818" lon="4.405359">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789409" lon="4.40534">
|
|
||||||
<ele>107.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.789105" lon="4.405411">
|
|
||||||
<ele>106.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788799" lon="4.405527">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.788645" lon="4.405606">
|
|
||||||
<ele>109.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.7885" lon="4.405711">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78822" lon="4.405959">
|
|
||||||
<ele>112.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787956" lon="4.406092">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787814" lon="4.406143">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787674" lon="4.406177">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787451" lon="4.406199">
|
|
||||||
<ele>115.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787297" lon="4.406177">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78716" lon="4.406098">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.787045" lon="4.405984">
|
|
||||||
<ele>114.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786683" lon="4.405653">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786538" lon="4.405543">
|
|
||||||
<ele>115.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78635" lon="4.405441">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786275" lon="4.40542">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786182" lon="4.405435">
|
|
||||||
<ele>116.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786121" lon="4.405475">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.786042" lon="4.405558">
|
|
||||||
<ele>115.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785821" lon="4.405925">
|
|
||||||
<ele>114.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785672" lon="4.406119">
|
|
||||||
<ele>112.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785516" lon="4.406256">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785384" lon="4.406364">
|
|
||||||
<ele>109.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.785126" lon="4.406475">
|
|
||||||
<ele>106.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784697" lon="4.406537">
|
|
||||||
<ele>104.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784591" lon="4.40657">
|
|
||||||
<ele>104.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784507" lon="4.406612">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784435" lon="4.40669">
|
|
||||||
<ele>103.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784209" lon="4.407148">
|
|
||||||
<ele>103.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784162" lon="4.407257">
|
|
||||||
<ele>103.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784077" lon="4.407372">
|
|
||||||
<ele>104.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.784006" lon="4.407435">
|
|
||||||
<ele>105.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783924" lon="4.407471">
|
|
||||||
<ele>106.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783837" lon="4.407486">
|
|
||||||
<ele>107.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783771" lon="4.407472">
|
|
||||||
<ele>108.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783697" lon="4.407428">
|
|
||||||
<ele>109.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783626" lon="4.407363">
|
|
||||||
<ele>110.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783548" lon="4.407274">
|
|
||||||
<ele>110.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783458" lon="4.407134">
|
|
||||||
<ele>110.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.783123" lon="4.406435">
|
|
||||||
<ele>111.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782982" lon="4.406168">
|
|
||||||
<ele>112.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782871" lon="4.406044">
|
|
||||||
<ele>113.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78279" lon="4.406021">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782714" lon="4.406018">
|
|
||||||
<ele>113.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782607" lon="4.406047">
|
|
||||||
<ele>113.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782405" lon="4.406194">
|
|
||||||
<ele>114.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.782175" lon="4.406413">
|
|
||||||
<ele>115.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781749" lon="4.407018">
|
|
||||||
<ele>118.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781654" lon="4.407316">
|
|
||||||
<ele>119.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781563" lon="4.407764">
|
|
||||||
<ele>121.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781487" lon="4.407984">
|
|
||||||
<ele>122.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781422" lon="4.408216">
|
|
||||||
<ele>122.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781395" lon="4.408508">
|
|
||||||
<ele>123.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781399" lon="4.409114">
|
|
||||||
<ele>126.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781367" lon="4.409428">
|
|
||||||
<ele>128.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.781286" lon="4.409607">
|
|
||||||
<ele>129.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.78116" lon="4.409789">
|
|
||||||
<ele>130.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780804" lon="4.409993">
|
|
||||||
<ele>130.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780389" lon="4.410334">
|
|
||||||
<ele>131.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780232" lon="4.410563">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.780094" lon="4.410827">
|
|
||||||
<ele>132.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779723" lon="4.411582">
|
|
||||||
<ele>135.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779591" lon="4.411791">
|
|
||||||
<ele>135.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.779125" lon="4.412435">
|
|
||||||
<ele>132.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778676" lon="4.412979">
|
|
||||||
<ele>134.0</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.778194" lon="4.413466">
|
|
||||||
<ele>136.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777427" lon="4.414302">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.777165" lon="4.414736">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776927" lon="4.415201">
|
|
||||||
<ele>137.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776778" lon="4.415613">
|
|
||||||
<ele>137.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776553" lon="4.416425">
|
|
||||||
<ele>134.8</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776326" lon="4.417304">
|
|
||||||
<ele>132.3</ele>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="50.776129" lon="4.418383">
|
|
||||||
<ele>129.5</ele>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg>
|
|
||||||
</trk>
|
|
||||||
</gpx>
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
mod simplify;
|
|
||||||
mod smooth;
|
|
||||||
|
|
||||||
pub use simplify::*;
|
|
||||||
pub use smooth::*;
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
use crate::gpx::{TrackSegment, TrackSegmentIndex};
|
|
||||||
|
|
||||||
pub fn ramer_douglas_peucker<F, T>(
|
|
||||||
trkseg: &TrackSegment,
|
|
||||||
distance: &F,
|
|
||||||
epsilon: T,
|
|
||||||
) -> Vec<TrackSegmentIndex>
|
|
||||||
where
|
|
||||||
F: Fn(TrackSegmentIndex, TrackSegmentIndex, TrackSegmentIndex) -> T,
|
|
||||||
T: Default + PartialOrd + Copy,
|
|
||||||
{
|
|
||||||
match trkseg.len() {
|
|
||||||
0 => vec![],
|
|
||||||
1 => vec![trkseg.first_index().unwrap()],
|
|
||||||
2 => vec![trkseg.last_index().unwrap()],
|
|
||||||
_ => {
|
|
||||||
let first = trkseg.first_index().unwrap();
|
|
||||||
let last = trkseg.last_index().unwrap();
|
|
||||||
|
|
||||||
let mut indices = vec![first];
|
|
||||||
ramer_douglas_peucker_helper(trkseg, first, last, distance, epsilon, &mut indices);
|
|
||||||
indices.push(last);
|
|
||||||
indices
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn ramer_douglas_peucker_helper<F, T>(
|
|
||||||
trkseg: &TrackSegment,
|
|
||||||
start: TrackSegmentIndex,
|
|
||||||
end: TrackSegmentIndex,
|
|
||||||
distance: &F,
|
|
||||||
epsilon: T,
|
|
||||||
indices: &mut Vec<TrackSegmentIndex>,
|
|
||||||
) where
|
|
||||||
F: Fn(TrackSegmentIndex, TrackSegmentIndex, TrackSegmentIndex) -> T,
|
|
||||||
T: Default + PartialOrd + Copy,
|
|
||||||
{
|
|
||||||
let mut max_idx = None;
|
|
||||||
let mut max_dist = T::default();
|
|
||||||
|
|
||||||
let mut cur = trkseg.next_index(Some(start));
|
|
||||||
|
|
||||||
while let Some(idx) = cur {
|
|
||||||
if idx == end {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
let dist = distance(start, end, idx);
|
|
||||||
if dist > max_dist {
|
|
||||||
max_idx = Some(idx);
|
|
||||||
max_dist = dist;
|
|
||||||
}
|
|
||||||
|
|
||||||
cur = trkseg.next_index(cur);
|
|
||||||
}
|
|
||||||
|
|
||||||
if let Some(idx) = max_idx {
|
|
||||||
if max_dist > epsilon {
|
|
||||||
ramer_douglas_peucker_helper(trkseg, start, idx, distance, epsilon, indices);
|
|
||||||
indices.push(idx);
|
|
||||||
ramer_douglas_peucker_helper(trkseg, idx, end, distance, epsilon, indices);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
#[macro_export]
|
|
||||||
macro_rules! for_each_window {
|
|
||||||
(
|
|
||||||
$trkseg:expr,
|
|
||||||
$left:expr,
|
|
||||||
$right:expr,
|
|
||||||
$window:expr,
|
|
||||||
|$a:ident, $b:ident| $distance:expr,
|
|
||||||
|$i:ident, $l:ident, $r:ident| $body:block,
|
|
||||||
) => {{
|
|
||||||
let mut start = $left.unwrap_or_default();
|
|
||||||
let mut cur = $left;
|
|
||||||
while let Some(idx) = cur {
|
|
||||||
// advance left if needed
|
|
||||||
while start != idx && {
|
|
||||||
let $a = start;
|
|
||||||
let $b = idx;
|
|
||||||
$distance
|
|
||||||
} > $window {
|
|
||||||
if let Some(next) = $trkseg.next_index(Some(start)) {
|
|
||||||
if next == idx {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
start = next;
|
|
||||||
} else {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// advance right if needed
|
|
||||||
let mut end = idx;
|
|
||||||
while let Some(next) = $trkseg.next_index(Some(end)) {
|
|
||||||
if {
|
|
||||||
let $a = idx;
|
|
||||||
let $b = end;
|
|
||||||
$distance
|
|
||||||
} > $window {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
end = next;
|
|
||||||
}
|
|
||||||
// apply body
|
|
||||||
let $i = idx;
|
|
||||||
let $l = start;
|
|
||||||
let $r = end;
|
|
||||||
$body
|
|
||||||
// go next
|
|
||||||
cur = $trkseg.next_index(cur);
|
|
||||||
}
|
|
||||||
}};
|
|
||||||
}
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
use std::rc::Rc;
|
|
||||||
|
|
||||||
use uuid::Uuid;
|
|
||||||
use wasm_bindgen::prelude::*;
|
|
||||||
|
|
||||||
use crate::{
|
|
||||||
gpx::GPXFile,
|
|
||||||
io::parse,
|
|
||||||
selection::Selection,
|
|
||||||
stack::{Stack, StackEntry},
|
|
||||||
};
|
|
||||||
|
|
||||||
// Control flow
|
|
||||||
// - get lock to cancel any other updates
|
|
||||||
// - update files
|
|
||||||
// - update separate statistics
|
|
||||||
// - update selection
|
|
||||||
// - update selection statistics
|
|
||||||
// - notify UI (changed files, updated selection, new stats)
|
|
||||||
|
|
||||||
#[wasm_bindgen]
|
|
||||||
pub struct Controller {
|
|
||||||
stack: Stack,
|
|
||||||
selection: Selection,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[wasm_bindgen]
|
|
||||||
impl Controller {
|
|
||||||
#[wasm_bindgen(constructor)]
|
|
||||||
pub fn new() -> Self {
|
|
||||||
Self {
|
|
||||||
stack: Default::default(),
|
|
||||||
selection: Default::default(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[wasm_bindgen]
|
|
||||||
pub fn create_file(&mut self, name: &str) {
|
|
||||||
let mut file = GPXFile::default();
|
|
||||||
file.info.name = name.to_string();
|
|
||||||
self.stack.create_and_push_next(|entry: &mut StackEntry| {
|
|
||||||
entry.insert(file.id, Rc::new(file));
|
|
||||||
true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#[wasm_bindgen]
|
|
||||||
pub fn load_file(&mut self, data: &[u8]) {
|
|
||||||
if let Ok(file) = parse(data) {
|
|
||||||
self.stack.create_and_push_next(|entry: &mut StackEntry| {
|
|
||||||
entry.insert(file.id, Rc::new(file));
|
|
||||||
true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[wasm_bindgen]
|
|
||||||
pub fn delete_file(&mut self, id: &[u8]) {
|
|
||||||
if let Ok(id) = Uuid::from_slice(id) {
|
|
||||||
self.stack
|
|
||||||
.create_and_push_next(|entry: &mut StackEntry| entry.remove(&id).is_some());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
use crate::gpx::{Trackpoint, Waypoint};
|
|
||||||
|
|
||||||
static MAX_TRKPT_CHUNK_SIZE: usize = 4096;
|
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
|
||||||
pub struct TrackpointChunk {
|
|
||||||
pub trkpt: Vec<Trackpoint>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl TrackpointChunk {
|
|
||||||
pub fn is_full(&self) -> bool {
|
|
||||||
self.trkpt.len() == MAX_TRKPT_CHUNK_SIZE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static MAX_WPT_CHUNK_SIZE: usize = 128;
|
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
|
||||||
pub struct WaypointChunk {
|
|
||||||
pub wpt: Vec<Waypoint>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl WaypointChunk {
|
|
||||||
pub fn is_full(&self) -> bool {
|
|
||||||
self.wpt.len() == MAX_WPT_CHUNK_SIZE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
#[derive(Debug, Default)]
|
|
||||||
pub struct Link {
|
|
||||||
pub href: String,
|
|
||||||
pub text: Option<String>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Default, Clone, Copy)]
|
|
||||||
pub struct LngLat {
|
|
||||||
pub lng: f64,
|
|
||||||
pub lat: f64,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug)]
|
|
||||||
pub struct LngLatBounds {
|
|
||||||
pub sw: LngLat,
|
|
||||||
pub ne: LngLat,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Default for LngLatBounds {
|
|
||||||
fn default() -> Self {
|
|
||||||
Self {
|
|
||||||
sw: LngLat {
|
|
||||||
lng: 180.0,
|
|
||||||
lat: 90.0,
|
|
||||||
},
|
|
||||||
ne: LngLat {
|
|
||||||
lng: -180.0,
|
|
||||||
lat: -90.0,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl LngLatBounds {
|
|
||||||
pub fn extend(&mut self, coordinates: LngLat) {
|
|
||||||
self.sw.lng = self.sw.lng.min(coordinates.lng);
|
|
||||||
self.sw.lat = self.sw.lat.min(coordinates.lat);
|
|
||||||
self.ne.lng = self.ne.lng.min(coordinates.lng);
|
|
||||||
self.ne.lat = self.ne.lat.min(coordinates.lat);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn merge(&mut self, other: &LngLatBounds) {
|
|
||||||
self.sw.lng = self.sw.lng.min(other.sw.lng);
|
|
||||||
self.sw.lat = self.sw.lat.min(other.sw.lat);
|
|
||||||
self.ne.lng = self.ne.lng.min(other.ne.lng);
|
|
||||||
self.ne.lat = self.ne.lat.min(other.ne.lat);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
use std::rc::Rc;
|
|
||||||
|
|
||||||
use uuid::Uuid;
|
|
||||||
|
|
||||||
use crate::gpx::{Link, Track, WaypointChunk};
|
|
||||||
|
|
||||||
#[derive(Debug)]
|
|
||||||
pub struct GPXFile {
|
|
||||||
pub id: Uuid,
|
|
||||||
pub info: GPXFileInfo,
|
|
||||||
pub trk: Vec<Track>,
|
|
||||||
pub wpt: Vec<Rc<WaypointChunk>>,
|
|
||||||
// TODO routes
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Default for GPXFile {
|
|
||||||
fn default() -> Self {
|
|
||||||
Self {
|
|
||||||
id: Uuid::new_v4(),
|
|
||||||
info: Default::default(),
|
|
||||||
trk: Default::default(),
|
|
||||||
wpt: Default::default(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
|
||||||
pub struct GPXFileInfo {
|
|
||||||
pub name: String,
|
|
||||||
pub desc: Option<String>,
|
|
||||||
pub author: Option<Author>,
|
|
||||||
pub link: Option<Link>,
|
|
||||||
pub time: Option<i64>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
|
||||||
pub struct Author {
|
|
||||||
pub name: Option<String>,
|
|
||||||
pub email: Option<String>,
|
|
||||||
pub link: Option<Link>,
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
mod chunk;
|
|
||||||
mod common;
|
|
||||||
mod file;
|
|
||||||
mod segment;
|
|
||||||
mod track;
|
|
||||||
mod trackpoint;
|
|
||||||
mod waypoint;
|
|
||||||
|
|
||||||
pub use chunk::*;
|
|
||||||
pub use common::*;
|
|
||||||
pub use file::*;
|
|
||||||
pub use segment::*;
|
|
||||||
pub use track::*;
|
|
||||||
pub use trackpoint::*;
|
|
||||||
pub use waypoint::*;
|
|
||||||
@@ -1,253 +0,0 @@
|
|||||||
use std::{ops::Index, rc::Rc};
|
|
||||||
|
|
||||||
use crate::gpx::{Trackpoint, TrackpointChunk};
|
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
|
||||||
pub struct TrackSegment {
|
|
||||||
chunks: Vec<Rc<TrackpointChunk>>,
|
|
||||||
cumul_length: Vec<usize>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl TrackSegment {
|
|
||||||
pub fn push(&mut self, chunk: TrackpointChunk) {
|
|
||||||
if chunk.trkpt.is_empty() {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
self.cumul_length
|
|
||||||
.push(self.cumul_length.last().copied().unwrap_or_default() + chunk.trkpt.len());
|
|
||||||
self.chunks.push(Rc::new(chunk));
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn len(&self) -> usize {
|
|
||||||
self.cumul_length.last().copied().unwrap_or_default()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn iter(&self) -> TrackSegmentIterator<'_> {
|
|
||||||
TrackSegmentIterator::new(self)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn first_index(&self) -> Option<TrackSegmentIndex> {
|
|
||||||
self.next_index(None)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn last_index(&self) -> Option<TrackSegmentIndex> {
|
|
||||||
self.prev_index(None)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn next_index(&self, cur: Option<TrackSegmentIndex>) -> Option<TrackSegmentIndex> {
|
|
||||||
let mut next = cur.map_or_default(|idx| TrackSegmentIndex {
|
|
||||||
chunk: idx.chunk,
|
|
||||||
pos: idx.pos + 1,
|
|
||||||
});
|
|
||||||
loop {
|
|
||||||
if next.chunk >= self.chunks.len() {
|
|
||||||
return None;
|
|
||||||
}
|
|
||||||
if next.pos == self.chunks[next.chunk].trkpt.len() {
|
|
||||||
next.chunk += 1;
|
|
||||||
next.pos = 0;
|
|
||||||
} else {
|
|
||||||
return Some(next);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn prev_index(&self, cur: Option<TrackSegmentIndex>) -> Option<TrackSegmentIndex> {
|
|
||||||
let mut prev = cur.unwrap_or(TrackSegmentIndex {
|
|
||||||
chunk: self.chunks.len(),
|
|
||||||
pos: 0,
|
|
||||||
});
|
|
||||||
loop {
|
|
||||||
if prev.pos == 0 {
|
|
||||||
if prev.chunk == 0 {
|
|
||||||
return None;
|
|
||||||
}
|
|
||||||
prev.chunk -= 1;
|
|
||||||
prev.pos = self.chunks[prev.chunk].trkpt.len();
|
|
||||||
} else {
|
|
||||||
prev.pos -= 1;
|
|
||||||
return Some(prev);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn to_flat_index(&self, idx: TrackSegmentIndex) -> usize {
|
|
||||||
idx.pos
|
|
||||||
+ if idx.chunk > 0 {
|
|
||||||
self.cumul_length[idx.chunk - 1]
|
|
||||||
} else {
|
|
||||||
0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn locate(&self, idx: usize) -> Option<TrackSegmentIndex> {
|
|
||||||
let chunk = self.cumul_length.partition_point(|l| idx >= *l);
|
|
||||||
if chunk >= self.chunks.len() {
|
|
||||||
return None;
|
|
||||||
}
|
|
||||||
let pos = if chunk > 0 {
|
|
||||||
idx - self.cumul_length[chunk - 1]
|
|
||||||
} else {
|
|
||||||
idx
|
|
||||||
};
|
|
||||||
if pos >= self.chunks[chunk].trkpt.len() {
|
|
||||||
None
|
|
||||||
} else {
|
|
||||||
Some(TrackSegmentIndex { chunk, pos })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Index<TrackSegmentIndex> for TrackSegment {
|
|
||||||
type Output = Trackpoint;
|
|
||||||
|
|
||||||
fn index(&self, idx: TrackSegmentIndex) -> &Self::Output {
|
|
||||||
&self.chunks[idx.chunk].trkpt[idx.pos]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Index<usize> for TrackSegment {
|
|
||||||
type Output = Trackpoint;
|
|
||||||
|
|
||||||
fn index(&self, idx: usize) -> &Self::Output {
|
|
||||||
&self[self.locate(idx).unwrap()]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, PartialOrd, Ord)]
|
|
||||||
pub struct TrackSegmentIndex {
|
|
||||||
pub chunk: usize,
|
|
||||||
pub pos: usize,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
|
||||||
pub struct TrackSegmentIterator<'a> {
|
|
||||||
trkseg: &'a TrackSegment,
|
|
||||||
idx: Option<TrackSegmentIndex>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a> TrackSegmentIterator<'a> {
|
|
||||||
pub fn new(trkseg: &'a TrackSegment) -> Self {
|
|
||||||
Self {
|
|
||||||
trkseg,
|
|
||||||
idx: Default::default(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a> Iterator for TrackSegmentIterator<'a> {
|
|
||||||
type Item = &'a Trackpoint;
|
|
||||||
|
|
||||||
fn next(&mut self) -> Option<Self::Item> {
|
|
||||||
self.idx = self.trkseg.next_index(self.idx);
|
|
||||||
self.idx.map(|idx| &self.trkseg[idx])
|
|
||||||
}
|
|
||||||
|
|
||||||
fn nth(&mut self, n: usize) -> Option<Self::Item> {
|
|
||||||
let idx = self
|
|
||||||
.idx
|
|
||||||
.map_or_default(|idx| self.trkseg.to_flat_index(idx))
|
|
||||||
+ n;
|
|
||||||
self.idx = self.trkseg.locate(idx);
|
|
||||||
self.idx.map(|idx| &self.trkseg[idx])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
use crate::gpx::TrackpointChunk;
|
|
||||||
|
|
||||||
use super::*;
|
|
||||||
|
|
||||||
fn create_track_segment(nb_chunks: usize) -> TrackSegment {
|
|
||||||
let mut trkseg = TrackSegment::default();
|
|
||||||
let mut count = 0;
|
|
||||||
for n in 1..=nb_chunks {
|
|
||||||
let mut chunk = TrackpointChunk::default();
|
|
||||||
for _ in 0..n {
|
|
||||||
let mut trkpt = Trackpoint::default();
|
|
||||||
trkpt.ele = count as f64;
|
|
||||||
chunk.trkpt.push(trkpt);
|
|
||||||
count += 1;
|
|
||||||
}
|
|
||||||
trkseg.push(chunk);
|
|
||||||
}
|
|
||||||
trkseg
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_len() {
|
|
||||||
let nb_chunks = 10;
|
|
||||||
let trkseg = create_track_segment(nb_chunks);
|
|
||||||
assert_eq!(trkseg.len(), nb_chunks * (nb_chunks + 1) / 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_locate() {
|
|
||||||
let nb_chunks = 10;
|
|
||||||
let trkseg = create_track_segment(nb_chunks);
|
|
||||||
for i in 0..trkseg.len() {
|
|
||||||
let idx = trkseg.locate(i);
|
|
||||||
assert!(idx.is_some());
|
|
||||||
assert_eq!(trkseg[idx.unwrap()].ele, i as f64);
|
|
||||||
}
|
|
||||||
|
|
||||||
assert!(trkseg.locate(trkseg.len()).is_none());
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_index() {
|
|
||||||
let nb_chunks = 10;
|
|
||||||
let trkseg = create_track_segment(nb_chunks);
|
|
||||||
for i in 0..trkseg.len() {
|
|
||||||
assert_eq!(trkseg[i].ele, i as f64);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
#[should_panic]
|
|
||||||
fn test_index_out_of_bounds_1() {
|
|
||||||
let nb_chunks = 10;
|
|
||||||
let trkseg = create_track_segment(nb_chunks);
|
|
||||||
trkseg[trkseg.len()].ele;
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
#[should_panic]
|
|
||||||
fn test_index_out_of_bounds_2() {
|
|
||||||
let nb_chunks = 10;
|
|
||||||
let trkseg = create_track_segment(nb_chunks);
|
|
||||||
trkseg[TrackSegmentIndex {
|
|
||||||
chunk: trkseg.chunks.len(),
|
|
||||||
pos: 0,
|
|
||||||
}]
|
|
||||||
.ele;
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_iter() {
|
|
||||||
let nb_chunks = 10;
|
|
||||||
let trkseg = create_track_segment(nb_chunks);
|
|
||||||
for (i, trkpt) in trkseg.iter().enumerate() {
|
|
||||||
assert!(std::ptr::eq(&trkseg[i], trkpt));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_iter_nth() {
|
|
||||||
let nb_chunks = 10;
|
|
||||||
let trkseg = create_track_segment(nb_chunks);
|
|
||||||
let tenth = trkseg.iter().nth(10);
|
|
||||||
assert!(tenth.is_some());
|
|
||||||
assert!(std::ptr::eq(&trkseg[10], tenth.unwrap()));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_iter_skip() {
|
|
||||||
let nb_chunks = 10;
|
|
||||||
let trkseg = create_track_segment(nb_chunks);
|
|
||||||
for (i, trkpt) in trkseg.iter().enumerate().skip(5) {
|
|
||||||
assert!(std::ptr::eq(&trkseg[i], trkpt));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
use crate::gpx::{Link, TrackSegment};
|
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
|
||||||
pub struct Track {
|
|
||||||
pub info: TrackInfo,
|
|
||||||
pub trkseg: Vec<TrackSegment>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
|
||||||
pub struct TrackInfo {
|
|
||||||
pub name: Option<String>,
|
|
||||||
pub cmt: Option<String>,
|
|
||||||
pub desc: Option<String>,
|
|
||||||
pub src: Option<String>,
|
|
||||||
pub link: Option<Link>,
|
|
||||||
pub type_: Option<String>,
|
|
||||||
pub color: Option<String>,
|
|
||||||
pub opacity: Option<f64>,
|
|
||||||
pub width: Option<f64>,
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
use crate::gpx::LngLat;
|
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
|
||||||
pub struct Trackpoint {
|
|
||||||
pub coordinates: LngLat,
|
|
||||||
pub ele: f64,
|
|
||||||
pub time: Option<i64>,
|
|
||||||
pub atemp: Option<i16>,
|
|
||||||
pub hr: Option<u16>,
|
|
||||||
pub cad: Option<u16>,
|
|
||||||
pub power: Option<u16>,
|
|
||||||
// TODO OSM data? or store intervals at a higher level?
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Trackpoint {
|
|
||||||
pub fn time_diff(&self, other: &Trackpoint) -> Option<i64> {
|
|
||||||
self.time.zip(other.time).map(|(t1, t2)| t1 - t2)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
use crate::gpx::{Link, LngLat};
|
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
|
||||||
pub struct Waypoint {
|
|
||||||
pub coordinates: LngLat,
|
|
||||||
pub ele: f64,
|
|
||||||
pub time: Option<i64>,
|
|
||||||
pub name: Option<String>,
|
|
||||||
pub cmt: Option<String>,
|
|
||||||
pub desc: Option<String>,
|
|
||||||
pub link: Option<Link>,
|
|
||||||
pub sym: Option<String>,
|
|
||||||
pub type_: Option<String>,
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
mod parse;
|
|
||||||
|
|
||||||
pub use parse::*;
|
|
||||||
@@ -1,637 +0,0 @@
|
|||||||
use std::rc::Rc;
|
|
||||||
|
|
||||||
use crate::gpx::{
|
|
||||||
Author, GPXFile, Link, LngLat, Track, TrackSegment, Trackpoint, TrackpointChunk, Waypoint,
|
|
||||||
WaypointChunk,
|
|
||||||
};
|
|
||||||
use chrono::DateTime;
|
|
||||||
use quick_xml::Error;
|
|
||||||
use quick_xml::events::Event;
|
|
||||||
use quick_xml::events::attributes::Attributes;
|
|
||||||
use quick_xml::reader::Reader;
|
|
||||||
|
|
||||||
enum GPXElement {
|
|
||||||
Metadata,
|
|
||||||
Name,
|
|
||||||
Comment,
|
|
||||||
Description,
|
|
||||||
Source,
|
|
||||||
Author(Author),
|
|
||||||
Link(Link),
|
|
||||||
Text,
|
|
||||||
Track(Track),
|
|
||||||
Segment(TrackSegment),
|
|
||||||
Trackpoint(Trackpoint),
|
|
||||||
Waypoint(Waypoint),
|
|
||||||
Elevation,
|
|
||||||
Time,
|
|
||||||
Temperature,
|
|
||||||
Heartrate,
|
|
||||||
Cadence,
|
|
||||||
Power,
|
|
||||||
Symbol,
|
|
||||||
Type,
|
|
||||||
Color,
|
|
||||||
Opacity,
|
|
||||||
Width,
|
|
||||||
}
|
|
||||||
|
|
||||||
fn parse_coordinates(attributes: Attributes<'_>) -> LngLat {
|
|
||||||
let mut coordinates = LngLat::default();
|
|
||||||
for attr in attributes {
|
|
||||||
if let Ok(attr) = attr {
|
|
||||||
match attr.key.as_ref() {
|
|
||||||
"lat" => coordinates.lat = attr.value.parse().unwrap_or_default(),
|
|
||||||
"lon" => coordinates.lng = attr.value.parse().unwrap_or_default(),
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
coordinates
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn parse(data: &[u8]) -> Result<GPXFile, Error> {
|
|
||||||
let mut reader = Reader::from_reader(data);
|
|
||||||
let mut buf = vec![];
|
|
||||||
let mut gpx = GPXFile::default();
|
|
||||||
let mut stack: Vec<GPXElement> = vec![];
|
|
||||||
let mut trkpt_chunk = TrackpointChunk::default();
|
|
||||||
let mut wpt_chunk = WaypointChunk::default();
|
|
||||||
loop {
|
|
||||||
match reader.read_event_into(&mut buf) {
|
|
||||||
Ok(Event::Start(e)) => match e.name().as_ref() {
|
|
||||||
"metadata" => stack.push(GPXElement::Metadata),
|
|
||||||
"name" => stack.push(GPXElement::Name),
|
|
||||||
"cmt" => stack.push(GPXElement::Comment),
|
|
||||||
"desc" => stack.push(GPXElement::Description),
|
|
||||||
"src" => stack.push(GPXElement::Source),
|
|
||||||
"author" => stack.push(GPXElement::Author(Author::default())),
|
|
||||||
"link" => {
|
|
||||||
let mut link = Link::default();
|
|
||||||
for attr in e.attributes() {
|
|
||||||
if let Ok(attr) = attr {
|
|
||||||
if attr.key.as_ref() == "href" {
|
|
||||||
link.href = attr.value.to_string();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stack.push(GPXElement::Link(link));
|
|
||||||
}
|
|
||||||
"text" => stack.push(GPXElement::Text),
|
|
||||||
"trk" => stack.push(GPXElement::Track(Track::default())),
|
|
||||||
"trkseg" => {
|
|
||||||
stack.push(GPXElement::Segment(TrackSegment::default()));
|
|
||||||
}
|
|
||||||
"trkpt" => {
|
|
||||||
let mut trkpt = Trackpoint::default();
|
|
||||||
trkpt.coordinates = parse_coordinates(e.attributes());
|
|
||||||
stack.push(GPXElement::Trackpoint(trkpt));
|
|
||||||
}
|
|
||||||
"wpt" => {
|
|
||||||
let mut wpt = Waypoint::default();
|
|
||||||
wpt.coordinates = parse_coordinates(e.attributes());
|
|
||||||
stack.push(GPXElement::Waypoint(wpt));
|
|
||||||
}
|
|
||||||
"ele" => stack.push(GPXElement::Elevation),
|
|
||||||
"time" => stack.push(GPXElement::Time),
|
|
||||||
e if e.ends_with("atemp") => stack.push(GPXElement::Temperature),
|
|
||||||
e if e.ends_with("hr") => stack.push(GPXElement::Heartrate),
|
|
||||||
e if e.ends_with("cad") => stack.push(GPXElement::Cadence),
|
|
||||||
"power" => stack.push(GPXElement::Power),
|
|
||||||
e if e.ends_with("PowerInWatts") => stack.push(GPXElement::Power),
|
|
||||||
"sym" => stack.push(GPXElement::Symbol),
|
|
||||||
"type" => stack.push(GPXElement::Type),
|
|
||||||
e if e.ends_with("color") => stack.push(GPXElement::Color),
|
|
||||||
e if e.ends_with("opacity") => stack.push(GPXElement::Opacity),
|
|
||||||
e if e.ends_with("width") => stack.push(GPXElement::Width),
|
|
||||||
_ => (),
|
|
||||||
},
|
|
||||||
Ok(Event::End(e)) => match e.name().as_ref() {
|
|
||||||
"gpx" => {
|
|
||||||
if !wpt_chunk.wpt.is_empty() {
|
|
||||||
gpx.wpt.push(Rc::new(wpt_chunk));
|
|
||||||
wpt_chunk = WaypointChunk::default();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"metadata" => {
|
|
||||||
stack.pop();
|
|
||||||
}
|
|
||||||
"author" => {
|
|
||||||
if let Some(GPXElement::Author(author)) = stack.pop() {
|
|
||||||
gpx.info.author = Some(author);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"link" => {
|
|
||||||
if let Some(GPXElement::Link(link)) = stack.pop() {
|
|
||||||
match stack.last_mut() {
|
|
||||||
Some(GPXElement::Author(author)) => {
|
|
||||||
author.link = Some(link);
|
|
||||||
}
|
|
||||||
Some(GPXElement::Track(trk)) => {
|
|
||||||
trk.info.link = Some(link);
|
|
||||||
}
|
|
||||||
Some(GPXElement::Waypoint(wpt)) => {
|
|
||||||
wpt.link = Some(link);
|
|
||||||
}
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"trk" => {
|
|
||||||
if let Some(GPXElement::Track(trk)) = stack.pop() {
|
|
||||||
gpx.trk.push(trk);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"trkseg" => {
|
|
||||||
if let Some(GPXElement::Segment(mut trkseg)) = stack.pop() {
|
|
||||||
if let Some(GPXElement::Track(trk)) = stack.last_mut() {
|
|
||||||
if !trkpt_chunk.trkpt.is_empty() {
|
|
||||||
trkseg.push(trkpt_chunk);
|
|
||||||
trkpt_chunk = TrackpointChunk::default();
|
|
||||||
}
|
|
||||||
trk.trkseg.push(trkseg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"trkpt" => {
|
|
||||||
if let Some(GPXElement::Trackpoint(trkpt)) = stack.pop() {
|
|
||||||
if let Some(GPXElement::Segment(trkseg)) = stack.last_mut() {
|
|
||||||
trkpt_chunk.trkpt.push(trkpt);
|
|
||||||
if trkpt_chunk.is_full() {
|
|
||||||
trkseg.push(trkpt_chunk);
|
|
||||||
trkpt_chunk = TrackpointChunk::default();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"wpt" => {
|
|
||||||
if let Some(GPXElement::Waypoint(wpt)) = stack.pop() {
|
|
||||||
wpt_chunk.wpt.push(wpt);
|
|
||||||
if wpt_chunk.is_full() {
|
|
||||||
gpx.wpt.push(Rc::new(wpt_chunk));
|
|
||||||
wpt_chunk = WaypointChunk::default();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_ => (),
|
|
||||||
},
|
|
||||||
Ok(Event::Text(e)) => match stack.last_mut() {
|
|
||||||
Some(GPXElement::Name) => {
|
|
||||||
stack.pop();
|
|
||||||
match stack.last_mut() {
|
|
||||||
Some(GPXElement::Metadata) => {
|
|
||||||
gpx.info.name = e.to_string();
|
|
||||||
}
|
|
||||||
Some(GPXElement::Author(author)) => {
|
|
||||||
author.name = Some(e.to_string());
|
|
||||||
}
|
|
||||||
Some(GPXElement::Track(trk)) => {
|
|
||||||
trk.info.name = Some(e.to_string());
|
|
||||||
}
|
|
||||||
Some(GPXElement::Waypoint(wpt)) => {
|
|
||||||
wpt.name = Some(e.to_string());
|
|
||||||
}
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Comment) => {
|
|
||||||
stack.pop();
|
|
||||||
match stack.last_mut() {
|
|
||||||
Some(GPXElement::Track(trk)) => {
|
|
||||||
trk.info.cmt = Some(e.to_string());
|
|
||||||
}
|
|
||||||
Some(GPXElement::Waypoint(wpt)) => {
|
|
||||||
wpt.cmt = Some(e.to_string());
|
|
||||||
}
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Description) => {
|
|
||||||
stack.pop();
|
|
||||||
match stack.last_mut() {
|
|
||||||
Some(GPXElement::Metadata) => {
|
|
||||||
gpx.info.desc = Some(e.to_string());
|
|
||||||
}
|
|
||||||
Some(GPXElement::Track(trk)) => {
|
|
||||||
trk.info.desc = Some(e.to_string());
|
|
||||||
}
|
|
||||||
Some(GPXElement::Waypoint(wpt)) => {
|
|
||||||
wpt.desc = Some(e.to_string());
|
|
||||||
}
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Source) => {
|
|
||||||
stack.pop();
|
|
||||||
match stack.last_mut() {
|
|
||||||
Some(GPXElement::Track(trk)) => {
|
|
||||||
trk.info.src = Some(e.to_string());
|
|
||||||
}
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Text) => {
|
|
||||||
stack.pop();
|
|
||||||
if let Some(GPXElement::Link(link)) = stack.last_mut() {
|
|
||||||
link.text = Some(e.to_string());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Elevation) => {
|
|
||||||
stack.pop();
|
|
||||||
match stack.last_mut() {
|
|
||||||
Some(GPXElement::Trackpoint(trkpt)) => {
|
|
||||||
trkpt.ele = e.parse().unwrap_or_default();
|
|
||||||
}
|
|
||||||
Some(GPXElement::Waypoint(wpt)) => {
|
|
||||||
wpt.ele = e.parse().unwrap_or_default();
|
|
||||||
}
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Time) => {
|
|
||||||
stack.pop();
|
|
||||||
if let Some(GPXElement::Trackpoint(trkpt)) = stack.last_mut() {
|
|
||||||
if let Ok(time) = DateTime::parse_from_rfc3339(e.as_ref()) {
|
|
||||||
trkpt.time = Some(time.timestamp_millis());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Temperature) => {
|
|
||||||
stack.pop();
|
|
||||||
if let Some(GPXElement::Trackpoint(trkpt)) = stack.last_mut() {
|
|
||||||
trkpt.atemp = e.parse().ok();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Heartrate) => {
|
|
||||||
stack.pop();
|
|
||||||
if let Some(GPXElement::Trackpoint(trkpt)) = stack.last_mut() {
|
|
||||||
trkpt.hr = e.parse().ok();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Cadence) => {
|
|
||||||
stack.pop();
|
|
||||||
if let Some(GPXElement::Trackpoint(trkpt)) = stack.last_mut() {
|
|
||||||
trkpt.cad = e.parse().ok();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Power) => {
|
|
||||||
stack.pop();
|
|
||||||
if let Some(GPXElement::Trackpoint(trkpt)) = stack.last_mut() {
|
|
||||||
trkpt.power = e.parse().ok();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Symbol) => {
|
|
||||||
stack.pop();
|
|
||||||
match stack.last_mut() {
|
|
||||||
Some(GPXElement::Waypoint(wpt)) => {
|
|
||||||
wpt.sym = Some(e.to_string());
|
|
||||||
}
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Type) => {
|
|
||||||
stack.pop();
|
|
||||||
match stack.last_mut() {
|
|
||||||
Some(GPXElement::Track(trk)) => {
|
|
||||||
trk.info.type_ = Some(e.to_string());
|
|
||||||
}
|
|
||||||
Some(GPXElement::Waypoint(wpt)) => {
|
|
||||||
wpt.type_ = Some(e.to_string());
|
|
||||||
}
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Color) => {
|
|
||||||
stack.pop();
|
|
||||||
match stack.last_mut() {
|
|
||||||
Some(GPXElement::Track(trk)) => {
|
|
||||||
let mut color = "#".to_string();
|
|
||||||
color.push_str(&e);
|
|
||||||
trk.info.color = Some(color);
|
|
||||||
}
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Opacity) => {
|
|
||||||
stack.pop();
|
|
||||||
match stack.last_mut() {
|
|
||||||
Some(GPXElement::Track(trk)) => {
|
|
||||||
trk.info.opacity = e.parse().ok();
|
|
||||||
}
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(GPXElement::Width) => {
|
|
||||||
stack.pop();
|
|
||||||
match stack.last_mut() {
|
|
||||||
Some(GPXElement::Track(trk)) => {
|
|
||||||
trk.info.width = e.parse().ok();
|
|
||||||
}
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_ => (),
|
|
||||||
},
|
|
||||||
Ok(Event::Eof) => break,
|
|
||||||
Err(e) => return Err(e),
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
buf.clear();
|
|
||||||
}
|
|
||||||
Ok(gpx)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
use std::{fs::File, io::Read};
|
|
||||||
|
|
||||||
use super::*;
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_parse_simple() {
|
|
||||||
let mut f = File::open("data/simple.gpx").unwrap();
|
|
||||||
let mut data = String::new();
|
|
||||||
let _ = f.read_to_string(&mut data);
|
|
||||||
let gpx = parse(data.as_bytes()).unwrap();
|
|
||||||
|
|
||||||
assert_eq!(gpx.info.name, "simple");
|
|
||||||
assert!(gpx.info.desc.is_some_and(|d| d == "description"));
|
|
||||||
assert!(gpx.info.author.is_some());
|
|
||||||
let author = gpx.info.author.as_ref().unwrap();
|
|
||||||
assert!(author.name.as_ref().is_some_and(|n| n == "gpx.studio"));
|
|
||||||
assert!(author.link.is_some());
|
|
||||||
let link = author.link.as_ref().unwrap();
|
|
||||||
assert_eq!(link.href, "https://gpx.studio");
|
|
||||||
assert!(link.text.as_ref().is_some_and(|t| t == "link text"));
|
|
||||||
|
|
||||||
assert_eq!(gpx.trk.len(), 1);
|
|
||||||
let trk = &gpx.trk[0];
|
|
||||||
assert!(trk.info.name.as_ref().is_some_and(|n| n == "track name"));
|
|
||||||
assert!(trk.info.cmt.as_ref().is_some_and(|c| c == "track comment"));
|
|
||||||
assert!(
|
|
||||||
trk.info
|
|
||||||
.desc
|
|
||||||
.as_ref()
|
|
||||||
.is_some_and(|d| d == "track description")
|
|
||||||
);
|
|
||||||
assert!(trk.info.src.as_ref().is_some_and(|s| s == "track source"));
|
|
||||||
assert!(trk.info.link.is_some());
|
|
||||||
let link = trk.info.link.as_ref().unwrap();
|
|
||||||
assert_eq!(link.href, "https://gpx.studio");
|
|
||||||
assert!(link.text.as_ref().is_some_and(|t| t == "track link text"));
|
|
||||||
assert!(trk.info.type_.as_ref().is_some_and(|c| c == "Cycling"));
|
|
||||||
|
|
||||||
assert_eq!(trk.trkseg.len(), 1);
|
|
||||||
let trkseg = &trk.trkseg[0];
|
|
||||||
assert_eq!(trkseg.len(), 80);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert_eq!(trkpt.coordinates.lat, 50.790867);
|
|
||||||
assert_eq!(trkpt.coordinates.lng, 4.404968);
|
|
||||||
assert_eq!(trkpt.ele, 109.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_parse_tracks() {
|
|
||||||
let mut f = File::open("data/with_tracks.gpx").unwrap();
|
|
||||||
let mut data = String::new();
|
|
||||||
let _ = f.read_to_string(&mut data);
|
|
||||||
let gpx = parse(data.as_bytes()).unwrap();
|
|
||||||
|
|
||||||
assert_eq!(gpx.trk.len(), 2);
|
|
||||||
let trk = &gpx.trk[0];
|
|
||||||
assert!(trk.info.name.as_ref().is_some_and(|n| n == "track 1"));
|
|
||||||
assert!(trk.info.type_.as_ref().is_some_and(|c| c == "Cycling"));
|
|
||||||
|
|
||||||
assert_eq!(trk.trkseg.len(), 1);
|
|
||||||
let trkseg = &trk.trkseg[0];
|
|
||||||
assert_eq!(trkseg.len(), 49);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert_eq!(trkpt.coordinates.lat, 50.790867);
|
|
||||||
assert_eq!(trkpt.coordinates.lng, 4.404968);
|
|
||||||
assert_eq!(trkpt.ele, 109.0);
|
|
||||||
|
|
||||||
let trk = &gpx.trk[1];
|
|
||||||
assert!(trk.info.name.as_ref().is_some_and(|n| n == "track 2"));
|
|
||||||
assert!(trk.info.type_.as_ref().is_some_and(|c| c == "Cycling"));
|
|
||||||
|
|
||||||
assert_eq!(trk.trkseg.len(), 1);
|
|
||||||
let trkseg = &trk.trkseg[0];
|
|
||||||
assert_eq!(trkseg.len(), 28);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert_eq!(trkpt.coordinates.lat, 50.782212);
|
|
||||||
assert_eq!(trkpt.coordinates.lng, 4.406377);
|
|
||||||
assert_eq!(trkpt.ele, 115.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_parse_segments() {
|
|
||||||
let mut f = File::open("data/with_segments.gpx").unwrap();
|
|
||||||
let mut data = String::new();
|
|
||||||
let _ = f.read_to_string(&mut data);
|
|
||||||
let gpx = parse(data.as_bytes()).unwrap();
|
|
||||||
|
|
||||||
assert_eq!(gpx.trk.len(), 1);
|
|
||||||
let trk = &gpx.trk[0];
|
|
||||||
|
|
||||||
assert_eq!(trk.trkseg.len(), 2);
|
|
||||||
let trkseg = &trk.trkseg[0];
|
|
||||||
assert_eq!(trkseg.len(), 49);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert_eq!(trkpt.coordinates.lat, 50.790867);
|
|
||||||
assert_eq!(trkpt.coordinates.lng, 4.404968);
|
|
||||||
assert_eq!(trkpt.ele, 109.0);
|
|
||||||
|
|
||||||
let trkseg = &trk.trkseg[1];
|
|
||||||
assert_eq!(trkseg.len(), 28);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert_eq!(trkpt.coordinates.lat, 50.782212);
|
|
||||||
assert_eq!(trkpt.coordinates.lng, 4.406377);
|
|
||||||
assert_eq!(trkpt.ele, 115.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_parse_tracks_and_segments() {
|
|
||||||
let mut f = File::open("data/with_tracks_and_segments.gpx").unwrap();
|
|
||||||
let mut data = String::new();
|
|
||||||
let _ = f.read_to_string(&mut data);
|
|
||||||
let gpx = parse(data.as_bytes()).unwrap();
|
|
||||||
|
|
||||||
assert_eq!(gpx.trk.len(), 2);
|
|
||||||
let trk = &gpx.trk[0];
|
|
||||||
|
|
||||||
assert_eq!(trk.trkseg.len(), 2);
|
|
||||||
let trkseg = &trk.trkseg[0];
|
|
||||||
assert_eq!(trkseg.len(), 16);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert_eq!(trkpt.coordinates.lat, 50.790867);
|
|
||||||
assert_eq!(trkpt.coordinates.lng, 4.404968);
|
|
||||||
assert_eq!(trkpt.ele, 109.0);
|
|
||||||
|
|
||||||
let trkseg = &trk.trkseg[1];
|
|
||||||
assert_eq!(trkseg.len(), 34);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert_eq!(trkpt.coordinates.lat, 50.78727108169855);
|
|
||||||
assert_eq!(trkpt.coordinates.lng, 4.406133681127736);
|
|
||||||
assert_eq!(trkpt.ele, 115.0);
|
|
||||||
|
|
||||||
let trk = &gpx.trk[1];
|
|
||||||
|
|
||||||
assert_eq!(trk.trkseg.len(), 2);
|
|
||||||
let trkseg = &trk.trkseg[0];
|
|
||||||
assert_eq!(trkseg.len(), 19);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert_eq!(trkpt.coordinates.lat, 50.782212);
|
|
||||||
assert_eq!(trkpt.coordinates.lng, 4.406377);
|
|
||||||
assert_eq!(trkpt.ele, 115.5);
|
|
||||||
|
|
||||||
let trkseg = &trk.trkseg[1];
|
|
||||||
assert_eq!(trkseg.len(), 10);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert_eq!(trkpt.coordinates.lat, 50.77906316558724);
|
|
||||||
assert_eq!(trkpt.coordinates.lng, 4.412547477922485);
|
|
||||||
assert_eq!(trkpt.ele, 133.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_parse_waypoint() {
|
|
||||||
let mut f = File::open("data/with_waypoint.gpx").unwrap();
|
|
||||||
let mut data = String::new();
|
|
||||||
let _ = f.read_to_string(&mut data);
|
|
||||||
let gpx = parse(data.as_bytes()).unwrap();
|
|
||||||
|
|
||||||
assert_eq!(gpx.wpt.len(), 1);
|
|
||||||
let chunk = &gpx.wpt[0];
|
|
||||||
assert_eq!(chunk.wpt.len(), 1);
|
|
||||||
let wpt = &chunk.wpt[0];
|
|
||||||
assert_eq!(wpt.coordinates.lat, 50.7836710064975);
|
|
||||||
assert_eq!(wpt.coordinates.lng, 4.410764082658738);
|
|
||||||
assert!(wpt.name.as_ref().is_some_and(|n| n == "waypoint name"));
|
|
||||||
assert!(wpt.cmt.as_ref().is_some_and(|c| c == "waypoint comment"));
|
|
||||||
assert!(
|
|
||||||
wpt.desc
|
|
||||||
.as_ref()
|
|
||||||
.is_some_and(|d| d == "waypoint description")
|
|
||||||
);
|
|
||||||
assert!(wpt.link.is_some());
|
|
||||||
let link = wpt.link.as_ref().unwrap();
|
|
||||||
assert_eq!(link.href, "https://gpx.studio");
|
|
||||||
assert!(
|
|
||||||
link.text
|
|
||||||
.as_ref()
|
|
||||||
.is_some_and(|t| t == "waypoint link text")
|
|
||||||
);
|
|
||||||
assert!(wpt.sym.as_ref().is_some_and(|s| s == "Bike Trail"));
|
|
||||||
assert!(wpt.type_.as_ref().is_some_and(|t| t == "Bike Trail"));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_parse_trackpoint_time() {
|
|
||||||
let mut f = File::open("data/with_time.gpx").unwrap();
|
|
||||||
let mut data = String::new();
|
|
||||||
let _ = f.read_to_string(&mut data);
|
|
||||||
let gpx = parse(data.as_bytes()).unwrap();
|
|
||||||
|
|
||||||
assert_eq!(gpx.trk.len(), 1);
|
|
||||||
let trk = &gpx.trk[0];
|
|
||||||
assert_eq!(trk.trkseg.len(), 1);
|
|
||||||
let trkseg = &trk.trkseg[0];
|
|
||||||
assert!(trkseg.len() > 0);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert!(trkpt.time.is_some_and(|t| t == 1704063600000));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_parse_trackpoint_hr() {
|
|
||||||
let mut f = File::open("data/with_hr.gpx").unwrap();
|
|
||||||
let mut data = String::new();
|
|
||||||
let _ = f.read_to_string(&mut data);
|
|
||||||
let gpx = parse(data.as_bytes()).unwrap();
|
|
||||||
|
|
||||||
assert_eq!(gpx.trk.len(), 1);
|
|
||||||
let trk = &gpx.trk[0];
|
|
||||||
assert_eq!(trk.trkseg.len(), 1);
|
|
||||||
let trkseg = &trk.trkseg[0];
|
|
||||||
assert!(trkseg.len() > 0);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert!(trkpt.hr.is_some_and(|h| h == 150));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_parse_trackpoint_cad() {
|
|
||||||
let mut f = File::open("data/with_cad.gpx").unwrap();
|
|
||||||
let mut data = String::new();
|
|
||||||
let _ = f.read_to_string(&mut data);
|
|
||||||
let gpx = parse(data.as_bytes()).unwrap();
|
|
||||||
|
|
||||||
assert_eq!(gpx.trk.len(), 1);
|
|
||||||
let trk = &gpx.trk[0];
|
|
||||||
assert_eq!(trk.trkseg.len(), 1);
|
|
||||||
let trkseg = &trk.trkseg[0];
|
|
||||||
assert!(trkseg.len() > 0);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert!(trkpt.cad.is_some_and(|c| c == 80));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_parse_trackpoint_power_1() {
|
|
||||||
let mut f = File::open("data/with_power_1.gpx").unwrap();
|
|
||||||
let mut data = String::new();
|
|
||||||
let _ = f.read_to_string(&mut data);
|
|
||||||
let gpx = parse(data.as_bytes()).unwrap();
|
|
||||||
|
|
||||||
assert_eq!(gpx.trk.len(), 1);
|
|
||||||
let trk = &gpx.trk[0];
|
|
||||||
assert_eq!(trk.trkseg.len(), 1);
|
|
||||||
let trkseg = &trk.trkseg[0];
|
|
||||||
assert!(trkseg.len() > 0);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert!(trkpt.power.is_some_and(|p| p == 200));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_parse_trackpoint_power_2() {
|
|
||||||
let mut f = File::open("data/with_power_2.gpx").unwrap();
|
|
||||||
let mut data = String::new();
|
|
||||||
let _ = f.read_to_string(&mut data);
|
|
||||||
let gpx = parse(data.as_bytes()).unwrap();
|
|
||||||
|
|
||||||
assert_eq!(gpx.trk.len(), 1);
|
|
||||||
let trk = &gpx.trk[0];
|
|
||||||
assert_eq!(trk.trkseg.len(), 1);
|
|
||||||
let trkseg = &trk.trkseg[0];
|
|
||||||
assert!(trkseg.len() > 0);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert!(trkpt.power.is_some_and(|p| p == 200));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_parse_trackpoint_atemp() {
|
|
||||||
let mut f = File::open("data/with_temp.gpx").unwrap();
|
|
||||||
let mut data = String::new();
|
|
||||||
let _ = f.read_to_string(&mut data);
|
|
||||||
let gpx = parse(data.as_bytes()).unwrap();
|
|
||||||
|
|
||||||
assert_eq!(gpx.trk.len(), 1);
|
|
||||||
let trk = &gpx.trk[0];
|
|
||||||
assert_eq!(trk.trkseg.len(), 1);
|
|
||||||
let trkseg = &trk.trkseg[0];
|
|
||||||
assert!(trkseg.len() > 0);
|
|
||||||
let trkpt = &trkseg[0];
|
|
||||||
assert!(trkpt.atemp.is_some_and(|t| t == 21));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_parse_track_style() {
|
|
||||||
let mut f = File::open("data/with_style.gpx").unwrap();
|
|
||||||
let mut data = String::new();
|
|
||||||
let _ = f.read_to_string(&mut data);
|
|
||||||
let gpx = parse(data.as_bytes()).unwrap();
|
|
||||||
|
|
||||||
assert_eq!(gpx.trk.len(), 1);
|
|
||||||
let trk = &gpx.trk[0];
|
|
||||||
assert_eq!(trk.trkseg.len(), 1);
|
|
||||||
assert!(trk.info.color.as_ref().is_some_and(|c| c == "#2d3ee9"));
|
|
||||||
assert!(trk.info.opacity.is_some_and(|o| o == 0.5));
|
|
||||||
assert!(trk.info.width.is_some_and(|w| w == 6.0));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
mod action;
|
|
||||||
mod algorithm;
|
|
||||||
mod engine;
|
|
||||||
mod gpx;
|
|
||||||
mod io;
|
|
||||||
mod selection;
|
|
||||||
mod stack;
|
|
||||||
mod statistics;
|
|
||||||
mod utils;
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
use std::collections::HashSet;
|
|
||||||
|
|
||||||
use uuid::Uuid;
|
|
||||||
|
|
||||||
#[derive(Debug)]
|
|
||||||
pub struct FileSelection {
|
|
||||||
files: HashSet<Uuid>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug)]
|
|
||||||
pub struct TrackSelection {
|
|
||||||
file: Uuid,
|
|
||||||
trk: HashSet<Uuid>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug)]
|
|
||||||
pub struct TrackSegmentSelection {
|
|
||||||
file: Uuid,
|
|
||||||
trk: Uuid,
|
|
||||||
trkseg: HashSet<Uuid>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug)]
|
|
||||||
pub struct WaypointSelection {
|
|
||||||
file: Uuid,
|
|
||||||
wpt: HashSet<Uuid>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
|
||||||
pub enum Selection {
|
|
||||||
#[default]
|
|
||||||
Empty,
|
|
||||||
File(FileSelection),
|
|
||||||
Track(TrackSelection),
|
|
||||||
TrackSegment(TrackSegmentSelection),
|
|
||||||
Waypoints,
|
|
||||||
Waypoint(WaypointSelection),
|
|
||||||
}
|
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
use std::{collections::HashMap, rc::Rc};
|
|
||||||
|
|
||||||
use uuid::Uuid;
|
|
||||||
|
|
||||||
use crate::gpx::GPXFile;
|
|
||||||
|
|
||||||
#[derive(Default)]
|
|
||||||
pub struct Stack {
|
|
||||||
entries: Vec<StackEntry>,
|
|
||||||
index: Option<usize>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Stack {
|
|
||||||
pub fn current(&self) -> Option<&StackEntry> {
|
|
||||||
match self.index {
|
|
||||||
Some(i) => Some(&self.entries[i]),
|
|
||||||
None => None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn create_and_push_next<F>(&mut self, f: F)
|
|
||||||
where
|
|
||||||
F: FnOnce(&mut StackEntry) -> bool,
|
|
||||||
{
|
|
||||||
let mut next = self.current().map_or_default(|c| c.clone());
|
|
||||||
if f(&mut next) {
|
|
||||||
self.push(next);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// pub fn update(&mut self, files: &[Rc<GPXFile>], ids: &[GPXFileId]) {
|
|
||||||
// let mut next = match self.current() {
|
|
||||||
// Some(current) => current.clone(),
|
|
||||||
// None => StackEntry::default(),
|
|
||||||
// };
|
|
||||||
// for (file, id) in files.iter().zip(ids) {
|
|
||||||
// next.insert(*id, file.clone());
|
|
||||||
// }
|
|
||||||
// self.push(next);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// pub fn delete(&mut self, files: &[GPXFileId]) {
|
|
||||||
// if let Some(current) = self.current() {
|
|
||||||
// let mut next = current.clone();
|
|
||||||
// for file in files {
|
|
||||||
// next.remove(file);
|
|
||||||
// }
|
|
||||||
// self.push(next);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
pub fn can_undo(&self) -> bool {
|
|
||||||
self.index.is_some()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn can_redo(&self) -> bool {
|
|
||||||
match self.index {
|
|
||||||
Some(i) => i + 1 < self.entries.len(),
|
|
||||||
None => !self.entries.is_empty(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn undo(&mut self) {
|
|
||||||
if let Some(i) = self.index {
|
|
||||||
if i == 0 {
|
|
||||||
self.index = None;
|
|
||||||
} else {
|
|
||||||
self.index = Some(i - 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn redo(&mut self) {
|
|
||||||
match self.index {
|
|
||||||
Some(i) => {
|
|
||||||
if i + 1 < self.entries.len() {
|
|
||||||
self.index = Some(i + 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
None => {
|
|
||||||
if !self.entries.is_empty() {
|
|
||||||
self.index = Some(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn push(&mut self, entry: StackEntry) {
|
|
||||||
if let Some(i) = self.index {
|
|
||||||
if i + 1 < self.entries.len() {
|
|
||||||
self.entries.truncate(i + 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
self.entries.push(entry);
|
|
||||||
self.index = Some(self.entries.len() - 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub type StackEntry = HashMap<Uuid, Rc<GPXFile>>;
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
use crate::statistics::{GPXStatistics, GlobalStatistics};
|
|
||||||
|
|
||||||
pub struct Buffer {
|
|
||||||
pub total_distance: Vec<f64>,
|
|
||||||
pub total_time: Vec<i64>,
|
|
||||||
pub moving_time: Vec<i64>,
|
|
||||||
pub speed: Vec<f64>,
|
|
||||||
pub elevation_gain: Vec<f64>,
|
|
||||||
pub elevation_loss: Vec<f64>,
|
|
||||||
pub slope: Vec<f64>,
|
|
||||||
pub slope_segment_slope: Vec<f64>,
|
|
||||||
pub slope_segment_distance: Vec<f64>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Buffer {
|
|
||||||
pub fn update(&mut self, stats: &[&GPXStatistics]) {
|
|
||||||
self.total_distance.clear();
|
|
||||||
self.total_time.clear();
|
|
||||||
self.moving_time.clear();
|
|
||||||
self.speed.clear();
|
|
||||||
self.elevation_gain.clear();
|
|
||||||
self.elevation_loss.clear();
|
|
||||||
self.slope.clear();
|
|
||||||
self.slope_segment_slope.clear();
|
|
||||||
self.slope_segment_distance.clear();
|
|
||||||
|
|
||||||
let mut cumul_stats = GlobalStatistics::default();
|
|
||||||
for stats in stats {
|
|
||||||
// add stats
|
|
||||||
// merge global ones into cumul
|
|
||||||
cumul_stats.merge(&stats.global);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
mod buffer;
|
|
||||||
mod statistics;
|
|
||||||
|
|
||||||
pub use buffer::*;
|
|
||||||
pub use statistics::*;
|
|
||||||
@@ -1,331 +0,0 @@
|
|||||||
use std::ops::Add;
|
|
||||||
|
|
||||||
use crate::{
|
|
||||||
algorithm::ramer_douglas_peucker,
|
|
||||||
for_each_window,
|
|
||||||
gpx::{LngLat, LngLatBounds, TrackSegment, Trackpoint},
|
|
||||||
utils::{distance, slope, speed},
|
|
||||||
};
|
|
||||||
|
|
||||||
#[derive(Default, Debug)]
|
|
||||||
pub struct GPXStatistics {
|
|
||||||
pub global: GlobalStatistics,
|
|
||||||
pub local: Vec<TrackpointStatistics>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl GPXStatistics {
|
|
||||||
pub fn total_time(&self) -> Option<i64> {
|
|
||||||
self.global
|
|
||||||
.start_time
|
|
||||||
.zip(self.global.end_time)
|
|
||||||
.map(|(t1, t2)| t2 - t1)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn total_speed(&self) -> Option<f64> {
|
|
||||||
self.total_time()
|
|
||||||
.map(|t| speed(self.global.total_distance, t))
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn moving_speed(&self) -> Option<f64> {
|
|
||||||
self.global
|
|
||||||
.moving_distance
|
|
||||||
.zip(self.global.moving_time)
|
|
||||||
.map(|(d, t)| speed(d, t))
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn compute(trkseg: &TrackSegment) -> Self {
|
|
||||||
let mut stats = Self::default();
|
|
||||||
if trkseg.len() == 0 {
|
|
||||||
return stats;
|
|
||||||
}
|
|
||||||
|
|
||||||
let mut prev = &trkseg[0];
|
|
||||||
for cur in trkseg.iter() {
|
|
||||||
stats.accumulate(prev, cur);
|
|
||||||
prev = cur;
|
|
||||||
}
|
|
||||||
|
|
||||||
stats.compute_smoothed_speed(trkseg);
|
|
||||||
stats.compute_smoothed_elevation_gain(trkseg);
|
|
||||||
|
|
||||||
stats
|
|
||||||
}
|
|
||||||
|
|
||||||
fn accumulate(&mut self, prev: &Trackpoint, cur: &Trackpoint) {
|
|
||||||
self.accumulate_distance_and_time(prev, cur);
|
|
||||||
self.update_time_bounds(cur.time);
|
|
||||||
self.update_bounds(cur.coordinates);
|
|
||||||
self.local
|
|
||||||
.push(TrackpointStatistics::from_partial_stats(&self));
|
|
||||||
}
|
|
||||||
|
|
||||||
fn accumulate_distance_and_time(&mut self, prev: &Trackpoint, cur: &Trackpoint) {
|
|
||||||
let dist = distance(prev.coordinates, cur.coordinates);
|
|
||||||
let time = cur.time_diff(prev);
|
|
||||||
|
|
||||||
self.global.total_distance += dist;
|
|
||||||
|
|
||||||
if let Some(time) = time {
|
|
||||||
let speed = speed(dist, time);
|
|
||||||
if speed >= 0.5 && speed <= 1500.0 {
|
|
||||||
self.global.moving_distance = self
|
|
||||||
.global
|
|
||||||
.moving_distance
|
|
||||||
.map_or(Some(dist), |d| Some(d + dist));
|
|
||||||
self.global.moving_time = self
|
|
||||||
.global
|
|
||||||
.moving_time
|
|
||||||
.map_or(Some(time), |t| Some(t + time));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn update_time_bounds(&mut self, time: Option<i64>) {
|
|
||||||
if let Some(time) = time {
|
|
||||||
if self.global.start_time.is_none() {
|
|
||||||
self.global.start_time = Some(time);
|
|
||||||
}
|
|
||||||
self.global.end_time = Some(time);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn update_bounds(&mut self, coordinates: LngLat) {
|
|
||||||
self.global.bounds.extend(coordinates);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn compute_smoothed_speed(&mut self, trkseg: &TrackSegment) {
|
|
||||||
for_each_window!(
|
|
||||||
trkseg,
|
|
||||||
trkseg.first_index(),
|
|
||||||
trkseg.last_index(),
|
|
||||||
Some(10000),
|
|
||||||
|i, j| trkseg[i].time_diff(&trkseg[j]),
|
|
||||||
|i, left, right| {
|
|
||||||
let i = trkseg.to_flat_index(i);
|
|
||||||
let left = trkseg.to_flat_index(left);
|
|
||||||
let right = trkseg.to_flat_index(right);
|
|
||||||
self.local[i].speed = trkseg[right].time_diff(&trkseg[left]).map(|t| {
|
|
||||||
speed(
|
|
||||||
self.local[right].total_distance - self.local[left].total_distance,
|
|
||||||
t,
|
|
||||||
)
|
|
||||||
});
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn compute_smoothed_elevation_gain(&mut self, trkseg: &TrackSegment) {
|
|
||||||
let simplified = ramer_douglas_peucker(
|
|
||||||
trkseg,
|
|
||||||
&|i, j, k| {
|
|
||||||
let x1 = self.local[trkseg.to_flat_index(i)].total_distance * 1000.0;
|
|
||||||
let x2 = self.local[trkseg.to_flat_index(j)].total_distance * 1000.0;
|
|
||||||
let x3 = self.local[trkseg.to_flat_index(k)].total_distance * 1000.0;
|
|
||||||
let y1 = trkseg[i].ele;
|
|
||||||
let y2 = trkseg[j].ele;
|
|
||||||
let y3 = trkseg[k].ele;
|
|
||||||
|
|
||||||
let dist = ((y2 - y1).powi(2) + (x2 - x1).powi(2)).sqrt();
|
|
||||||
if dist == 0.0 {
|
|
||||||
((x3 - x1).powi(2) + (y3 - y1).powi(2)).sqrt()
|
|
||||||
} else {
|
|
||||||
((y2 - y1) * x3 - (x2 - x1) * y3 + x2 * y1 - y2 * x1).abs() / dist
|
|
||||||
}
|
|
||||||
},
|
|
||||||
20.0,
|
|
||||||
);
|
|
||||||
|
|
||||||
for i in 0..(simplified.len() - 1) {
|
|
||||||
let start = simplified[i];
|
|
||||||
let end = simplified[i + 1];
|
|
||||||
let last = i + 1 == simplified.len() - 1;
|
|
||||||
|
|
||||||
let mut cumul_ele = 0.0;
|
|
||||||
let mut current_left = start;
|
|
||||||
let mut current_right = Some(start);
|
|
||||||
let mut prev_smoothed_ele = trkseg[start].ele;
|
|
||||||
|
|
||||||
for_each_window!(
|
|
||||||
trkseg,
|
|
||||||
Some(start),
|
|
||||||
Some(end),
|
|
||||||
0.1,
|
|
||||||
|i, j| {
|
|
||||||
let i = trkseg.to_flat_index(i);
|
|
||||||
let j = trkseg.to_flat_index(j);
|
|
||||||
self.local[j].total_distance - self.local[i].total_distance
|
|
||||||
},
|
|
||||||
|i, left, right| {
|
|
||||||
while current_left != left {
|
|
||||||
cumul_ele -= trkseg[current_left].ele;
|
|
||||||
current_left = trkseg.next_index(Some(current_left)).unwrap();
|
|
||||||
}
|
|
||||||
while let Some(current) = current_right {
|
|
||||||
if current > right {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
cumul_ele += trkseg[current].ele;
|
|
||||||
current_right = trkseg.next_index(current_right);
|
|
||||||
}
|
|
||||||
|
|
||||||
let flat_i = trkseg.to_flat_index(i);
|
|
||||||
let flat_left = trkseg.to_flat_index(left);
|
|
||||||
let flat_right = trkseg.to_flat_index(right);
|
|
||||||
|
|
||||||
let smoothed_ele: f64 = if i == start || i == end {
|
|
||||||
trkseg[i].ele
|
|
||||||
} else {
|
|
||||||
cumul_ele / (flat_right - flat_left + 1) as f64
|
|
||||||
};
|
|
||||||
|
|
||||||
let delta = smoothed_ele - prev_smoothed_ele;
|
|
||||||
if delta > 0.0 {
|
|
||||||
self.global.elevation_gain += delta;
|
|
||||||
} else if delta < 0.0 {
|
|
||||||
self.global.elevation_loss -= delta;
|
|
||||||
}
|
|
||||||
|
|
||||||
if i < end || last {
|
|
||||||
self.local[flat_i].elevation_gain = self.global.elevation_gain;
|
|
||||||
self.local[flat_i].elevation_loss = self.global.elevation_loss;
|
|
||||||
}
|
|
||||||
|
|
||||||
prev_smoothed_ele = smoothed_ele;
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
let flat_start = trkseg.to_flat_index(start);
|
|
||||||
let flat_end = trkseg.to_flat_index(end);
|
|
||||||
|
|
||||||
let segment_dist =
|
|
||||||
self.local[flat_end].total_distance - self.local[flat_start].total_distance;
|
|
||||||
let segment_ele = trkseg[end].ele - trkseg[start].ele;
|
|
||||||
let segment_slope = slope(segment_ele, segment_dist);
|
|
||||||
for k in flat_start..(flat_end + last as usize) {
|
|
||||||
self.local[k].slope_segment = SlopeSegment {
|
|
||||||
slope: segment_slope,
|
|
||||||
distance: segment_dist,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for_each_window!(
|
|
||||||
trkseg,
|
|
||||||
trkseg.first_index(),
|
|
||||||
trkseg.last_index(),
|
|
||||||
0.05,
|
|
||||||
|i, j| {
|
|
||||||
let i = trkseg.to_flat_index(i);
|
|
||||||
let j = trkseg.to_flat_index(j);
|
|
||||||
self.local[j].total_distance - self.local[i].total_distance
|
|
||||||
},
|
|
||||||
|i, left, right| {
|
|
||||||
let flat_i = trkseg.to_flat_index(i);
|
|
||||||
let flat_left = trkseg.to_flat_index(left);
|
|
||||||
let flat_right = trkseg.to_flat_index(right);
|
|
||||||
let dist =
|
|
||||||
self.local[flat_right].total_distance - self.local[flat_left].total_distance;
|
|
||||||
let ele = trkseg[right].ele - trkseg[left].ele;
|
|
||||||
self.local[flat_i].slope = slope(ele, dist);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Default, Debug)]
|
|
||||||
pub struct GlobalStatistics {
|
|
||||||
pub total_distance: f64,
|
|
||||||
pub moving_distance: Option<f64>,
|
|
||||||
pub moving_time: Option<i64>,
|
|
||||||
pub elevation_gain: f64,
|
|
||||||
pub elevation_loss: f64,
|
|
||||||
pub start_time: Option<i64>,
|
|
||||||
pub end_time: Option<i64>,
|
|
||||||
pub bounds: LngLatBounds,
|
|
||||||
}
|
|
||||||
|
|
||||||
fn sum_options<T>(a: Option<T>, b: Option<T>) -> Option<T>
|
|
||||||
where
|
|
||||||
T: Add<Output = T>,
|
|
||||||
{
|
|
||||||
match (a, b) {
|
|
||||||
(Some(a), Some(b)) => Some(a + b),
|
|
||||||
(Some(a), None) => Some(a),
|
|
||||||
(None, Some(b)) => Some(b),
|
|
||||||
(None, None) => None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl GlobalStatistics {
|
|
||||||
pub fn merge(&mut self, other: &GlobalStatistics) {
|
|
||||||
self.total_distance += other.total_distance;
|
|
||||||
self.moving_distance = sum_options(self.moving_distance, other.moving_distance);
|
|
||||||
self.moving_time = sum_options(self.moving_time, other.moving_time);
|
|
||||||
self.elevation_gain += other.elevation_gain;
|
|
||||||
self.elevation_loss += other.elevation_loss;
|
|
||||||
self.bounds.merge(&other.bounds);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Default, Debug)]
|
|
||||||
pub struct TrackpointStatistics {
|
|
||||||
pub total_distance: f64,
|
|
||||||
pub moving_distance: Option<f64>,
|
|
||||||
pub total_time: Option<i64>,
|
|
||||||
pub moving_time: Option<i64>,
|
|
||||||
pub speed: Option<f64>,
|
|
||||||
pub elevation_gain: f64,
|
|
||||||
pub elevation_loss: f64,
|
|
||||||
pub slope: f64,
|
|
||||||
pub slope_segment: SlopeSegment,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl TrackpointStatistics {
|
|
||||||
fn from_partial_stats(stats: &GPXStatistics) -> Self {
|
|
||||||
Self {
|
|
||||||
total_distance: stats.global.total_distance,
|
|
||||||
moving_distance: stats.global.moving_distance,
|
|
||||||
total_time: stats.total_time(),
|
|
||||||
moving_time: stats.global.moving_time,
|
|
||||||
// stats below are computed later
|
|
||||||
speed: None,
|
|
||||||
elevation_gain: Default::default(),
|
|
||||||
elevation_loss: Default::default(),
|
|
||||||
slope: Default::default(),
|
|
||||||
slope_segment: Default::default(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Default, Debug)]
|
|
||||||
pub struct SlopeSegment {
|
|
||||||
pub slope: f64,
|
|
||||||
pub distance: f64,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
use std::{fs::File, io::Read};
|
|
||||||
|
|
||||||
use crate::io::parse;
|
|
||||||
|
|
||||||
use super::*;
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_compute_smoothed_speed() {
|
|
||||||
let mut f = File::open("data/with_time.gpx").unwrap();
|
|
||||||
let mut data = String::new();
|
|
||||||
let _ = f.read_to_string(&mut data);
|
|
||||||
let gpx = parse(data.as_bytes()).unwrap();
|
|
||||||
|
|
||||||
let trkseg = &gpx.trk[0].trkseg[0];
|
|
||||||
let stats = GPXStatistics::compute(trkseg);
|
|
||||||
assert_eq!(stats.local.len(), trkseg.len());
|
|
||||||
for trkpt_stats in stats.local.iter() {
|
|
||||||
assert!(trkpt_stats.speed.is_some());
|
|
||||||
let speed = trkpt_stats.speed.unwrap();
|
|
||||||
assert_ne!(speed, f64::NAN);
|
|
||||||
assert!((speed - 20.0).abs() < 0.1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,111 +0,0 @@
|
|||||||
use std::f64::consts::PI;
|
|
||||||
|
|
||||||
use crate::gpx::LngLat;
|
|
||||||
|
|
||||||
static TO_RADIANS: f64 = PI / 180.0;
|
|
||||||
static EARTH_RADIUS: f64 = 6371.0088;
|
|
||||||
|
|
||||||
/// Computes the distance in kilometers between two coordinates using the Haversine formula
|
|
||||||
pub fn distance(p1: LngLat, p2: LngLat) -> f64 {
|
|
||||||
let lat1 = p1.lat * TO_RADIANS;
|
|
||||||
let lat2 = p2.lat * TO_RADIANS;
|
|
||||||
let delta_lat = lat2 - lat1;
|
|
||||||
let delta_lng = (p2.lng - p1.lng) * TO_RADIANS;
|
|
||||||
|
|
||||||
let a =
|
|
||||||
(delta_lat / 2.0).sin().powi(2) + lat1.cos() * lat2.cos() * (delta_lng / 2.0).sin().powi(2);
|
|
||||||
let c = 2.0 * a.min(1.0).sqrt().asin();
|
|
||||||
EARTH_RADIUS * c
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Computes the speed for a given distance in kilometers and a time in milliseconds
|
|
||||||
pub fn speed(distance: f64, time: i64) -> f64 {
|
|
||||||
distance / (time as f64 / 3600_000.0)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn slope(ele: f64, distance: f64) -> f64 {
|
|
||||||
if distance == 0.0 {
|
|
||||||
100.0
|
|
||||||
} else {
|
|
||||||
0.1 * ele / distance
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static METERS_PER_LATITUDE_DEGREE: f64 = 111320.0;
|
|
||||||
|
|
||||||
fn get_meters_per_longitude_degree(latitude: f64) -> f64 {
|
|
||||||
((latitude * PI) / 180.0).cos() * METERS_PER_LATITUDE_DEGREE
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calculates the point on the line segment defined by p1 and p2
|
|
||||||
// that is closest to the third point, p3.
|
|
||||||
// Uses simple planar geometry (ignores earth curvature).
|
|
||||||
fn projected(p1: LngLat, p2: LngLat, coord3: LngLat) -> LngLat {
|
|
||||||
// Convert to meters using approximate scaling
|
|
||||||
let meters_per_longitude_degree = get_meters_per_longitude_degree(p1.lat);
|
|
||||||
|
|
||||||
let x1 = p1.lng * meters_per_longitude_degree;
|
|
||||||
let y1 = p1.lat * METERS_PER_LATITUDE_DEGREE;
|
|
||||||
let x2 = p2.lng * meters_per_longitude_degree;
|
|
||||||
let y2 = p2.lat * METERS_PER_LATITUDE_DEGREE;
|
|
||||||
let x3 = coord3.lng * meters_per_longitude_degree;
|
|
||||||
let y3 = coord3.lat * METERS_PER_LATITUDE_DEGREE;
|
|
||||||
|
|
||||||
let dx = x2 - x1;
|
|
||||||
let dy = y2 - y1;
|
|
||||||
let segment_length_squared = dx * dx + dy * dy;
|
|
||||||
|
|
||||||
if segment_length_squared == 0.0 {
|
|
||||||
// p1 and p2 are the same point
|
|
||||||
p1
|
|
||||||
} else {
|
|
||||||
// Project p3 onto the line defined by p1-p2
|
|
||||||
let t =
|
|
||||||
0.0_f64.max(1.0_f64.min(((x3 - x1) * dx + (y3 - y1) * dy) / segment_length_squared));
|
|
||||||
|
|
||||||
// Find the closest point on the segment
|
|
||||||
let proj_x = x1 + t * dx;
|
|
||||||
let proj_y = y1 + t * dy;
|
|
||||||
|
|
||||||
// Convert back to degrees
|
|
||||||
LngLat {
|
|
||||||
lng: proj_x / meters_per_longitude_degree,
|
|
||||||
lat: proj_y / METERS_PER_LATITUDE_DEGREE,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Calculates the perpendicular distance in meters
|
|
||||||
/// between a line segment (defined by p1 and p2) and a third point, p3.
|
|
||||||
/// Uses simple planar geometry (ignores earth curvature).
|
|
||||||
fn crossarc(p1: LngLat, p2: LngLat, p3: LngLat) -> f64 {
|
|
||||||
// Convert to meters using approximate scaling
|
|
||||||
let meters_per_longitude_degree = get_meters_per_longitude_degree(p1.lat);
|
|
||||||
|
|
||||||
let x1 = p1.lng * meters_per_longitude_degree;
|
|
||||||
let y1 = p1.lat * METERS_PER_LATITUDE_DEGREE;
|
|
||||||
let x2 = p2.lng * meters_per_longitude_degree;
|
|
||||||
let y2 = p2.lat * METERS_PER_LATITUDE_DEGREE;
|
|
||||||
let x3 = p3.lng * meters_per_longitude_degree;
|
|
||||||
let y3 = p3.lat * METERS_PER_LATITUDE_DEGREE;
|
|
||||||
|
|
||||||
let dx = x2 - x1;
|
|
||||||
let dy = y2 - y1;
|
|
||||||
let segment_length_squared = dx * dx + dy * dy;
|
|
||||||
|
|
||||||
if segment_length_squared == 0.0 {
|
|
||||||
// p1 and p2 are the same point
|
|
||||||
((x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1)).sqrt()
|
|
||||||
} else {
|
|
||||||
// Project p3 onto the line defined by p1 - p2
|
|
||||||
let t =
|
|
||||||
0.0_f64.max(1.0_f64.min(((x3 - x1) * dx + (y3 - y1) * dy) / segment_length_squared));
|
|
||||||
|
|
||||||
// Find the closest point on the segment
|
|
||||||
let proj_x = x1 + t * dx;
|
|
||||||
let proj_y = y1 + t * dy;
|
|
||||||
|
|
||||||
// Return distance from p3 to the projected point
|
|
||||||
((x3 - proj_x) * (x3 - proj_x) + (y3 - proj_y) * (y3 - proj_y)).sqrt()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -17,7 +17,6 @@
|
|||||||
"dexie": "^4.0.11",
|
"dexie": "^4.0.11",
|
||||||
"file-saver": "^2.0.5",
|
"file-saver": "^2.0.5",
|
||||||
"gpx": "file:../gpx",
|
"gpx": "file:../gpx",
|
||||||
"gpx-rs": "file:../gpx-rs/pkg",
|
|
||||||
"immer": "^10.1.1",
|
"immer": "^10.1.1",
|
||||||
"jszip": "^3.10.1",
|
"jszip": "^3.10.1",
|
||||||
"mapillary-js": "^4.1.2",
|
"mapillary-js": "^4.1.2",
|
||||||
@@ -71,8 +70,7 @@
|
|||||||
"tw-animate-css": "^1.4.0",
|
"tw-animate-css": "^1.4.0",
|
||||||
"typescript": "^5.8.3",
|
"typescript": "^5.8.3",
|
||||||
"vaul-svelte": "^1.0.0-next.7",
|
"vaul-svelte": "^1.0.0-next.7",
|
||||||
"vite": "^6.3.5",
|
"vite": "^6.3.5"
|
||||||
"vite-plugin-wasm": "^3.6.0"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"../gpx": {
|
"../gpx": {
|
||||||
@@ -91,10 +89,6 @@
|
|||||||
"typescript": "^5.6.2"
|
"typescript": "^5.6.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"../gpx-rs/pkg": {
|
|
||||||
"name": "gpx-rs",
|
|
||||||
"version": "0.1.0"
|
|
||||||
},
|
|
||||||
"../gpx/node_modules/@cspotcode/source-map-support": {
|
"../gpx/node_modules/@cspotcode/source-map-support": {
|
||||||
"version": "0.8.1",
|
"version": "0.8.1",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
@@ -5498,10 +5492,6 @@
|
|||||||
"resolved": "../gpx",
|
"resolved": "../gpx",
|
||||||
"link": true
|
"link": true
|
||||||
},
|
},
|
||||||
"node_modules/gpx-rs": {
|
|
||||||
"resolved": "../gpx-rs/pkg",
|
|
||||||
"link": true
|
|
||||||
},
|
|
||||||
"node_modules/graceful-fs": {
|
"node_modules/graceful-fs": {
|
||||||
"version": "4.2.11",
|
"version": "4.2.11",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
@@ -7726,16 +7716,6 @@
|
|||||||
"node": ">=18.0.0"
|
"node": ">=18.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vite-plugin-wasm": {
|
|
||||||
"version": "3.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/vite-plugin-wasm/-/vite-plugin-wasm-3.6.0.tgz",
|
|
||||||
"integrity": "sha512-mL/QPziiIA4RAA6DkaZZzOstdwbW5jO4Vz7Zenj0wieKWBlNvIvX5L5ljum9lcUX0ShNfBgCNLKTjNkRVVqcsw==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"peerDependencies": {
|
|
||||||
"vite": "^2 || ^3 || ^4 || ^5 || ^6 || ^7 || ^8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/vite/node_modules/@esbuild/aix-ppc64": {
|
"node_modules/vite/node_modules/@esbuild/aix-ppc64": {
|
||||||
"version": "0.25.12",
|
"version": "0.25.12",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
|
||||||
|
|||||||
@@ -59,8 +59,7 @@
|
|||||||
"tw-animate-css": "^1.4.0",
|
"tw-animate-css": "^1.4.0",
|
||||||
"typescript": "^5.8.3",
|
"typescript": "^5.8.3",
|
||||||
"vaul-svelte": "^1.0.0-next.7",
|
"vaul-svelte": "^1.0.0-next.7",
|
||||||
"vite": "^6.3.5",
|
"vite": "^6.3.5"
|
||||||
"vite-plugin-wasm": "^3.6.0"
|
|
||||||
},
|
},
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -73,7 +72,6 @@
|
|||||||
"dexie": "^4.0.11",
|
"dexie": "^4.0.11",
|
||||||
"file-saver": "^2.0.5",
|
"file-saver": "^2.0.5",
|
||||||
"gpx": "file:../gpx",
|
"gpx": "file:../gpx",
|
||||||
"gpx-rs": "file:../gpx-rs/pkg",
|
|
||||||
"immer": "^10.1.1",
|
"immer": "^10.1.1",
|
||||||
"jszip": "^3.10.1",
|
"jszip": "^3.10.1",
|
||||||
"mapillary-js": "^4.1.2",
|
"mapillary-js": "^4.1.2",
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 313 KiB After Width: | Height: | Size: 339 KiB |
|
Before Width: | Height: | Size: 729 KiB |
|
Before Width: | Height: | Size: 308 KiB |
|
Before Width: | Height: | Size: 525 KiB After Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 710 KiB After Width: | Height: | Size: 1.9 MiB |
|
After Width: | Height: | Size: 2.8 MiB |
|
After Width: | Height: | Size: 348 KiB |
@@ -31,10 +31,10 @@ import bikerouterGravel from './custom/bikerouter-gravel.json';
|
|||||||
export const maptilerKeyPlaceHolder = 'MAPTILER_KEY';
|
export const maptilerKeyPlaceHolder = 'MAPTILER_KEY';
|
||||||
|
|
||||||
export const basemaps: { [key: string]: string | StyleSpecification } = {
|
export const basemaps: { [key: string]: string | StyleSpecification } = {
|
||||||
libertyTopo: 'https://styles.gpx.studio/liberty-topo.json',
|
maptilerStreets: `https://api.maptiler.com/maps/streets-v4/style.json?key=${maptilerKeyPlaceHolder}`,
|
||||||
libertySatellite: 'https://styles.gpx.studio/liberty-satellite.json',
|
maptilerTopo: `https://api.maptiler.com/maps/topo-v4/style.json?key=${maptilerKeyPlaceHolder}`,
|
||||||
osm: 'https://styles.gpx.studio/osm.json',
|
maptilerOutdoors: `https://api.maptiler.com/maps/outdoor-v4/style.json?key=${maptilerKeyPlaceHolder}`,
|
||||||
osmTopo: 'https://styles.gpx.studio/osm-topo.json',
|
maptilerSatellite: `https://api.maptiler.com/maps/hybrid-v4/style.json?key=${maptilerKeyPlaceHolder}`,
|
||||||
esriSatellite: {
|
esriSatellite: {
|
||||||
version: 8,
|
version: 8,
|
||||||
sources: {
|
sources: {
|
||||||
@@ -799,10 +799,10 @@ export type LayerTreeType = { [key: string]: LayerTreeType | boolean };
|
|||||||
export const basemapTree: LayerTreeType = {
|
export const basemapTree: LayerTreeType = {
|
||||||
basemaps: {
|
basemaps: {
|
||||||
world: {
|
world: {
|
||||||
libertyTopo: true,
|
maptilerStreets: true,
|
||||||
libertySatellite: true,
|
maptilerTopo: true,
|
||||||
osm: true,
|
maptilerOutdoors: true,
|
||||||
osmTopo: true,
|
maptilerSatellite: true,
|
||||||
esriSatellite: true,
|
esriSatellite: true,
|
||||||
openStreetMap: true,
|
openStreetMap: true,
|
||||||
openTopoMap: true,
|
openTopoMap: true,
|
||||||
@@ -936,7 +936,7 @@ export const overpassTree: LayerTreeType = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Default basemap used
|
// Default basemap used
|
||||||
export const defaultBasemap = 'libertyTopo';
|
export const defaultBasemap = 'maptilerStreets';
|
||||||
|
|
||||||
// Default overlays used (none)
|
// Default overlays used (none)
|
||||||
export const defaultOverlays: LayerTreeType = {
|
export const defaultOverlays: LayerTreeType = {
|
||||||
@@ -1025,10 +1025,10 @@ export const defaultOverpassQueries: LayerTreeType = {
|
|||||||
export const defaultBasemapTree: LayerTreeType = {
|
export const defaultBasemapTree: LayerTreeType = {
|
||||||
basemaps: {
|
basemaps: {
|
||||||
world: {
|
world: {
|
||||||
libertyTopo: true,
|
maptilerStreets: true,
|
||||||
libertySatellite: true,
|
maptilerTopo: true,
|
||||||
osm: true,
|
maptilerOutdoors: true,
|
||||||
osmTopo: true,
|
maptilerSatellite: true,
|
||||||
esriSatellite: false,
|
esriSatellite: false,
|
||||||
openStreetMap: true,
|
openStreetMap: true,
|
||||||
openTopoMap: true,
|
openTopoMap: true,
|
||||||
@@ -1449,7 +1449,7 @@ export const overpassQueryData: Record<string, OverpassQueryData> = {
|
|||||||
color: 'DarkBlue',
|
color: 'DarkBlue',
|
||||||
},
|
},
|
||||||
tags: {
|
tags: {
|
||||||
railway: ['station', 'halt'],
|
railway: 'station',
|
||||||
},
|
},
|
||||||
symbol: 'Ground Transportation',
|
symbol: 'Ground Transportation',
|
||||||
},
|
},
|
||||||
@@ -1487,11 +1487,14 @@ export const overpassQueryData: Record<string, OverpassQueryData> = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const terrainSources: { [key: string]: RasterDEMSourceSpecification } = {
|
export const terrainSources: { [key: string]: RasterDEMSourceSpecification } = {
|
||||||
|
'maptiler-dem': {
|
||||||
|
type: 'raster-dem',
|
||||||
|
url: `https://api.maptiler.com/tiles/terrain-rgb-v2/tiles.json?key=${maptilerKeyPlaceHolder}`,
|
||||||
|
},
|
||||||
mapterhorn: {
|
mapterhorn: {
|
||||||
type: 'raster-dem',
|
type: 'raster-dem',
|
||||||
url: 'https://tiles.gpx.studio/mapterhorn.json',
|
url: 'https://tiles.mapterhorn.com/tilejson.json',
|
||||||
encoding: 'terrarium',
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export const defaultTerrainSource = 'mapterhorn';
|
export const defaultTerrainSource = 'maptiler-dem';
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
...others
|
...others
|
||||||
}: {
|
}: {
|
||||||
iconOnly?: boolean;
|
iconOnly?: boolean;
|
||||||
company?: 'gpx.studio' | 'github' | 'crowdin' | 'facebook' | 'reddit';
|
company?: 'gpx.studio' | 'maptiler' | 'github' | 'crowdin' | 'facebook' | 'reddit';
|
||||||
[key: string]: any;
|
[key: string]: any;
|
||||||
} = $props();
|
} = $props();
|
||||||
</script>
|
</script>
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
alt="Logo of gpx.studio."
|
alt="Logo of gpx.studio."
|
||||||
{...others}
|
{...others}
|
||||||
/>
|
/>
|
||||||
|
{:else if company === 'maptiler'}
|
||||||
|
<img
|
||||||
|
src="{base}/maptiler-logo{mode.current === 'dark' ? '-dark' : ''}.svg"
|
||||||
|
alt="Logo of Maptiler."
|
||||||
|
{...others}
|
||||||
|
/>
|
||||||
{:else if company === 'github'}
|
{:else if company === 'github'}
|
||||||
<svg
|
<svg
|
||||||
role="img"
|
role="img"
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import topoMap from '$lib/assets/img/docs/maps/topo.png?enhanced';
|
import maptilerTopoMap from '$lib/assets/img/home/maptiler-topo.png?enhanced';
|
||||||
import waymarkedMap from '$lib/assets/img/docs/maps/waymarked.png?enhanced';
|
import waymarkedMap from '$lib/assets/img/home/waymarked.png?enhanced';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="relative h-80 aspect-square rounded-2xl shadow-xl overflow-clip">
|
<div class="relative h-80 aspect-square rounded-2xl shadow-xl overflow-clip">
|
||||||
<enhanced:img src={topoMap} alt="Topo map screenshot." class="absolute" />
|
<enhanced:img src={maptilerTopoMap} alt="MapTiler Topo map screenshot." class="absolute" />
|
||||||
<enhanced:img
|
<enhanced:img
|
||||||
src={waymarkedMap}
|
src={waymarkedMap}
|
||||||
alt="Waymarked Trails map screenshot."
|
alt="Waymarked Trails map screenshot."
|
||||||
|
|||||||
@@ -45,6 +45,26 @@
|
|||||||
settings.initialize();
|
settings.initialize();
|
||||||
|
|
||||||
function applyOptions() {
|
function applyOptions() {
|
||||||
|
let downloads: Promise<GPXFile | null>[] = getFilesFromEmbeddingOptions(options).map(
|
||||||
|
(url) => {
|
||||||
|
return fetch(url)
|
||||||
|
.then((response) => response.blob())
|
||||||
|
.then((blob) => new File([blob], url.split('/').pop() ?? url))
|
||||||
|
.then(loadFile);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
Promise.all(downloads).then((answers) => {
|
||||||
|
const files = answers.filter((file) => file !== null) as GPXFile[];
|
||||||
|
let ids: string[] = [];
|
||||||
|
files.forEach((file, index) => {
|
||||||
|
let id = `gpx-${index}-embed`;
|
||||||
|
file._data.id = id;
|
||||||
|
ids.push(id);
|
||||||
|
});
|
||||||
|
fileStateCollection.setEmbeddedFiles(files);
|
||||||
|
$fileOrder = ids;
|
||||||
|
selection.selectAll();
|
||||||
|
});
|
||||||
if (allowedEmbeddingBasemaps.includes(options.basemap)) {
|
if (allowedEmbeddingBasemaps.includes(options.basemap)) {
|
||||||
$currentBasemap = options.basemap;
|
$currentBasemap = options.basemap;
|
||||||
}
|
}
|
||||||
@@ -70,27 +90,6 @@
|
|||||||
].filter((dataset) => dataset !== null)
|
].filter((dataset) => dataset !== null)
|
||||||
);
|
);
|
||||||
elevationFill.set(options.elevation.fill == 'none' ? undefined : options.elevation.fill);
|
elevationFill.set(options.elevation.fill == 'none' ? undefined : options.elevation.fill);
|
||||||
|
|
||||||
let downloads: Promise<GPXFile | null>[] = getFilesFromEmbeddingOptions(options).map(
|
|
||||||
(url) => {
|
|
||||||
return fetch(url)
|
|
||||||
.then((response) => response.blob())
|
|
||||||
.then((blob) => new File([blob], url.split('/').pop() ?? url))
|
|
||||||
.then(loadFile);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
Promise.all(downloads).then((answers) => {
|
|
||||||
const files = answers.filter((file) => file !== null) as GPXFile[];
|
|
||||||
let ids: string[] = [];
|
|
||||||
files.forEach((file, index) => {
|
|
||||||
let id = `gpx-${index}-embed`;
|
|
||||||
file._data.id = id;
|
|
||||||
ids.push(id);
|
|
||||||
});
|
|
||||||
fileStateCollection.setEmbeddedFiles(files);
|
|
||||||
$fileOrder = ids;
|
|
||||||
selection.selectAll();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$effect(() => {
|
$effect(() => {
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ export const defaultEmbeddingOptions = {
|
|||||||
key: '',
|
key: '',
|
||||||
files: [],
|
files: [],
|
||||||
ids: [],
|
ids: [],
|
||||||
basemap: 'libertyTopo',
|
basemap: 'maptilerStreets',
|
||||||
elevation: {
|
elevation: {
|
||||||
show: true,
|
show: true,
|
||||||
height: 170,
|
height: 170,
|
||||||
@@ -126,7 +126,7 @@ export function convertOldEmbeddingOptions(options: URLSearchParams): any {
|
|||||||
if (options.has('source')) {
|
if (options.has('source')) {
|
||||||
let basemap = options.get('source')!;
|
let basemap = options.get('source')!;
|
||||||
if (basemap === 'satellite') {
|
if (basemap === 'satellite') {
|
||||||
newOptions.basemap = 'libertySatellite';
|
newOptions.basemap = 'maptilerSatellite';
|
||||||
} else if (basemap === 'otm') {
|
} else if (basemap === 'otm') {
|
||||||
newOptions.basemap = 'openTopoMap';
|
newOptions.basemap = 'openTopoMap';
|
||||||
} else if (basemap === 'ohm') {
|
} else if (basemap === 'ohm') {
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ export class DistanceMarkers {
|
|||||||
layout: {
|
layout: {
|
||||||
'text-field': ['get', 'distance'],
|
'text-field': ['get', 'distance'],
|
||||||
'text-size': 14,
|
'text-size': 14,
|
||||||
'text-font': ['Noto Sans Bold'],
|
'text-font': ['Open Sans Bold'],
|
||||||
},
|
},
|
||||||
paint: {
|
paint: {
|
||||||
'text-color': 'black',
|
'text-color': 'black',
|
||||||
|
|||||||
@@ -251,11 +251,11 @@ export class GPXLayer {
|
|||||||
source: this.fileId,
|
source: this.fileId,
|
||||||
layout: {
|
layout: {
|
||||||
'text-field': '»',
|
'text-field': '»',
|
||||||
'text-offset': [0, -0.1],
|
'text-offset': [0, -0.06],
|
||||||
'text-keep-upright': false,
|
'text-keep-upright': false,
|
||||||
'text-max-angle': 361,
|
'text-max-angle': 361,
|
||||||
'text-allow-overlap': true,
|
'text-allow-overlap': true,
|
||||||
'text-font': ['Noto Sans Bold'],
|
'text-font': ['Open Sans Bold'],
|
||||||
'symbol-placement': 'line',
|
'symbol-placement': 'line',
|
||||||
'symbol-spacing': 20,
|
'symbol-spacing': 20,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -88,14 +88,6 @@
|
|||||||
<span class="font-mono">{key}</span>
|
<span class="font-mono">{key}</span>
|
||||||
{#if key === 'website' || key.startsWith('website:') || key.endsWith(':website') || key === 'contact:facebook' || key === 'contact:instagram' || key === 'contact:twitter'}
|
{#if key === 'website' || key.startsWith('website:') || key.endsWith(':website') || key === 'contact:facebook' || key === 'contact:instagram' || key === 'contact:twitter'}
|
||||||
<a href={value} target="_blank" class="text-link underline">{value}</a>
|
<a href={value} target="_blank" class="text-link underline">{value}</a>
|
||||||
{:else if key === 'wikipedia' || key.startsWith('wikipedia:') || key.endsWith(':wikipedia')}
|
|
||||||
<a
|
|
||||||
href="https://wikipedia.org/wiki/{value}"
|
|
||||||
target="_blank"
|
|
||||||
class="text-link underline"
|
|
||||||
>
|
|
||||||
{value}
|
|
||||||
</a>
|
|
||||||
{:else if key === 'phone' || key === 'contact:phone'}
|
{:else if key === 'phone' || key === 'contact:phone'}
|
||||||
<a href={'tel:' + value} class="text-link underline">{value}</a>
|
<a href={'tel:' + value} class="text-link underline">{value}</a>
|
||||||
{:else if key === 'email' || key === 'contact:email'}
|
{:else if key === 'email' || key === 'contact:email'}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ liveQuery(() => db.overpassdata.toArray()).subscribe((pois) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
export class OverpassLayer {
|
export class OverpassLayer {
|
||||||
overpassUrl = 'https://overpass.gpx.studio/api/interpreter';
|
overpassUrl = 'https://overpass.private.coffee/api/interpreter';
|
||||||
minZoom = 12;
|
minZoom = 12;
|
||||||
queryZoom = 12;
|
queryZoom = 12;
|
||||||
expirationTime = 7 * 24 * 3600 * 1000;
|
expirationTime = 7 * 24 * 3600 * 1000;
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ import {
|
|||||||
import { getLayers } from '$lib/components/map/layer-control/utils';
|
import { getLayers } from '$lib/components/map/layer-control/utils';
|
||||||
import { i18n } from '$lib/i18n.svelte';
|
import { i18n } from '$lib/i18n.svelte';
|
||||||
|
|
||||||
const { currentBasemap, currentOverlays, customLayers, opacities, terrainSource, distanceUnits } =
|
const { currentBasemap, currentOverlays, customLayers, opacities, terrainSource } = settings;
|
||||||
settings;
|
|
||||||
|
|
||||||
const emptySource: maplibregl.GeoJSONSourceSpecification = {
|
const emptySource: maplibregl.GeoJSONSourceSpecification = {
|
||||||
type: 'geojson',
|
type: 'geojson',
|
||||||
@@ -58,24 +57,15 @@ export class StyleManager {
|
|||||||
opacities.subscribe(() => this.updateOverlays());
|
opacities.subscribe(() => this.updateOverlays());
|
||||||
terrainSource.subscribe(() => this.updateTerrain());
|
terrainSource.subscribe(() => this.updateTerrain());
|
||||||
customLayers.subscribe(() => this.updateBasemap());
|
customLayers.subscribe(() => this.updateBasemap());
|
||||||
distanceUnits.subscribe(() => {
|
|
||||||
const map = get(this._map);
|
|
||||||
if (map && (map.getLayer('contours_m') || map.getLayer('contours_ft'))) {
|
|
||||||
this.updateBasemap();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
updateBasemap() {
|
updateBasemap() {
|
||||||
const map_ = get(this._map);
|
const map_ = get(this._map);
|
||||||
if (!map_) return;
|
if (!map_) return;
|
||||||
let basemap = get(currentBasemap);
|
this.buildStyle().then((style) => map_.setStyle(style));
|
||||||
this.buildStyle(basemap).then((style) => {
|
|
||||||
if (get(currentBasemap) === basemap) map_.setStyle(style);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async buildStyle(basemap: string): Promise<maplibregl.StyleSpecification> {
|
async buildStyle(): Promise<maplibregl.StyleSpecification> {
|
||||||
const custom = get(customLayers);
|
const custom = get(customLayers);
|
||||||
|
|
||||||
const style: maplibregl.StyleSpecification = {
|
const style: maplibregl.StyleSpecification = {
|
||||||
@@ -89,31 +79,22 @@ export class StyleManager {
|
|||||||
layers: [],
|
layers: [],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let basemap = get(currentBasemap);
|
||||||
const basemapInfo = basemaps[basemap] ?? custom[basemap]?.value ?? basemaps[defaultBasemap];
|
const basemapInfo = basemaps[basemap] ?? custom[basemap]?.value ?? basemaps[defaultBasemap];
|
||||||
|
|
||||||
let basemapStyle = basemaps.openStreetMap as maplibregl.StyleSpecification;
|
let basemapStyle = basemaps.openStreetMap as maplibregl.StyleSpecification;
|
||||||
try {
|
try {
|
||||||
basemapStyle = await this.get(basemapInfo);
|
basemapStyle = await this.get(basemapInfo);
|
||||||
for (const source in basemapStyle.sources) {
|
|
||||||
const src = basemapStyle.sources[source];
|
|
||||||
if (
|
|
||||||
src &&
|
|
||||||
typeof src === 'object' &&
|
|
||||||
'url' in src &&
|
|
||||||
typeof src.url === 'string' &&
|
|
||||||
src.url.includes(maptilerKeyPlaceHolder)
|
|
||||||
) {
|
|
||||||
src.url = src.url.replace(maptilerKeyPlaceHolder, this._maptilerKey);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e.message);
|
console.error(e.message);
|
||||||
}
|
}
|
||||||
this.merge(style, basemapStyle);
|
this.merge(style, basemapStyle);
|
||||||
|
|
||||||
const terrain = this.getCurrentTerrain();
|
if (this._maptilerKey !== '') {
|
||||||
style.sources[terrain.source] = terrainSources[terrain.source];
|
const terrain = this.getCurrentTerrain();
|
||||||
style.terrain = terrain.exaggeration > 0 ? terrain : undefined;
|
style.sources[terrain.source] = terrainSources[terrain.source];
|
||||||
|
style.terrain = terrain.exaggeration > 0 ? terrain : undefined;
|
||||||
|
}
|
||||||
|
|
||||||
style.layers.push(...anchorLayers);
|
style.layers.push(...anchorLayers);
|
||||||
|
|
||||||
@@ -185,6 +166,7 @@ export class StyleManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
updateTerrain() {
|
updateTerrain() {
|
||||||
|
if (this._maptilerKey === '') return;
|
||||||
const map_ = get(this._map);
|
const map_ = get(this._map);
|
||||||
if (!map_) return;
|
if (!map_) return;
|
||||||
|
|
||||||
@@ -207,6 +189,9 @@ export class StyleManager {
|
|||||||
): Promise<maplibregl.StyleSpecification> {
|
): Promise<maplibregl.StyleSpecification> {
|
||||||
if (typeof styleInfo === 'string') {
|
if (typeof styleInfo === 'string') {
|
||||||
let styleUrl = styleInfo as string;
|
let styleUrl = styleInfo as string;
|
||||||
|
if (styleUrl.includes(maptilerKeyPlaceHolder)) {
|
||||||
|
styleUrl = styleUrl.replace(maptilerKeyPlaceHolder, this._maptilerKey);
|
||||||
|
}
|
||||||
const response = await fetch(styleUrl, { cache: 'force-cache' });
|
const response = await fetch(styleUrl, { cache: 'force-cache' });
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
throw new Error(`HTTP error fetching style "${styleInfo}": ${response.status}`);
|
throw new Error(`HTTP error fetching style "${styleInfo}": ${response.status}`);
|
||||||
@@ -220,46 +205,23 @@ export class StyleManager {
|
|||||||
|
|
||||||
merge(style: maplibregl.StyleSpecification, other: maplibregl.StyleSpecification) {
|
merge(style: maplibregl.StyleSpecification, other: maplibregl.StyleSpecification) {
|
||||||
style.sources = { ...style.sources, ...other.sources };
|
style.sources = { ...style.sources, ...other.sources };
|
||||||
const units = get(distanceUnits);
|
|
||||||
for (let layer of other.layers ?? []) {
|
for (let layer of other.layers ?? []) {
|
||||||
if ('source' in layer) {
|
|
||||||
if (layer.source == 'contours_m' && units === 'imperial') continue;
|
|
||||||
if (layer.source == 'contours_ft' && units !== 'imperial') continue;
|
|
||||||
}
|
|
||||||
if (layer.type === 'symbol' && layer.layout && layer.layout['text-field']) {
|
if (layer.type === 'symbol' && layer.layout && layer.layout['text-field']) {
|
||||||
const textField = layer.layout['text-field'];
|
const textField = layer.layout['text-field'];
|
||||||
if (Array.isArray(textField)) {
|
if (
|
||||||
if (
|
Array.isArray(textField) &&
|
||||||
textField.length == 4 &&
|
textField.length >= 2 &&
|
||||||
Array.isArray(textField[3]) &&
|
textField[0] === 'coalesce' &&
|
||||||
textField[3][0] === 'coalesce' &&
|
Array.isArray(textField[1]) &&
|
||||||
Array.isArray(textField[3][1]) &&
|
textField[1][0] === 'get' &&
|
||||||
textField[3][1][0] === 'get' &&
|
typeof textField[1][1] === 'string' &&
|
||||||
typeof textField[3][1][1] === 'string' &&
|
textField[1][1].startsWith('name')
|
||||||
textField[3][1][1].startsWith('name')
|
) {
|
||||||
) {
|
layer.layout['text-field'] = [
|
||||||
// OpenFreeMap styles
|
'coalesce',
|
||||||
layer.layout['text-field'] = [
|
['get', `name:${i18n.lang}`],
|
||||||
'coalesce',
|
['get', 'name'],
|
||||||
['get', `name:${i18n.lang}`],
|
];
|
||||||
['get', 'name'],
|
|
||||||
];
|
|
||||||
}
|
|
||||||
if (
|
|
||||||
textField.length == 3 &&
|
|
||||||
textField[0] === 'coalesce' &&
|
|
||||||
Array.isArray(textField[1]) &&
|
|
||||||
textField[1][0] === 'get' &&
|
|
||||||
typeof textField[1][1] === 'string' &&
|
|
||||||
textField[1][1].startsWith('name')
|
|
||||||
) {
|
|
||||||
// OpenMapTiles styles
|
|
||||||
layer.layout['text-field'] = [
|
|
||||||
'coalesce',
|
|
||||||
['get', `name:${i18n.lang}`],
|
|
||||||
['get', 'name'],
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
style.layers.push(layer);
|
style.layers.push(layer);
|
||||||
@@ -274,6 +236,10 @@ export class StyleManager {
|
|||||||
|
|
||||||
getCurrentTerrain() {
|
getCurrentTerrain() {
|
||||||
const terrain = get(terrainSource);
|
const terrain = get(terrainSource);
|
||||||
|
const source = terrainSources[terrain];
|
||||||
|
if (source.url && source.url.includes(maptilerKeyPlaceHolder)) {
|
||||||
|
source.url = source.url.replace(maptilerKeyPlaceHolder, this._maptilerKey);
|
||||||
|
}
|
||||||
const map_ = get(this._map);
|
const map_ = get(this._map);
|
||||||
return {
|
return {
|
||||||
source: terrain,
|
source: terrain,
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
class Engine {
|
|
||||||
_engine: Writable<any>;
|
|
||||||
|
|
||||||
constructor() {
|
|
||||||
this._engine = null;
|
|
||||||
import('gpx-rs').then((wasm) => {
|
|
||||||
this._engine = new wasm.Controller();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -59,7 +59,7 @@ These controls allow you to navigate the map, zoom in and out, and switch betwee
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ This tool allows you to add elevation data to traces and [points of interest](..
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ El botó de capa de mapa permet canviar entre diferents mapes base i alternar ca
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Aquesta eina permet afegir dades d'elevació a traces i [punts d'interès](../gp
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ Tlačítko mapové vrstvy umožňuje přepínat mezi různými podkladovými map
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Tento nástroj umožňuje přidat údaje o nadmořské výšce ke stopám a [bod
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ This tool allows you to add elevation data to traces and [points of interest](..
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ Mit der Schaltfläche Karten-Ebenen können Sie zwischen verschiedenen Basemaps
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Fahre mit der Maus über die Karte, um die <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails-Wanderkarte</a> über der <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a>-Basiskarte anzuzeigen.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Mit diesem Tool kannst du Höhendaten zu Routen und [Points of Interest] (../gpx
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Die Höhendaten werden von <a href="https://maptiler.com" target="_blank">MapTiler</a> bereitgestellt.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
Mehr über die Herkunft und Genauigkeit erfährst du in der <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">Dokumentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ This tool allows you to add elevation data to traces and [points of interest](..
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ Only one basemap can be displayed at a time.
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ This tool allows you to add elevation data to traces and [points of interest](..
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
@@ -59,7 +59,7 @@ El botón de capas de mapa le permite cambiar entre diferentes mapas bases y alt
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Pasa el ratón sobre el mapa para que la capa de <a href="https://hiking.waymarkedtrails.org" target="_blank">Caminatas por Sendas Marcadas</a> aparezca superpuesta al mapa base topográfico.
|
Pasa el ratón sobre el mapa para que la capa de <a href="https://hiking.waymarkedtrails.org" target="_blank">Caminatas por Sendas Marcadas</a> aparezca superpuesta al mapa base <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler</a>.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Esta herramienta permite añadir datos de elevación a los rastros y [puntos de
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Los datos de elevación son proporcionados por <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Los datos de notificación son proporcionados por <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
Puede aprender más sobre su origen y precisión en la <a href="https://mapterhorn.com/attribution/" target="_blank">documentación</a>.
|
Puedes aprender más sobre su origen y precisión en la <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentación</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ Maparen geruzen botoiak mapa-oinarri desberdinen artean aldatzeko aukera ematen
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Tresna honen bidez elebazio datuak gehitzen ahal dira ibilbidetan eta [interesgu
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ This tool allows you to add elevation data to traces and [points of interest](..
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ Le bouton des couches de la carte vous permet de basculer entre différents fond
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Survolez la carte pour afficher la superposition des chemins de randonnée <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails</a> au fond de carte topographique.
|
Survolez la carte pour afficher la superposition des chemins de randonnée <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails</a> au fond de carte <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a>.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Cet outil vous permet d'ajouter des données d'altitude aux traces et aux [point
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Les données d'altitude sont fournies par <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Les données d'altitude sont fournies par <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
Vous pouvez en apprendre plus sur leur origine et précision dans la <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
Vous pouvez en apprendre plus sur leur origine et précision dans la <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ This tool allows you to add elevation data to traces and [points of interest](..
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Ez az eszköz lehetővé teszi magassági adatok hozzáadását a nyomvonalakhoz
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ This tool allows you to add elevation data to traces and [points of interest](..
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ Il pulsante dei livelli di mappa consente di passare da una basemap all'altra, e
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Questo strumento ti permette di aggiungere dati di altimetria a tracce e [punti
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ This tool allows you to add elevation data to traces and [points of interest](..
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ This tool allows you to add elevation data to traces and [points of interest](..
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ This tool allows you to add elevation data to traces and [points of interest](..
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ Met de kaartlagen knop kun je wisselen tussen verschillende basiskaarten, en kaa
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Beweeg over de kaart om de <a href="https://hiking.waymarkedtrails.org" target="_blank">Gemarkeerde sporen wandelen</a> overlay te tonen bovenop de topografische basiskaart.
|
Beweeg over de kaart om de <a href="https://hiking.waymarkedtrails.org" target="_blank">Gemarkeerde sporen wandelen</a> overlay te tonen bovenop de <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ title: Instellingen
|
|||||||
|
|
||||||
Wijzig de eenheden die worden gebruikt om afstanden in de interface weer te geven.
|
Wijzig de eenheden die worden gebruikt om afstanden in de interface weer te geven.
|
||||||
|
|
||||||
### <Zap size="16" class="inline-block" style="margin-bottom: 2px" /> Snelheidseenheden
|
### <Zap size="16" class="inline-block" style="margin-bottom: 2px" /> Snelheids eenheden
|
||||||
|
|
||||||
Verander de eenheden die worden gebruikt om snelheden in de interface weer te geven.
|
Verander de eenheden die worden gebruikt om velocities in de interface weer te geven.
|
||||||
Je kunt kiezen tussen afstand per uur of minuten per afstand, wat geschikter kan zijn voor het uitvoeren van activiteiten.
|
Je kunt kiezen tussen afstand per uur of minuten per afstand, wat geschikter kan zijn voor het uitvoeren van activiteiten.
|
||||||
|
|
||||||
### <Thermometer size="16" class="inline-block" style="margin-bottom: 2px" /> Temperatuureenheden
|
### <Thermometer size="16" class="inline-block" style="margin-bottom: 2px" /> Temperatuureenheden
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Met dit gereedschap kun je hoogtegegevens toevoegen aan sporen en [interessante
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Hoogtegegevens worden verstrekt door <a href="https://maptiler.com" target="_blank">Mapterhorn</a>.
|
Hoogtegegevens worden verstrekt door <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
Je kunt meer leren over de oorsprong en nauwkeurigheid in de <a href="https://mapterhorn.com/attribution/" target="_blank">documentatie</a>.
|
Je kunt meer leren over de oorsprong en nauwkeurigheid in de <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentatie</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||