vincentneo / avenue-gpx-viewer Goto Github PK
View Code? Open in Web Editor NEWA simple and easy GPX viewer for macOS.
License: GNU General Public License v3.0
A simple and easy GPX viewer for macOS.
License: GNU General Public License v3.0
as per title.
This file crashes the app: Version 1.5.1, Build 141
Workout--2023-04-27--11-08-57.gpx.zip
^
Hi, I live Avenue, but recently I used it to open gpx trails for a race, and I wasn't sure where is the start and the end.
I have a few ideas how to solve this:
Would one of these work?
Subj
Quite a lot of websites offer downloads of GPX files that plot so-called "routes" using the <rte>
XML type:
<rte/>
represents a route - an ordered list of waypoints representing a series of turn points leading to a destination
... instead of plotting so-called "tracks" using the <trk>
XML type:
<trk/>
represents a track - an ordered list of points describing a path
However, Avenue doesn't correctly render "routes" in GPX files. 😢
Opening the attached littlemill_rte.gpx
file in Avenue results in:
After converting the "route" (<rte>
) into a "track" (<trk>
with a nested <trkseg>
) opening the attached littlemill_trk.gpx
file results in:
Considering how similar the two types of GPX files are, is there a specific reason Avenue can't render "routes" like it does "tracks"?
All online GPX viewers I've tested correctly render both littlemill_rte.gpx
as well as littlemill_trk.gpx
but that kinda defeats the purpose of installing Avenue for offline viewing of GPX files! 😅
<?xml version="1.0"?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" version="1.1" creator="Walkhighlands">
<metadata>
<desc>GPX file from Walkhighlands; file is copyright Walkhighlands and must not be publicly shared on other websites. Do not remove this notice.</desc>
<copyright author="Walkhighlands">
<year>2019</year>
</copyright>
</metadata>
<rte><name>Inverarnie Esker Trail, Littlemill, near Daviot</name>
<rtept lat="57.4010415703684" lon="-4.16388037435761">
<ele>173.413808047518</ele>
<name>WPT 001</name>
</rtept>
<rtept lat="57.4007407481676" lon="-4.16350309053043">
<ele>178.26810294676</ele>
<name>WPT 002</name>
</rtept>
<rtept lat="57.400376271282" lon="-4.16212333581857">
<ele>180.987077073055</ele>
<name>WPT 003</name>
</rtept>
<rtept lat="57.3998910488033" lon="-4.16149552001872">
<ele>190.445050899754</ele>
<name>WPT 004</name>
</rtept>
<rtept lat="57.4003634796158" lon="-4.16098403649551">
<ele>190.777515937182</ele>
<name>WPT 005</name>
</rtept>
<rtept lat="57.4008676961032" lon="-4.16113357836337">
<ele>187.315331188634</ele>
<name>WPT 006</name>
</rtept>
<rtept lat="57.4014158699739" lon="-4.16060656173462">
<ele>183.766296677519</ele>
<name>WPT 007</name>
</rtept>
<rtept lat="57.4015752325133" lon="-4.16011656678015">
<ele>188.659296880204</ele>
<name>WPT 008</name>
</rtept>
<rtept lat="57.4021752075781" lon="-4.15971242672395">
<ele>188.232048828119</ele>
<name>WPT 009</name>
</rtept>
<rtept lat="57.4026650770936" lon="-4.15818315370177">
<ele>193.939983502083</ele>
<name>WPT 010</name>
</rtept>
<rtept lat="57.4028743550368" lon="-4.1572965506685">
<ele>195.595388409345</ele>
<name>WPT 011</name>
</rtept>
<rtept lat="57.4030962846962" lon="-4.15693005591034">
<ele>193.403757464614</ele>
<name>WPT 012</name>
</rtept>
<rtept lat="57.4032944405129" lon="-4.15606275817459">
<ele>198.420923163027</ele>
<name>WPT 013</name>
</rtept>
<rtept lat="57.4034698634436" lon="-4.15589328103007">
<ele>195.425051134745</ele>
<name>WPT 014</name>
</rtept>
<rtept lat="57.4032751059834" lon="-4.15530253260378">
<ele>199.649437258059</ele>
<name>WPT 015</name>
</rtept>
<rtept lat="57.4025840054586" lon="-4.15536181611061">
<ele>198.910051822482</ele>
<name>WPT 016</name>
</rtept>
<rtept lat="57.4022114334918" lon="-4.15508025029854">
<ele>198.828611692647</ele>
<name>WPT 017</name>
</rtept>
<rtept lat="57.4015673610111" lon="-4.15554180094946">
<ele>197.645168205844</ele>
<name>WPT 018</name>
</rtept>
<rtept lat="57.4009834758536" lon="-4.15626654431129">
<ele>198.835197831648</ele>
<name>WPT 019</name>
</rtept>
<rtept lat="57.4002118467905" lon="-4.15662069064133">
<ele>200</ele>
<name>WPT 020</name>
</rtept>
<rtept lat="57.3996040190929" lon="-4.15748380159465">
<ele>199.926484285751</ele>
<name>WPT 021</name>
</rtept>
<rtept lat="57.399221363582" lon="-4.15716169725443">
<ele>200</ele>
<name>WPT 022</name>
</rtept>
<rtept lat="57.3984080124866" lon="-4.15743346230523">
<ele>199.804540352692</ele>
<name>WPT 023</name>
</rtept>
<rtept lat="57.3974154741672" lon="-4.15809413800318">
<ele>201.274972110584</ele>
<name>WPT 024</name>
</rtept>
<rtept lat="57.3966426434014" lon="-4.15788891445502">
<ele>207.989658333141</ele>
<name>WPT 025</name>
</rtept>
<rtept lat="57.3965906618307" lon="-4.15714687902774">
<ele>209.743337294844</ele>
<name>WPT 026</name>
</rtept>
<rtept lat="57.3971346996272" lon="-4.15560101270252">
<ele>208.565054441251</ele>
<name>WPT 027</name>
</rtept>
<rtept lat="57.3963535155529" lon="-4.15777205359342">
<ele>209.590125697177</ele>
<name>WPT 028</name>
</rtept>
<rtept lat="57.3942041019711" lon="-4.16050156331621">
<ele>210</ele>
<name>WPT 029</name>
</rtept>
<rtept lat="57.3932050683631" lon="-4.16028299556556">
<ele>210</ele>
<name>WPT 030</name>
</rtept>
<rtept lat="57.3924616351218" lon="-4.16087828853576">
<ele>210</ele>
<name>WPT 031</name>
</rtept>
<rtept lat="57.3918407614644" lon="-4.16249923676536">
<ele>210.477985097183</ele>
<name>WPT 032</name>
</rtept>
<rtept lat="57.3913262660868" lon="-4.1629481975498">
<ele>210.992739239575</ele>
<name>WPT 033</name>
</rtept>
<rtept lat="57.3910311684117" lon="-4.16255139112838">
<ele>210.597985097183</ele>
<name>WPT 034</name>
</rtept>
<rtept lat="57.3903692955606" lon="-4.16279196735389">
<ele>211.035713487335</ele>
<name>WPT 035</name>
</rtept>
<rtept lat="57.3900519208153" lon="-4.16369183773898">
<ele>210</ele>
<name>WPT 036</name>
</rtept>
<rtept lat="57.3895998511291" lon="-4.16364522474499">
<ele>210</ele>
<name>WPT 037</name>
</rtept>
<rtept lat="57.3884949016602" lon="-4.16519751577239">
<ele>210.029452080862</ele>
<name>WPT 038</name>
</rtept>
<rtept lat="57.3884981255131" lon="-4.16563700295689">
<ele>209.672686920216</ele>
<name>WPT 039</name>
</rtept>
<rtept lat="57.3889680953091" lon="-4.16652336363811">
<ele>209</ele>
<name>WPT 040</name>
</rtept>
<rtept lat="57.3896556367924" lon="-4.1660447535357">
<ele>210</ele>
<name>WPT 041</name>
</rtept>
<rtept lat="57.3908157592975" lon="-4.16567388169645">
<ele>209.694949827358</ele>
<name>WPT 042</name>
</rtept>
<rtept lat="57.3916317339627" lon="-4.16462368529037">
<ele>210</ele>
<name>WPT 043</name>
</rtept>
<rtept lat="57.3941961935645" lon="-4.1622186146709">
<ele>207.800510547062</ele>
<name>WPT 044</name>
</rtept>
<rtept lat="57.3943159182643" lon="-4.1642460772415">
<ele>206.71643310321</ele>
<name>WPT 045</name>
</rtept>
<rtept lat="57.3947117121409" lon="-4.16474373657452">
<ele>204.088992711382</ele>
<name>WPT 045 - WPT 046</name>
</rtept>
<rtept lat="57.394433316424" lon="-4.16682430166097">
<ele>205.745622499593</ele>
<name>WPT 045 - WPT 046 - WPT 045 - WPT 046 - WPT 046</name>
</rtept>
<rtept lat="57.3957392220743" lon="-4.16612748414462">
<ele>196.684857483234</ele>
<name>WPT 045 - WPT 046 - WPT 046</name>
</rtept>
<rtept lat="57.3967791008799" lon="-4.16438801026503">
<ele>197.17804218825</ele>
<name>WPT 046</name>
</rtept>
<rtept lat="57.3978399266249" lon="-4.1628926697723">
<ele>196.567737998252</ele>
<name>WPT 047</name>
</rtept>
<rtept lat="57.3984816265404" lon="-4.16257096700038">
<ele>195.9229032549</ele>
<name>WPT 048</name>
</rtept>
<rtept lat="57.3998580486117" lon="-4.16153352466443">
<ele>190.39705089977</ele>
<name>WPT 049</name>
</rtept>
<rtept lat="57.3998910202611" lon="-4.16149718285646">
<ele>190.437050899761</ele>
<name>WPT 050</name>
</rtept>
<rtept lat="57.400379861855" lon="-4.16212354737575">
<ele>180.952580596161</ele>
<name>WPT 051</name>
</rtept>
<rtept lat="57.4007407481676" lon="-4.16350309053043">
<ele>178.268102946751</ele>
<name>WPT 052</name>
</rtept>
<rtept lat="57.4010397750842" lon="-4.16388026849041">
<ele>173.433920166747</ele>
<name>WPT 053</name>
</rtept>
</rte>
</gpx>
<?xml version="1.0"?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" version="1.1" creator="Walkhighlands">
<metadata>
<desc>GPX file from Walkhighlands; file is copyright Walkhighlands and must not be publicly shared on other websites. Do not remove this notice.</desc>
<copyright author="Walkhighlands">
<year>2019</year>
</copyright>
</metadata>
<trk><name>Inverarnie Esker Trail, Littlemill, near Daviot</name><trkseg>
<trkpt lat="57.4010415703684" lon="-4.16388037435761">
<ele>173.413808047518</ele>
<name>WPT 001</name>
</trkpt>
<trkpt lat="57.4007407481676" lon="-4.16350309053043">
<ele>178.26810294676</ele>
<name>WPT 002</name>
</trkpt>
<trkpt lat="57.400376271282" lon="-4.16212333581857">
<ele>180.987077073055</ele>
<name>WPT 003</name>
</trkpt>
<trkpt lat="57.3998910488033" lon="-4.16149552001872">
<ele>190.445050899754</ele>
<name>WPT 004</name>
</trkpt>
<trkpt lat="57.4003634796158" lon="-4.16098403649551">
<ele>190.777515937182</ele>
<name>WPT 005</name>
</trkpt>
<trkpt lat="57.4008676961032" lon="-4.16113357836337">
<ele>187.315331188634</ele>
<name>WPT 006</name>
</trkpt>
<trkpt lat="57.4014158699739" lon="-4.16060656173462">
<ele>183.766296677519</ele>
<name>WPT 007</name>
</trkpt>
<trkpt lat="57.4015752325133" lon="-4.16011656678015">
<ele>188.659296880204</ele>
<name>WPT 008</name>
</trkpt>
<trkpt lat="57.4021752075781" lon="-4.15971242672395">
<ele>188.232048828119</ele>
<name>WPT 009</name>
</trkpt>
<trkpt lat="57.4026650770936" lon="-4.15818315370177">
<ele>193.939983502083</ele>
<name>WPT 010</name>
</trkpt>
<trkpt lat="57.4028743550368" lon="-4.1572965506685">
<ele>195.595388409345</ele>
<name>WPT 011</name>
</trkpt>
<trkpt lat="57.4030962846962" lon="-4.15693005591034">
<ele>193.403757464614</ele>
<name>WPT 012</name>
</trkpt>
<trkpt lat="57.4032944405129" lon="-4.15606275817459">
<ele>198.420923163027</ele>
<name>WPT 013</name>
</trkpt>
<trkpt lat="57.4034698634436" lon="-4.15589328103007">
<ele>195.425051134745</ele>
<name>WPT 014</name>
</trkpt>
<trkpt lat="57.4032751059834" lon="-4.15530253260378">
<ele>199.649437258059</ele>
<name>WPT 015</name>
</trkpt>
<trkpt lat="57.4025840054586" lon="-4.15536181611061">
<ele>198.910051822482</ele>
<name>WPT 016</name>
</trkpt>
<trkpt lat="57.4022114334918" lon="-4.15508025029854">
<ele>198.828611692647</ele>
<name>WPT 017</name>
</trkpt>
<trkpt lat="57.4015673610111" lon="-4.15554180094946">
<ele>197.645168205844</ele>
<name>WPT 018</name>
</trkpt>
<trkpt lat="57.4009834758536" lon="-4.15626654431129">
<ele>198.835197831648</ele>
<name>WPT 019</name>
</trkpt>
<trkpt lat="57.4002118467905" lon="-4.15662069064133">
<ele>200</ele>
<name>WPT 020</name>
</trkpt>
<trkpt lat="57.3996040190929" lon="-4.15748380159465">
<ele>199.926484285751</ele>
<name>WPT 021</name>
</trkpt>
<trkpt lat="57.399221363582" lon="-4.15716169725443">
<ele>200</ele>
<name>WPT 022</name>
</trkpt>
<trkpt lat="57.3984080124866" lon="-4.15743346230523">
<ele>199.804540352692</ele>
<name>WPT 023</name>
</trkpt>
<trkpt lat="57.3974154741672" lon="-4.15809413800318">
<ele>201.274972110584</ele>
<name>WPT 024</name>
</trkpt>
<trkpt lat="57.3966426434014" lon="-4.15788891445502">
<ele>207.989658333141</ele>
<name>WPT 025</name>
</trkpt>
<trkpt lat="57.3965906618307" lon="-4.15714687902774">
<ele>209.743337294844</ele>
<name>WPT 026</name>
</trkpt>
<trkpt lat="57.3971346996272" lon="-4.15560101270252">
<ele>208.565054441251</ele>
<name>WPT 027</name>
</trkpt>
<trkpt lat="57.3963535155529" lon="-4.15777205359342">
<ele>209.590125697177</ele>
<name>WPT 028</name>
</trkpt>
<trkpt lat="57.3942041019711" lon="-4.16050156331621">
<ele>210</ele>
<name>WPT 029</name>
</trkpt>
<trkpt lat="57.3932050683631" lon="-4.16028299556556">
<ele>210</ele>
<name>WPT 030</name>
</trkpt>
<trkpt lat="57.3924616351218" lon="-4.16087828853576">
<ele>210</ele>
<name>WPT 031</name>
</trkpt>
<trkpt lat="57.3918407614644" lon="-4.16249923676536">
<ele>210.477985097183</ele>
<name>WPT 032</name>
</trkpt>
<trkpt lat="57.3913262660868" lon="-4.1629481975498">
<ele>210.992739239575</ele>
<name>WPT 033</name>
</trkpt>
<trkpt lat="57.3910311684117" lon="-4.16255139112838">
<ele>210.597985097183</ele>
<name>WPT 034</name>
</trkpt>
<trkpt lat="57.3903692955606" lon="-4.16279196735389">
<ele>211.035713487335</ele>
<name>WPT 035</name>
</trkpt>
<trkpt lat="57.3900519208153" lon="-4.16369183773898">
<ele>210</ele>
<name>WPT 036</name>
</trkpt>
<trkpt lat="57.3895998511291" lon="-4.16364522474499">
<ele>210</ele>
<name>WPT 037</name>
</trkpt>
<trkpt lat="57.3884949016602" lon="-4.16519751577239">
<ele>210.029452080862</ele>
<name>WPT 038</name>
</trkpt>
<trkpt lat="57.3884981255131" lon="-4.16563700295689">
<ele>209.672686920216</ele>
<name>WPT 039</name>
</trkpt>
<trkpt lat="57.3889680953091" lon="-4.16652336363811">
<ele>209</ele>
<name>WPT 040</name>
</trkpt>
<trkpt lat="57.3896556367924" lon="-4.1660447535357">
<ele>210</ele>
<name>WPT 041</name>
</trkpt>
<trkpt lat="57.3908157592975" lon="-4.16567388169645">
<ele>209.694949827358</ele>
<name>WPT 042</name>
</trkpt>
<trkpt lat="57.3916317339627" lon="-4.16462368529037">
<ele>210</ele>
<name>WPT 043</name>
</trkpt>
<trkpt lat="57.3941961935645" lon="-4.1622186146709">
<ele>207.800510547062</ele>
<name>WPT 044</name>
</trkpt>
<trkpt lat="57.3943159182643" lon="-4.1642460772415">
<ele>206.71643310321</ele>
<name>WPT 045</name>
</trkpt>
<trkpt lat="57.3947117121409" lon="-4.16474373657452">
<ele>204.088992711382</ele>
<name>WPT 045 - WPT 046</name>
</trkpt>
<trkpt lat="57.394433316424" lon="-4.16682430166097">
<ele>205.745622499593</ele>
<name>WPT 045 - WPT 046 - WPT 045 - WPT 046 - WPT 046</name>
</trkpt>
<trkpt lat="57.3957392220743" lon="-4.16612748414462">
<ele>196.684857483234</ele>
<name>WPT 045 - WPT 046 - WPT 046</name>
</trkpt>
<trkpt lat="57.3967791008799" lon="-4.16438801026503">
<ele>197.17804218825</ele>
<name>WPT 046</name>
</trkpt>
<trkpt lat="57.3978399266249" lon="-4.1628926697723">
<ele>196.567737998252</ele>
<name>WPT 047</name>
</trkpt>
<trkpt lat="57.3984816265404" lon="-4.16257096700038">
<ele>195.9229032549</ele>
<name>WPT 048</name>
</trkpt>
<trkpt lat="57.3998580486117" lon="-4.16153352466443">
<ele>190.39705089977</ele>
<name>WPT 049</name>
</trkpt>
<trkpt lat="57.3998910202611" lon="-4.16149718285646">
<ele>190.437050899761</ele>
<name>WPT 050</name>
</trkpt>
<trkpt lat="57.400379861855" lon="-4.16212354737575">
<ele>180.952580596161</ele>
<name>WPT 051</name>
</trkpt>
<trkpt lat="57.4007407481676" lon="-4.16350309053043">
<ele>178.268102946751</ele>
<name>WPT 052</name>
</trkpt>
<trkpt lat="57.4010397750842" lon="-4.16388026849041">
<ele>173.433920166747</ele>
<name>WPT 053</name>
</trkpt>
</trkseg></trk>
</gpx>
Please implement a feature to monitor/reload the .gxp file.
That would be very useful to track a radiosonde live.
A simple solution like reload the .gpx file every 15 seconds is good enough
to make Avenue-GPX-Viewer a great Radiosonde-Live-Traacker.
I attached a screenshot.
I receive the radiosignals of a radiosonde live. The data of the Radiosonde is stored
in a file named radiosonde.gpx.
But if I want to see the live position of the sonde on the map, I have to close Avenue
and load the file radiosonde.gpx again.
I'm loving this app but my primary use case is tracking sailing races. Adding support for Nautical Miles would be fantastic, especially in quick look.
I updated the 1.5.0 of Avenue, and the new feature --- show directional arrows is tured on.
When I open a big gpx file (about 85 MB), Avenue crashed (auto closes and the icon disappears from the dashboard).
If I disable the new feature and open this gpx file again, verything is OK.
I try to simplify the gpx file (from 85 MB to 50 MB), this problem is persist still.
My computer is MBP 19 with macOS Monterey 12.6.
Hi, any possibility of having the altitude profile of a track visible along the bottom of the window? A few other apps do this, but they don't use OpenStreetMaps, which I like! This would be much appreciated. P.
Hey there. Thanks for the app. I downloaded this as a way to view my GPX waypoints from my garmin chartplotter that I use for fishing. It would be incredibly handy to be able to search waypoints and navigate to them from that search.
I'd also like to suggest using a key-down trigger to allow scrolling to zoom in and out. Perhaps Z or CMD
Reported via email.
OS: macOS High Sierra.
Should be specific to High Sierra (or older) only.
Is it possible that an network proxy (socks5) is inregerated by Avenue? With out proxy, it is hardly to open OpenStreetMap in mainland China.
I think this is a duplicate of #9, but since I don't know how to re-open an issue...
I have an Xcode-compatible GPX modified from template:
<?xml version="1.0"?>
<gpx version="1.1" creator="Xcode">
<wpt lat="31.17122146982024" lon="121.0126880692052">
<name>Minhang Dist., SH, China</name>
</wpt>
</gpx>
This should puts me somewhere in Shanghai, China. But Avenue shows the middle of Atlantic Ocean instead. Took me a while to realize this looks like (0, 0) the other issue was talking about.
If I had to guess, it's because the Xcode example uses Waypoints (<wpt>
) and you're reading Track Segments/Points (<trkseg>
/<trkpt>
).
I don't mind if there's an output that Avenue doesn't read. There's thousands of GPS handheld devices out there, and there's got to be some weird or legit format that's not supported. But you really SHOULD NOT fail silently or even show fallback results without explicit warning. Say something went wrong, please.
Currently map uses system accent colour, which may not be easily visible should the colour be not contrasting enough on a map.
Reported via email.
OS: macOS High Sierra.
When I load a GPX file with 12.000 EV charger waypoints, Avenue can cope with that.
But with larger files of 20.000 points, Avenue becomes unresponsive.
Can you make a fix for this ? You can find the gpx files at:
https://www.mostaladda.eu/GPX.htm
GB works but try Germany(OCM_DE.gpx) or even All of Europe. You will get a SPwOD.
Other requests:
Can you also show the description field in a text box so the details of the waypoint are shown when you select the waypoint ?
And zoom to the data ? Now Avenue always starts at the equator and you have to zoom out and scroll up.
Thanks
Probably can use MKSnapshotter with this
In this app, Apple standard map is the default map when the app start.
Add support for default map configuration or save the last selected map would be awesome~ if the configuration is worked on previewer (press space key in Finder) is better.
By the way, Avenue is the best GPX viewer on macOS.
Would be great to be able to open multiple tracks in one window and see them overlaid on a map
Hello dev,
first of all thanks for the nice app!
I have a little feature suggestion that I think may come in handy for others as well: being able to copy the coordinates of an arbitrary point on the map. This could be achieved with a small contextual menu (which could also show the coordinates as a greyed-out item for a quick glance), or maybe just clicking with the right/secondary mouse button.
My personal use case is that I love driving aimlessly and my dashcam records GPX tracks. I often go through the route again on the map and want to see what the Street View and/or Look Around imagery look like for a specific area, and being able to quickly extract the coordinates of a point of my route — or really any point around where I've been — would allow me to use Avenue as my go-to GPX viewer.
I currently fall back to GPXSee for that, but it has a few speed issues on retina screens (not the devlopers' fault, it's an issue with QT on macOS). Avenue is way smoother when panning and zooming around, being a native and modern app.
I would go for a PR, but I'm definitely not proficient enough in Swift and macOS development to even know where to put my hands. :-)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.