Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add gpx support #9152

Merged
merged 62 commits into from Feb 11, 2022
Merged
Show file tree
Hide file tree
Changes from 61 commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
b65ab25
Add empty GPX data source and spec
andr3nun3s May 26, 2015
1a12687
Add gpx sample files
andr3nun3s Jun 5, 2015
96fa24f
Add GpxDataSource to CesiumViewer
andr3nun3s Jun 9, 2015
e281056
Add tests
andr3nun3s Jul 4, 2015
9f9aabb
Add preliminary waypoint processing
andr3nun3s Jul 23, 2015
f5d83ff
Delete or comment out some unnecessary code that was copied from KMLD…
andr3nun3s Jul 23, 2015
b790266
Add tests
andr3nun3s Jul 28, 2015
2aa7d24
Major cleanup
andr3nun3s Jul 28, 2015
bffb60c
Improve waypoint processing
andr3nun3s Jul 29, 2015
f617b56
Add tests
andr3nun3s Jul 31, 2015
78ec423
Implement description processing for waypoints
andr3nun3s Aug 2, 2015
610e12a
Code cleanup
andr3nun3s Aug 2, 2015
84d987c
Add position details to description of waypoints
andr3nun3s Aug 4, 2015
63f4ef7
Initial implementation of Route processing
andr3nun3s Aug 4, 2015
d8ba699
Cleanup
andr3nun3s Aug 4, 2015
17fb703
Add boilerplate code for Track support
andr3nun3s Aug 6, 2015
06470ef
Add example gpx file
andr3nun3s Aug 6, 2015
95f307c
Improve Track support
andr3nun3s Aug 6, 2015
f672c35
Disregard elevation of waypoints for now
andr3nun3s Aug 6, 2015
1bf9ddd
Add Point processing
andr3nun3s Aug 8, 2015
9f21f6f
Add tests
andr3nun3s Aug 9, 2015
14834fa
Add metadata processing
andr3nun3s Aug 11, 2015
491bfed
Implement missing Metadata related complexTypes
andr3nun3s Aug 11, 2015
2eed842
Cleanup
andr3nun3s Aug 13, 2015
c540c1d
Fix metadata processing
andr3nun3s Aug 13, 2015
55d061a
Add tests
andr3nun3s Aug 13, 2015
44806bd
Ignore pt for now
andr3nun3s Aug 14, 2015
793ea42
Improve metadata handling
andr3nun3s Aug 15, 2015
f503d77
Fix metadata
andr3nun3s Aug 15, 2015
f9f1b63
Add GPX Demo to Sandcastle
andr3nun3s Aug 18, 2015
0bc1929
Tweak default polyline width
andr3nun3s Aug 18, 2015
6cb0efb
Add drag and drop of gpx files
andr3nun3s Aug 18, 2015
a196634
Remove promises and related code
andr3nun3s Aug 18, 2015
e9ad247
Remove unused code
andr3nun3s Aug 18, 2015
7834192
Improve coordinate processing
andr3nun3s Aug 18, 2015
801c29a
Add elevation again
andr3nun3s Aug 19, 2015
5449a96
Remove coordinates and elevation from descriptions
andr3nun3s Aug 19, 2015
542b8c7
Add test cases for various description fields
andr3nun3s Aug 19, 2015
b49ae86
First take at time dynamic tracks
andr3nun3s Aug 19, 2015
a0acb4b
Fix time-dynamic tracks
andr3nun3s Aug 19, 2015
24d677b
Cleanup
andr3nun3s Aug 19, 2015
4f9053d
Add tests
andr3nun3s Aug 20, 2015
1c65723
Remove unused code
andr3nun3s Aug 21, 2015
0752e2a
Add tests
andr3nun3s Aug 21, 2015
b005266
Fix typo
andr3nun3s Aug 21, 2015
dc1a79a
Rebase gpx branch
jtorresfabra Sep 14, 2020
173f888
Minor cleanup
Sep 21, 2020
bc9ff88
Add missing documentation and improves the SandCastle
jtorresfabra Sep 21, 2020
591b413
Merge branch 'main' of https://github.com/CesiumGS/cesium into featur…
sanjeetsuhag Jan 31, 2022
0ee2073
Updates Gpx specific files to ES6 let/const syntax
sanjeetsuhag Jan 31, 2022
c8d44fb
Fixes comment syntax
sanjeetsuhag Jan 31, 2022
b81ec2d
Documentation ESLINT fix
sanjeetsuhag Jan 31, 2022
9199a95
Merge branch 'main' into feature/rebased-gpx
sanjeetsuhag Jan 31, 2022
51c224f
Updates code
sanjeetsuhag Feb 1, 2022
66bad57
Spec update
sanjeetsuhag Feb 1, 2022
6f15cc7
Sandcastle fix
sanjeetsuhag Feb 1, 2022
d33d4cf
Fixes typo
Feb 1, 2022
0593a05
Feedback pass
sanjeetsuhag Feb 7, 2022
e0251c6
Merge branch 'main' of https://github.com/CesiumGS/cesium into featur…
sanjeetsuhag Feb 7, 2022
61d55d7
ESLint fixes
sanjeetsuhag Feb 7, 2022
dc2c907
Feedback pass 2
sanjeetsuhag Feb 7, 2022
674ae4f
Fixes Sandcastle
sanjeetsuhag Feb 8, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 5 additions & 0 deletions Apps/CesiumViewer/CesiumViewer.js
Expand Up @@ -11,6 +11,7 @@ import {
CzmlDataSource,
GeoJsonDataSource,
KmlDataSource,
GpxDataSource,
TileMapServiceImageryProvider,
Viewer,
viewerCesiumInspectorMixin,
Expand Down Expand Up @@ -118,6 +119,8 @@ function main() {
sourceType = "geojson";
} else if (/\.kml$/i.test(source) || /\.kmz$/i.test(source)) {
sourceType = "kml";
} else if (/\.gpx$/i.test(source) || /\.gpx$/i.test(source)) {
sourceType = "gpx";
}
}

Expand All @@ -132,6 +135,8 @@ function main() {
canvas: scene.canvas,
screenOverlayContainer: viewer.container,
});
} else if (sourceType === "gpx") {
loadPromise = GpxDataSource.load(source);
} else {
showLoadError(source, "Unknown format.");
}
Expand Down
219 changes: 219 additions & 0 deletions Apps/SampleData/gpx/complexTrk.gpx
@@ -0,0 +1,219 @@
<gpx creator="GPS Visualizer http://www.gpsvisualizer.com/" version="1.0">
<wpt lat="45.44283" lon="-121.72904"><ele>1374</ele><name>Vista Ridge Trailhead</name><sym>Trail Head</sym></wpt>
<wpt lat="45.41000" lon="-121.71349"><ele>1777</ele><name>Wy'East Basin</name></wpt>
<wpt lat="45.41124" lon="-121.70404"><ele>1823</ele><name>Dollar Lake</name></wpt>
<wpt lat="45.39260" lon="-121.69937"><ele>2394</ele><name>Barrett Spur</name><sym>Summit</sym></wpt>
<trk>
<name>Barrett Spur 1</name>
<trkseg>
<trkpt lat="45.4431641" lon="-121.7295456"></trkpt>
<trkpt lat="45.4428615" lon="-121.7290800"></trkpt>
<trkpt lat="45.4425697" lon="-121.7279085"></trkpt>
<trkpt lat="45.4424274" lon="-121.7267360"></trkpt>
<trkpt lat="45.4422017" lon="-121.7260429"></trkpt>
<trkpt lat="45.4416576" lon="-121.7252347"></trkpt>
<trkpt lat="45.4406144" lon="-121.7241181"></trkpt>
<trkpt lat="45.4398193" lon="-121.7224890"></trkpt>
<trkpt lat="45.4387649" lon="-121.7226112"></trkpt>
<trkpt lat="45.4383933" lon="-121.7224328"></trkpt>
<trkpt lat="45.4377850" lon="-121.7224159"></trkpt>
<trkpt lat="45.4372204" lon="-121.7226603"></trkpt>
<trkpt lat="45.4347837" lon="-121.7226007"></trkpt>
<trkpt lat="45.4332000" lon="-121.7216480"></trkpt>
<trkpt lat="45.4334576" lon="-121.7223143"></trkpt>
<trkpt lat="45.4321730" lon="-121.7222102"></trkpt>
<trkpt lat="45.4316609" lon="-121.7219974"></trkpt>
<trkpt lat="45.4303068" lon="-121.7220616"></trkpt>
<trkpt lat="45.4270753" lon="-121.7209685"></trkpt>
<trkpt lat="45.4267610" lon="-121.7211872"></trkpt>
<trkpt lat="45.4260133" lon="-121.7212623"></trkpt>
<trkpt lat="45.4257683" lon="-121.7214738"></trkpt>
<trkpt lat="45.4257400" lon="-121.7217762"></trkpt>
<trkpt lat="45.4259485" lon="-121.7226009"></trkpt>
<trkpt lat="45.4249972" lon="-121.7223672"></trkpt>
<trkpt lat="45.4246035" lon="-121.7219816"></trkpt>
<trkpt lat="45.4238682" lon="-121.7219830"></trkpt>
<trkpt lat="45.4226721" lon="-121.7216494"></trkpt>
<trkpt lat="45.4224120" lon="-121.7217998"></trkpt>
<trkpt lat="45.4211497" lon="-121.7218767"></trkpt>
<trkpt lat="45.4193319" lon="-121.7208650"></trkpt>
<trkpt lat="45.4186435" lon="-121.7202956"></trkpt>
<trkpt lat="45.4185934" lon="-121.7200745"></trkpt>
<trkpt lat="45.4178963" lon="-121.7196035"></trkpt>
<trkpt lat="45.4171101" lon="-121.7198115"></trkpt>
<trkpt lat="45.4166827" lon="-121.7193250"></trkpt>
<trkpt lat="45.4161855" lon="-121.7190778"></trkpt>
<trkpt lat="45.4159291" lon="-121.7193146"></trkpt>
<trkpt lat="45.4153644" lon="-121.7193939"></trkpt>
<trkpt lat="45.4151268" lon="-121.7191578"></trkpt>
<trkpt lat="45.4148071" lon="-121.7191043"></trkpt>
<trkpt lat="45.4146310" lon="-121.7187962"></trkpt>
<trkpt lat="45.4142524" lon="-121.7187236"></trkpt>
<trkpt lat="45.4142844" lon="-121.7185595"></trkpt>
<trkpt lat="45.4133520" lon="-121.7180429"></trkpt>
<trkpt lat="45.4131406" lon="-121.7181383"></trkpt>
<trkpt lat="45.4130356" lon="-121.7179036"></trkpt>
<trkpt lat="45.4118436" lon="-121.7168789"></trkpt>
<trkpt lat="45.4109205" lon="-121.7156569"></trkpt>
<trkpt lat="45.4104523" lon="-121.7145250"></trkpt>
<trkpt lat="45.4104930" lon="-121.7143814"></trkpt>
<trkpt lat="45.4102075" lon="-121.7140608"></trkpt>
<trkpt lat="45.4099806" lon="-121.7134527"></trkpt>
</trkseg>
<trkseg>
<trkpt lat="45.4099792" lon="-121.7134610"></trkpt>
<trkpt lat="45.4091489" lon="-121.7134937"></trkpt>
<trkpt lat="45.4086133" lon="-121.7132504"></trkpt>
<trkpt lat="45.4080616" lon="-121.7127670"></trkpt>
<trkpt lat="45.4076426" lon="-121.7126047"></trkpt>
<trkpt lat="45.4075043" lon="-121.7122301"></trkpt>
<trkpt lat="45.4070652" lon="-121.7118980"></trkpt>
<trkpt lat="45.4068712" lon="-121.7114766"></trkpt>
<trkpt lat="45.4067987" lon="-121.7108634"></trkpt>
<trkpt lat="45.4064528" lon="-121.7106934"></trkpt>
<trkpt lat="45.4057286" lon="-121.7110326"></trkpt>
<trkpt lat="45.4056813" lon="-121.7108280"></trkpt>
<trkpt lat="45.4055566" lon="-121.7109216"></trkpt>
<trkpt lat="45.4047244" lon="-121.7093884"></trkpt>
<trkpt lat="45.4039059" lon="-121.7083824"></trkpt>
<trkpt lat="45.4037176" lon="-121.7077738"></trkpt>
<trkpt lat="45.4034533" lon="-121.7074489"></trkpt>
<trkpt lat="45.4026499" lon="-121.7071945"></trkpt>
<trkpt lat="45.4019737" lon="-121.7067004"></trkpt>
<trkpt lat="45.4018086" lon="-121.7067477"></trkpt>
<trkpt lat="45.4014084" lon="-121.7063918"></trkpt>
<trkpt lat="45.4013177" lon="-121.7059701"></trkpt>
<trkpt lat="45.4011965" lon="-121.7058914"></trkpt>
<trkpt lat="45.4010688" lon="-121.7053257"></trkpt>
<trkpt lat="45.4008116" lon="-121.7054978"></trkpt>
<trkpt lat="45.4006075" lon="-121.7053495"></trkpt>
<trkpt lat="45.4005546" lon="-121.7054856"></trkpt>
<trkpt lat="45.3991622" lon="-121.7049765"></trkpt>
<trkpt lat="45.3985560" lon="-121.7042976"></trkpt>
<trkpt lat="45.3981831" lon="-121.7042260"></trkpt>
<trkpt lat="45.3973151" lon="-121.7036992"></trkpt>
<trkpt lat="45.3967974" lon="-121.7036370"></trkpt>
<trkpt lat="45.3963985" lon="-121.7033742"></trkpt>
<trkpt lat="45.3945456" lon="-121.7029688"></trkpt>
<trkpt lat="45.3920595" lon="-121.7015918"></trkpt>
<trkpt lat="45.3907614" lon="-121.7012029"></trkpt>
<trkpt lat="45.3906454" lon="-121.7010483"></trkpt>
<trkpt lat="45.3906726" lon="-121.7008185"></trkpt>
<trkpt lat="45.3909774" lon="-121.7008263"></trkpt>
<trkpt lat="45.3911315" lon="-121.7004300"></trkpt>
<trkpt lat="45.3909963" lon="-121.6998193"></trkpt>
<trkpt lat="45.3908688" lon="-121.6997923"></trkpt>
<trkpt lat="45.3917895" lon="-121.6994679"></trkpt>
<trkpt lat="45.3926205" lon="-121.6994847"></trkpt>
<trkpt lat="45.3925915" lon="-121.6992485"></trkpt>
<trkpt lat="45.3928117" lon="-121.6995661"></trkpt>
</trkseg>
</trk>
<trk>
<name>Barrett Spur 2</name>
<trkseg>
<trkpt lat="45.3928201" lon="-121.6995658"></trkpt>
<trkpt lat="45.3935449" lon="-121.6998805"></trkpt>
<trkpt lat="45.3937897" lon="-121.6997710"></trkpt>
<trkpt lat="45.3941789" lon="-121.6999492"></trkpt>
<trkpt lat="45.3942372" lon="-121.7001375"></trkpt>
<trkpt lat="45.3946353" lon="-121.6999452"></trkpt>
<trkpt lat="45.3953599" lon="-121.7005823"></trkpt>
<trkpt lat="45.3957081" lon="-121.7006533"></trkpt>
<trkpt lat="45.3964324" lon="-121.7016813"></trkpt>
<trkpt lat="45.3965766" lon="-121.7016905"></trkpt>
<trkpt lat="45.3969060" lon="-121.7028225"></trkpt>
<trkpt lat="45.3968739" lon="-121.7033856"></trkpt>
<trkpt lat="45.3974854" lon="-121.7040597"></trkpt>
<trkpt lat="45.3986110" lon="-121.7044455"></trkpt>
<trkpt lat="45.3993308" lon="-121.7050832"></trkpt>
<trkpt lat="45.4006454" lon="-121.7055117"></trkpt>
<trkpt lat="45.4017924" lon="-121.7049952"></trkpt>
<trkpt lat="45.4028690" lon="-121.7048065"></trkpt>
<trkpt lat="45.4055213" lon="-121.7056599"></trkpt>
<trkpt lat="45.4055606" lon="-121.7058477"></trkpt>
</trkseg>
<trkseg>
<trkpt lat="45.4055556" lon="-121.7058619"></trkpt>
<trkpt lat="45.4057016" lon="-121.7055424"></trkpt>
<trkpt lat="45.4064672" lon="-121.7058247"></trkpt>
<trkpt lat="45.4065550" lon="-121.7056490"></trkpt>
<trkpt lat="45.4081392" lon="-121.7055042"></trkpt>
<trkpt lat="45.4084785" lon="-121.7052201"></trkpt>
<trkpt lat="45.4089125" lon="-121.7053029"></trkpt>
<trkpt lat="45.4097597" lon="-121.7050730"></trkpt>
<trkpt lat="45.4098359" lon="-121.7049047"></trkpt>
<trkpt lat="45.4101859" lon="-121.7049419"></trkpt>
<trkpt lat="45.4109946" lon="-121.7045409"></trkpt>
<trkpt lat="45.4110654" lon="-121.7040909"></trkpt>
<trkpt lat="45.4113353" lon="-121.7039421"></trkpt>
<trkpt lat="45.4119105" lon="-121.7047169"></trkpt>
<trkpt lat="45.4120297" lon="-121.7046115"></trkpt>
<trkpt lat="45.4123835" lon="-121.7049762"></trkpt>
<trkpt lat="45.4125020" lon="-121.7053677"></trkpt>
<trkpt lat="45.4134357" lon="-121.7051916"></trkpt>
<trkpt lat="45.4135832" lon="-121.7046182"></trkpt>
<trkpt lat="45.4139565" lon="-121.7044171"></trkpt>
<trkpt lat="45.4140658" lon="-121.7041636"></trkpt>
<trkpt lat="45.4145098" lon="-121.7041176"></trkpt>
<trkpt lat="45.4141414" lon="-121.7043045"></trkpt>
<trkpt lat="45.4141558" lon="-121.7050125"></trkpt>
<trkpt lat="45.4136095" lon="-121.7071948"></trkpt>
<trkpt lat="45.4126067" lon="-121.7080044"></trkpt>
<trkpt lat="45.4122181" lon="-121.7088539"></trkpt>
<trkpt lat="45.4124283" lon="-121.7092346"></trkpt>
<trkpt lat="45.4119295" lon="-121.7101625"></trkpt>
<trkpt lat="45.4124117" lon="-121.7104037"></trkpt>
<trkpt lat="45.4122553" lon="-121.7107970"></trkpt>
<trkpt lat="45.4116919" lon="-121.7107601"></trkpt>
<trkpt lat="45.4116619" lon="-121.7110571"></trkpt>
<trkpt lat="45.4113536" lon="-121.7114942"></trkpt>
<trkpt lat="45.4114186" lon="-121.7117619"></trkpt>
<trkpt lat="45.4110215" lon="-121.7125886"></trkpt>
<trkpt lat="45.4106014" lon="-121.7125816"></trkpt>
<trkpt lat="45.4104916" lon="-121.7129590"></trkpt>
<trkpt lat="45.4102544" lon="-121.7130066"></trkpt>
<trkpt lat="45.4099714" lon="-121.7134279"></trkpt>
</trkseg>
<trkseg>
<trkpt lat="45.4099747" lon="-121.7134529"></trkpt>
<trkpt lat="45.4110685" lon="-121.7158641"></trkpt>
<trkpt lat="45.4121873" lon="-121.7171940"></trkpt>
<trkpt lat="45.4131063" lon="-121.7179663"></trkpt>
<trkpt lat="45.4146646" lon="-121.7186587"></trkpt>
<trkpt lat="45.4147872" lon="-121.7190281"></trkpt>
<trkpt lat="45.4153143" lon="-121.7192079"></trkpt>
<trkpt lat="45.4153716" lon="-121.7193714"></trkpt>
<trkpt lat="45.4164891" lon="-121.7190904"></trkpt>
<trkpt lat="45.4172221" lon="-121.7196833"></trkpt>
<trkpt lat="45.4179416" lon="-121.7195244"></trkpt>
<trkpt lat="45.4185782" lon="-121.7197987"></trkpt>
<trkpt lat="45.4193540" lon="-121.7207025"></trkpt>
<trkpt lat="45.4214007" lon="-121.7218387"></trkpt>
<trkpt lat="45.4226606" lon="-121.7215644"></trkpt>
<trkpt lat="45.4247590" lon="-121.7218690"></trkpt>
<trkpt lat="45.4249036" lon="-121.7221738"></trkpt>
<trkpt lat="45.4259458" lon="-121.7225690"></trkpt>
<trkpt lat="45.4257020" lon="-121.7216118"></trkpt>
<trkpt lat="45.4260738" lon="-121.7212258"></trkpt>
<trkpt lat="45.4272087" lon="-121.7208974"></trkpt>
<trkpt lat="45.4277253" lon="-121.7209468"></trkpt>
<trkpt lat="45.4283981" lon="-121.7213890"></trkpt>
<trkpt lat="45.4288768" lon="-121.7213453"></trkpt>
<trkpt lat="45.4301857" lon="-121.7219605"></trkpt>
<trkpt lat="45.4312165" lon="-121.7219340"></trkpt>
<trkpt lat="45.4334856" lon="-121.7222528"></trkpt>
<trkpt lat="45.4331572" lon="-121.7216508"></trkpt>
<trkpt lat="45.4336070" lon="-121.7217366"></trkpt>
<trkpt lat="45.4350551" lon="-121.7225997"></trkpt>
<trkpt lat="45.4371233" lon="-121.7226122"></trkpt>
<trkpt lat="45.4378561" lon="-121.7223631"></trkpt>
<trkpt lat="45.4387304" lon="-121.7225545"></trkpt>
<trkpt lat="45.4397525" lon="-121.7223926"></trkpt>
<trkpt lat="45.4407832" lon="-121.7243251"></trkpt>
<trkpt lat="45.4422796" lon="-121.7260896"></trkpt>
<trkpt lat="45.4428882" lon="-121.7291117"></trkpt>
<trkpt lat="45.4431708" lon="-121.7295917"></trkpt>
</trkseg>
</trk>
</gpx>