1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2025-07-01 05:19:15 +02:00

Compare commits

...

332 Commits
4.13 ... 5.10

Author SHA1 Message Date
bd6c6ef344 Simplified zoom key bindings
Closes #99
2018-05-09 18:18:58 +02:00
dfb48d17bf Ignore missing namespace declarations
Fixes #110
2018-05-08 22:09:39 +02:00
362d065020 Added EST97 PCS 2018-05-05 18:18:54 +02:00
b0f4f2294a Fixed the instant-resize-after-first-load issue 2018-05-04 19:36:37 +02:00
4463241e50 Merge branch 'master' of https://github.com/tumic0/GPXSee 2018-05-03 19:12:22 +02:00
abc987cb0c Code cleanup 2018-05-03 19:11:55 +02:00
81f0c40bec Translations update (#109) 2018-05-02 23:29:25 +02:00
cf81e42f52 Remaining qreal/double separation
+ some minor TrekBuddy atlas issues fixes
2018-05-02 21:25:14 +02:00
1aedc1de93 Fixed scale info when printing/exporting with digital zoom 2018-04-28 22:34:37 +02:00
beb966c58f Fixed broken returning from print mode 2018-04-28 22:18:11 +02:00
9eb2e38499 Includes cleanup 2018-04-28 19:08:21 +02:00
247eef5261 Added download retries in case of connection timeout 2018-04-28 19:07:52 +02:00
9c125a0583 Cosmetics 2018-04-28 16:14:03 +02:00
bcff05c37c Code cleanup 2018-04-28 16:07:32 +02:00
266a1d037e Code cleanup 2018-04-27 23:08:44 +02:00
2b0989438a Version++ 2018-04-27 21:16:11 +02:00
f8c92cf036 Enable authorization for OSM type maps 2018-04-27 21:13:10 +02:00
2fb9a59bf0 A little bit more sane PDF resolutions 2018-04-27 19:37:15 +02:00
566f3185f9 Separated map downloaders, added configurable connection timeouts 2018-04-27 19:31:27 +02:00
62962b5de2 Added new Polish comment entry (#105) 2018-04-23 07:41:56 +02:00
cb09ea0681 Version++ 2018-04-19 19:50:04 +02:00
e5d566807a Fixed HTTP redirects (+addded support for relative URLs)
Fixes #104
2018-04-19 19:46:56 +02:00
0ce2cfd13c Update gpxsee_sv.ts (#102)
* Update gpxsee_sv.ts

* Fixed typo

Sorry! I edited online, on a borrowed windows machine.  :(
2018-04-18 22:03:26 +02:00
e1532b978f The true cause of the map switch offset... 2018-04-18 22:02:24 +02:00
bb10f7c0e1 Version++ 2018-04-17 22:54:42 +02:00
8ff21b5b37 Added the Polish translation into the builds 2018-04-17 22:52:47 +02:00
32f41e5287 Added new PL (Polish) translation file. (#103) 2018-04-17 22:40:12 +02:00
c50e41dea1 Numerical instability fix 2018-04-17 22:26:20 +02:00
e34800b8d1 Updated description (added OziExplorer files) 2018-04-17 21:27:03 +02:00
6642a2f810 Updated USGS maps URLs 2018-04-17 21:25:47 +02:00
55458b04a6 Fixed 1px map change offset & invalid zoom level 2018-04-17 21:24:46 +02:00
9e36451001 RectC now uses the expected axis direction
+ some more refactoring
2018-04-16 20:26:10 +02:00
b26a10a5b3 Added missing initialization 2018-04-16 19:14:27 +02:00
4530ec1354 Code cleanup 2018-04-15 17:32:25 +02:00
f2b72ec1b5 Fixed GeoTIFF on platforms where qreal != double 2018-04-15 16:27:47 +02:00
4b776c8cc1 Replaced remaining qreals in Coordinates logic 2018-04-15 10:42:06 +02:00
d31bf80885 Merget the OziExplorer parsers to a single source file 2018-04-15 10:08:50 +02:00
f77497c93e Translations update 2018-04-15 09:50:20 +02:00
c6ddee8682 Merge branch 'master' of https://github.com/tumic0/GPXSee 2018-04-14 23:35:09 +02:00
0d6bc05818 Added missing GPX icon to OS X bundle copy 2018-04-14 23:33:59 +02:00
fdecbc6cee Merge branch 'master' of https://github.com/tumic0/GPXSee 2018-04-14 22:56:37 +02:00
cad17fb5d3 appdata.xml description update 2018-04-14 22:55:58 +02:00
ced1244cbd Translations update (#100) 2018-04-14 22:34:41 +02:00
3dd22eb2ba Version++ 2018-04-14 21:26:13 +02:00
b12e83043d Updated icns files 2018-04-14 21:21:58 +02:00
6416c81232 Removed debug comment 2018-04-14 20:55:39 +02:00
e5db00a4f4 Added missing density setting 2018-04-14 20:54:18 +02:00
6266d71463 Added icns generation script 2018-04-14 20:30:44 +02:00
daf0cf6f9d Updated forgotten TCX icon 2018-04-14 17:41:20 +02:00
d6b810b6ef Updated icns icons 2018-04-14 17:31:39 +02:00
8f20080a36 Adjusted the SVG template to workaround broken rsvg vertical centering 2018-04-14 17:17:17 +02:00
e112363424 Fixed icon order 2018-04-14 15:10:27 +02:00
a277d0ad4f Added OziExplorer data formats icons & association 2018-04-14 14:04:19 +02:00
d4cd542a20 Grouped OziExplorer files to a single selection 2018-04-14 08:53:37 +02:00
5eaf0455aa Fixed empty CSV fields handling 2018-04-14 00:45:03 +02:00
3f71775101 Fixed broken radius-rect computation
Always use the double type for coordinate related data
2018-04-13 21:14:12 +02:00
f8009b0151 Added support for OziExplorer data files 2018-04-13 20:54:38 +02:00
f64e88290d Update README.md 2018-04-08 21:21:04 +02:00
b4cf614f77 Added missing "other sample dimensions" support for WMS 2018-04-08 19:13:16 +02:00
ca710b6a22 Fixed typo in german ts file
ts files update
2018-04-08 18:50:34 +02:00
c894e75c17 Adjusted stuff to comply with the new map version 1 xsd 2018-04-08 17:48:13 +02:00
259a15332e Fixed QT4 build 2018-04-07 23:04:26 +02:00
c4915891e7 Code cleanup 2018-04-07 18:42:25 +02:00
c5256b25e9 Added missing namespace 2018-04-05 21:13:48 +02:00
81b3a517f8 Use the correct axis order defaults for WMS/WMTS maps 2018-04-05 20:38:23 +02:00
3aa1ab4b4c Set a less restrictive lower bound for WMS scale denominators 2018-04-03 23:14:47 +02:00
d4fb8ed9c9 Fixed error reporting 2018-04-03 23:05:17 +02:00
fb16c3f2db Fixed tile cache reload logic 2018-04-03 22:36:08 +02:00
4096d87a6a Improved default WMS/WMTS style handling 2018-04-03 22:35:13 +02:00
68eac5b8cc Yet another WMS corner case handling fix 2018-04-03 01:14:58 +02:00
88d6904ded Yet another WMS bounding box computation fix 2018-04-03 00:08:01 +02:00
021558b114 Fixed QT4 build 2018-04-02 23:33:10 +02:00
b8815ca9f5 Fixed layer bounding box & scale denominator range joining 2018-04-02 23:27:42 +02:00
e845e216bd Added support for WMS multi-layer maps 2018-04-02 19:59:52 +02:00
60cc869ade The "default" style does not to be set wxplicitly 2018-04-02 18:30:57 +02:00
e3e8fdbacf Fixed WMS 1.1.x support
Added support for HTTP basic authorization
2018-04-01 20:01:25 +02:00
16f2d7ad34 Added support for WMS 1.1.x versions 2018-03-31 11:27:01 +02:00
aecda0e517 Version++ 2018-03-30 10:48:57 +02:00
bf3589812a Initial WMS support (no multi-layer support for now) 2018-03-30 10:25:05 +02:00
8821536419 Fixed most clazy warnings 2018-03-29 00:29:08 +02:00
bda24d9091 Use $HOME as the default open directory (on all platforms) 2018-03-28 02:01:27 +02:00
820e614921 Fixed broken data size copy 2018-03-26 01:02:31 +02:00
35703e3363 Refactoring 2018-03-22 20:00:30 +01:00
a54821863f Includes cleanup 2018-03-21 19:23:17 +01:00
5bc3b2ad05 Merge branch 'master' of https://github.com/tumic0/GPXSee 2018-03-21 19:10:42 +01:00
992fd2c5cd Code cleanup 2018-03-21 19:09:37 +01:00
4b4a1902ef Indent cleanup 2018-03-21 18:52:57 +01:00
7d3bc2112a Update gpxsee.desktop (#85)
Add Swedish translation
2018-03-20 21:29:45 +01:00
4ea2f0752a Do not display negative zeros.
Fixes #86
2018-03-20 21:17:20 +01:00
0bb3b3812c Fixed broken release builds 2018-03-19 22:40:49 +01:00
b23639bef2 Version++ 2018-03-19 20:11:12 +01:00
2d8bf2dbb9 Added missing Swiss grid map file support 2018-03-19 19:56:31 +01:00
29efa84075 Do not depend on the initializing ellipsoid 2018-03-19 19:13:48 +01:00
3d06fe8831 Also clear the error URLs when clearing the tile cache.
Code cleanup.
2018-03-15 18:46:34 +01:00
fe1f6c80b4 Use the correct units for azimuths 2018-03-15 00:27:44 +01:00
35d1e69d7f Merge branch 'master' of https://github.com/tumic0/GPXSee 2018-03-14 07:25:28 +01:00
3043128565 Added finite HTTP response timeout 2018-03-14 07:23:07 +01:00
e56a9e33f3 Added ETRS-TM35FIN (#82) 2018-03-13 09:17:59 +01:00
07aca435d8 Update gpxsee_sv.ts (#81)
Latest strings translated
2018-03-12 20:54:10 +01:00
4e4a3d042a Translations update (#80) 2018-03-12 20:53:15 +01:00
bf5ae22f0d Handle the WGS84 ellipsoid only definitions like the GRS80 ellipsoid only definitions 2018-03-12 20:05:53 +01:00
309fdb675c Removed unused definitions 2018-03-11 20:53:16 +01:00
e0daf367fb Added support for WGS84 GeoTIFF images with the GCS defined using the ellipsoid only 2018-03-11 20:11:42 +01:00
32d8672698 REST variables (dimensions) are apparently case-insensitive 2018-03-11 19:23:40 +01:00
0ef89e200d Translations update 2018-03-11 16:28:30 +01:00
6d6c232dba Version++ 2018-03-11 10:49:02 +01:00
8132ff722d Added support for WMTS dimensions 2018-03-11 10:31:41 +01:00
49792064d7 Fixed error handling 2018-03-11 09:24:04 +01:00
7aef81d823 Added support for EPSG 21781 PCS (Swiss grid)
Fixed swapped LCC1 and LCC2 GeoTIFF coordinate transformation codes
2018-03-11 01:10:24 +01:00
1d3d1aa5b7 Fixed broken zoom rectangle computation 2018-03-10 21:04:14 +01:00
bcd14726f3 Added pace info 2018-03-10 20:25:13 +01:00
fd15799114 Includes cleanup 2018-03-10 09:25:52 +01:00
a8bc2ae4c4 Fixed wrong data type 2018-03-10 08:40:55 +01:00
67aba4703b Some more code cleanup 2018-03-09 23:24:08 +01:00
a64e5e13c3 Remove the 1px offset workaround as it does not work properly anyway... 2018-03-09 21:53:06 +01:00
60fcff7658 Code cleanup 2018-03-09 18:57:23 +01:00
bc881836ac Improved map index caching 2018-03-09 18:56:54 +01:00
de05f5e64b Some more offline map code cleanup 2018-03-08 19:08:39 +01:00
16476dbf74 Offline map code cleanup/refactoring 2018-03-08 02:24:10 +01:00
a21464d98d Added missing virtual destructors 2018-03-08 00:57:09 +01:00
d6746bc444 Code cleanup 2018-03-06 19:28:07 +01:00
e4d8af2040 Update README.md 2018-03-01 20:30:02 +01:00
b40e0d3bbf Fixed accessing of un-initialized variable 2018-03-01 19:06:55 +01:00
9300d671a1 Fixed invalid memory access 2018-03-01 19:06:34 +01:00
b9ed0c3933 Improved scale computation on offline & WMTS maps 2018-02-28 22:19:46 +01:00
46cefada94 Code cleanup 2018-02-27 21:50:29 +01:00
e1e49b32e6 Added some more map definition checking 2018-02-27 01:02:22 +01:00
fa99d01a77 Extended error checking 2018-02-26 22:35:58 +01:00
688e309ef7 Update gpxsee_sv.ts (#79)
Change shortcut letter for "Data"
2018-02-26 19:22:34 +01:00
ae4723acb1 Added GCS 4178 and related PCSs 2018-02-26 19:21:00 +01:00
8c6f70d837 Code cleanup 2018-02-26 19:13:57 +01:00
d1b0e2ef73 Improved error reporting 2018-02-26 19:05:53 +01:00
962310df7d Fixed single point zoom fit on WMTS maps 2018-02-25 19:33:12 +01:00
f8c031e931 Translation update/cleanup 2018-02-25 09:31:19 +01:00
8022a9efbe Update gpxsee_sv.ts (#78) 2018-02-25 09:18:10 +01:00
fbab4b0097 Made the axis order an attribute of the set rather than a separate element 2018-02-25 08:58:40 +01:00
5e5ff6d96f Added support for REST WMTS maps 2018-02-25 02:31:01 +01:00
55e967673c Use image/png as the default image format 2018-02-24 22:31:37 +01:00
757ba6a566 Fixed QT4 build 2018-02-24 16:48:38 +01:00
ee80260e46 Improved capabilities xml parsing
Improved bounds handling
2018-02-24 16:44:30 +01:00
fa3e6d8550 Added error checking 2018-02-24 11:40:54 +01:00
6e95d484cd Added support for OGC:CRS84 CRS to WMTS maps 2018-02-24 11:20:29 +01:00
376587202b Properly handling non-integer tile matrix ids 2018-02-24 10:34:27 +01:00
d11ffc9ea4 Added tile matrix set limits handling
Added axis order setting
2018-02-24 01:59:03 +01:00
bf6ebdc088 Translations update (#77) 2018-02-23 00:13:49 +01:00
619df591e2 Added support for geographic2d "projected" WMTS maps 2018-02-22 21:02:56 +01:00
10aa7d3945 Code cleanup 2018-02-22 18:12:47 +01:00
12319fd8fd Cleanup 2018-02-22 18:07:51 +01:00
ccb7336e3f Added menu accelerator keys 2018-02-22 08:18:10 +01:00
a7fea3878c Version++ 2018-02-22 00:56:49 +01:00
a6cf88aa92 Fixed visual artefacts on transparent tiles 2018-02-22 00:50:45 +01:00
b054cf9046 Using the correct projection for Lambert azimuthal equal area 2018-02-22 00:46:05 +01:00
9c5153f89a Fixed QT4 build 2018-02-21 00:13:11 +01:00
2ebcdeeeff Added ETRS89 data 2018-02-20 23:38:29 +01:00
1bc4833a81 Added initial WMTS support 2018-02-20 23:37:19 +01:00
3202fc4c15 Version++ 2018-02-17 14:23:00 +01:00
5852a9dc09 Removed copy&paste junk 2018-02-17 14:20:23 +01:00
c587d8cd9a Added AppData file 2018-02-17 14:18:40 +01:00
586f30a337 Improved time sequence checking 2018-02-17 13:40:25 +01:00
da06c032bc Added map copyrights info 2018-02-16 22:55:35 +01:00
3def9f95b0 Fixed broken GeoTIFF Mercator coordinates transformation 2018-02-16 19:37:04 +01:00
dc25290637 Added time missing sequence check 2018-02-15 23:03:20 +01:00
9fd5b1b80a Fixed broken map show setting
Code cleanup
2018-02-15 01:44:03 +01:00
94ee5b6e67 Fixed crash on tracks with less than window size points 2018-02-15 01:43:04 +01:00
9556476f1b Merge branch 'master' of https://github.com/tumic0/GPXSee 2018-02-13 23:03:52 +01:00
b6e798f5c3 Removed debug stuff from release builds 2018-02-13 23:03:18 +01:00
e82f2a02c2 Updated Finnish translations (#67) 2018-02-12 23:24:16 +01:00
361ffacc35 Updated Russian translations (#65) 2018-02-12 23:23:38 +01:00
18fc6cc3e2 Fixed nmi conversion issues 2018-02-12 08:23:38 +01:00
9815f0bff2 Version++ 2018-02-12 07:46:20 +01:00
805cbe921c Updated Czech translations 2018-02-12 07:44:00 +01:00
d529055ea3 Update gpxsee_sv.ts (#64)
Latest strings translated
2018-02-12 07:37:58 +01:00
5d590b7c86 Fixed object init loop issue 2018-02-12 01:20:21 +01:00
1003c7b56f ts files update 2018-02-11 23:54:17 +01:00
820f967bd6 Added support for nautical units 2018-02-11 23:51:57 +01:00
27632bf07e Code cleanup 2018-02-11 20:49:26 +01:00
ee5b8fa333 Merge branch 'master' of https://github.com/tumic0/GPXSee 2018-02-11 20:41:21 +01:00
7e42b57d73 Added coordinates format settings
+ Fixed units settings issues
2018-02-11 20:39:39 +01:00
292fc9b433 Added GeoTIFF support info 2018-02-10 23:15:22 +01:00
089d796194 Normalize paths when displaying them. 2018-02-10 16:01:01 +01:00
2677bb77f8 Moved Mac plist to the pkg directory 2018-02-10 11:17:31 +01:00
13dba26d3e Fixed appveyor build script 2018-02-10 10:26:06 +01:00
9675e19b94 Fixed error reporting 2018-02-10 09:57:21 +01:00
8d3fcc7a17 Moved all csv files to a separate directory 2018-02-10 09:29:10 +01:00
8dc5cb7aa8 Load qt translations on OS X 2018-02-10 09:14:24 +01:00
af99e4e05a Fixed translations loading 2018-02-09 22:34:38 +01:00
d18c0d1643 OS X resources fix + cleanup 2018-02-09 22:25:20 +01:00
b9a93d30c0 Create CONTRIBUTING.md 2018-02-09 21:41:16 +01:00
2b6d3799ec Properly load QT translations on windows 2018-02-09 21:04:37 +01:00
152828042f Fixed copy command 2018-02-09 00:11:06 +01:00
e1683a7560 Copy only *.qm files 2018-02-08 20:54:37 +01:00
444cf344a9 Appveyor build fix 2018-02-08 20:31:00 +01:00
7ac0bcf6d2 Fixed typos 2018-02-08 20:24:39 +01:00
a1ac306bfc Added French localization to Windows installer 2018-02-08 20:22:35 +01:00
db4a436ff5 Added the localization files into the bundle 2018-02-08 19:50:15 +01:00
84a6f6c875 Silenced clang warning 2018-02-08 18:34:06 +01:00
06f2c883d4 Added French localization file to qmake 2018-02-08 18:21:04 +01:00
fc95ebfe2b Add French translation file (#62)
in GPXSee/lang/gpxsee_fr.qm
2018-02-08 18:17:29 +01:00
4b64ee467c Moved translations outside of the binary 2018-02-08 18:16:44 +01:00
331cb48e11 Added czech description 2018-02-05 20:45:40 +01:00
fce0c49504 Added missing German strings 2018-02-05 20:39:44 +01:00
f670fb0859 Update gpxsee.desktop (#59) 2018-02-05 19:22:22 +01:00
1e45713aa4 Add .gitignore (#51) 2018-02-05 19:19:11 +01:00
7265c85b83 Update gpxsee_ru.ts, gpxsee_fi.ts (#57) 2018-02-05 19:17:35 +01:00
4d156044d0 Update gpxsee_sv.ts (#58)
New strings translated
2018-02-04 22:51:00 +01:00
17c9416532 Added USGS-imagery map bounds 2018-02-04 15:59:27 +01:00
8e9db2354e Localization update 2018-02-04 15:30:54 +01:00
544a838821 Added linux desktop & MIME files 2018-02-04 14:54:26 +01:00
44d84bf19e API cleanup 2018-01-31 20:03:50 +01:00
4ca9c79dc4 Only 6 projection parameters are required in PCS CSV 2018-01-31 20:02:09 +01:00
cb77cc37c4 Cosmetics 2018-01-31 20:01:49 +01:00
98dd8c264c Replaced data sources info with bare paths info 2018-01-31 08:14:25 +01:00
84d860e2a2 Added recursive POI dir searching to be consistent with map dir searching 2018-01-30 00:30:26 +01:00
e10f8e9c1b Retry... 2018-01-30 00:10:43 +01:00
f433f855a4 Fixed appveyor build 2018-01-29 22:58:57 +01:00
c90a03e22c Enable loading of multiple map files at once 2018-01-29 22:43:55 +01:00
fbc0fd86cf Only allow one map per file 2018-01-29 00:19:57 +01:00
aa07b20aa4 Switched to XML defined online map sources 2018-01-28 22:56:08 +01:00
8a7edcfd8d Properly removed the obsolete header file 2018-01-26 01:33:00 +01:00
04a145a2e7 Using a more human-readable online maps bounds definition 2018-01-26 01:26:26 +01:00
66f0f6a202 Make the conversion functions a little bit more universal. 2018-01-25 20:49:01 +01:00
5698b4c9b0 Fixed another bunch of GeoTIFF handling bugs 2018-01-25 00:19:11 +01:00
77c4eda385 Code cleanup 2018-01-22 00:38:13 +01:00
d6de3acbd2 Added correct handling of the DMS degree definition (9110) 2018-01-22 00:28:58 +01:00
652ed8e919 Fixed broken error handling 2018-01-21 11:38:01 +01:00
58e1980b0d Debug stream code cleanup/unification 2018-01-21 11:19:46 +01:00
fda33cc95b Improved error reporting 2018-01-21 11:17:32 +01:00
02e724fefb Added remaining missing units conversions 2018-01-21 10:18:15 +01:00
da220c4b62 Improved error handling 2018-01-21 01:01:58 +01:00
6ffc71fd36 Improved debuging 2018-01-21 00:48:34 +01:00
635e2f1fe3 Fixed switched lat/lon parameter fetch 2018-01-21 00:47:51 +01:00
23e4e66c1b Use a PCS file format more compatible with the EPSG PCS database 2018-01-20 23:51:39 +01:00
1739625896 Added support for prime meridians and angular units to GCS 2018-01-20 20:13:56 +01:00
e9ef68a81c Improved map file selection 2018-01-14 23:58:11 +01:00
06205470fe Fixed broken online map lists loading 2018-01-14 23:46:39 +01:00
c535632eb6 Updated map info text
Deleted obsolete stuff
2018-01-14 23:33:13 +01:00
9f1f06577c Merge branch 'master' of https://github.com/tumic0/GPXSee 2018-01-14 23:04:15 +01:00
0e45831111 Do not require a directory per map anymore 2018-01-14 23:03:27 +01:00
0c8e864d32 Return the correct error value 2018-01-14 22:51:20 +01:00
c9cac70e1f Add Finnish translation (#50) 2018-01-11 10:34:00 +01:00
045cbe81bf Added support for matrix-defined transformations
Fixed transformation matrix computation
2018-01-10 01:28:40 +01:00
bffd1d9172 Merge branch 'master' of https://github.com/tumic0/GPXSee 2018-01-09 23:21:05 +01:00
b8102d6bb7 Do a propper cleanup on error 2018-01-09 23:19:35 +01:00
fc80bd1b7c Code cleanup 2018-01-09 23:19:24 +01:00
2441c4996d Fix typos in Russian translation (#49) 2018-01-09 22:57:58 +01:00
89878fade1 Made the MM/II code work on Windows as well 2018-01-09 09:39:35 +01:00
83b7741ed9 Added missing include 2018-01-09 09:35:56 +01:00
f44b14473d Fixed broken MM files size issue 2018-01-09 01:29:20 +01:00
699de8b133 Added support for files referenced using geodetic datum+projection combination 2018-01-09 00:26:18 +01:00
b7dd11fa1f Add Russian translation (#48) 2018-01-08 23:57:33 +01:00
0a32a9b865 Merge branch 'geotiff' 2018-01-08 23:53:18 +01:00
02ad65461c Merge branch 'master' of https://github.com/tumic0/GPXSee 2018-01-08 23:49:00 +01:00
5fa52b0166 Add support for GeoTIFF images 2018-01-08 23:47:45 +01:00
99fa39030f Version++ 2018-01-08 02:31:22 +01:00
6ebf749bdc Added back missing cache reset (causing huge redraw rects causing system memory exhaustion) 2018-01-08 02:25:14 +01:00
5e74642dc8 Version++ 2018-01-06 21:53:13 +01:00
b1d1cae9dd Added support for negative altitude values.
Fixes #46
2018-01-06 21:51:07 +01:00
84f41b5aa9 Added support for negative altitude values.
Fixes #43.
2018-01-06 21:44:03 +01:00
de2278ba04 Update gpxsee_sv.ts (#44)
New strings translated
2018-01-05 09:34:40 +01:00
e90f152432 Report correct file in error message 2018-01-05 00:06:07 +01:00
8deab1c9ca 6 + the leading A of course... 2018-01-04 17:36:22 +01:00
51e0f9a9c6 A records must only be >= 6, not 9
Fixes #42
2018-01-01 20:59:25 +01:00
e330abe180 Report the correct file on error 2017-12-23 11:10:39 +01:00
53a4b45b7b Fixed broken scene centering in some resize cases 2017-12-07 21:05:00 +01:00
53229681d2 Translations update 2017-12-03 16:52:12 +01:00
b2df7d207f Version++ 2017-12-03 14:21:52 +01:00
1ff2162811 Added the "always show map" option 2017-12-03 14:18:41 +01:00
0f10c7596b Removed some more unneeded code 2017-12-03 13:37:18 +01:00
4cc3bc28e2 Do not clear the image cache between files 2017-12-03 13:07:52 +01:00
3ce1918645 Speed up the osx build 2017-12-03 12:11:54 +01:00
d70f0cf9e0 Added missing QT path on OS X 2017-12-03 12:05:21 +01:00
34c5ba4669 Fixed typos 2017-12-03 11:52:41 +01:00
afbb8c3284 Added Travis CI OS X build 2017-12-03 11:20:30 +01:00
5bdc263cda Moved all the map bounds checking where it belongs 2017-12-03 10:41:07 +01:00
179f2f1451 Removed obsolete code 2017-12-03 10:24:24 +01:00
92e772a02b Fixed some corner case map drawing issues 2017-12-03 10:17:29 +01:00
cbdfe4c105 Added slider/marker color setting 2017-12-03 00:36:52 +01:00
a20a268975 includes cleanup 2017-12-02 20:33:29 +01:00
48e972f920 Include paths unification 2017-12-02 20:28:53 +01:00
c38f50538e Do not use the alpha channel for graphs 2017-12-02 18:24:44 +01:00
53147b5e6e Code cleanup 2017-12-01 22:24:04 +01:00
6c6e384862 Some more code cleanup 2017-12-01 21:27:12 +01:00
90b780a444 Code cleanup 2017-12-01 20:52:34 +01:00
56d1ac7ff2 Fixed broken zoom handling 2017-12-01 19:54:04 +01:00
00acd48009 Fixed some more track display corner cases + refactoring 2017-12-01 00:22:16 +01:00
e30078a63e Code cleanup 2017-11-27 23:50:55 +01:00
51c0c31838 Fixed broken map scale computation 2017-11-27 08:48:37 +01:00
bc218c9f65 Moved the datums initialization where it belongs 2017-11-26 22:52:50 +01:00
56e4c80999 Project structure refactoring 2017-11-26 18:54:03 +01:00
443b916301 Optimization 2017-11-19 23:01:17 +01:00
8675a0e945 Made the Lambert azimuthal equal-area projection naming consistent with other projections namings 2017-11-14 23:30:25 +01:00
0894fb0ddf Added support for Lambert Azimuthal Equal Area projections 2017-11-14 22:17:59 +01:00
73e15f8f11 Includes cleanup 2017-11-14 22:17:09 +01:00
0fe7843e52 Added debug output for tiles 2017-11-14 22:15:46 +01:00
e76439bb6e Added support for TCX multi-sport activities 2017-10-14 22:57:03 +02:00
b54aeff369 Fixed copy&paste error, code cleanup 2017-10-13 18:15:37 +02:00
72968efeef Added support for Temperature, Cadence and Heartrate in KML files 2017-10-13 08:15:54 +02:00
ec3f529b0f Version++ 2017-10-11 22:44:33 +02:00
57a171ee8c Fixed broaken loading of KML files with multitracks and folder element outside document element 2017-10-11 22:41:01 +02:00
d3193abd0b Improved map view map init 2017-10-11 22:39:42 +02:00
6809853a8a Added OS X signing certificate 2017-10-05 22:07:31 +02:00
3155e8436b Optimization & code cleanup 2017-10-04 23:15:39 +02:00
69f9d05ccb Update gpxsee_sv.ts (#36) 2017-10-02 22:37:15 +02:00
e24a3cd99a Silenced compiler warning 2017-09-30 09:52:36 +02:00
a94fa9f0ea Translations update 2017-09-29 11:59:55 +02:00
c4f2a44410 Version++ 2017-09-29 11:44:44 +02:00
da4a51e7fa Improved graph slider info 2017-09-29 11:43:09 +02:00
bb47a34823 Translations update 2017-09-26 07:51:55 +02:00
11196c0e35 Improved graph type/time type switching 2017-09-26 07:46:46 +02:00
00ef815738 Unified average speed handling 2017-09-25 19:56:04 +02:00
64f685cf60 Removed accidentally commited files 2017-09-24 22:11:50 +02:00
7ab13ec8e5 Added missing Q_OBJECT macro 2017-09-24 20:13:13 +02:00
d3fbbecb2d Graph items are now selecteble like path items (+ tool tips) 2017-09-24 19:54:13 +02:00
7bc83603ca Fixed the 1px content offset issue on zoom/map change 2017-09-17 14:10:37 +02:00
2cd35b139e Removed obsolete strings, added missing punctuation 2017-09-15 18:59:22 +02:00
a74afa54fd Update gpxsee_sv.ts (#32) 2017-09-15 18:55:49 +02:00
753c4e8db0 Do not enable alpha channel for background colors 2017-09-15 08:30:00 +02:00
d0b3f48caf Version++ 2017-09-15 00:41:48 +02:00
e47cd1be7e Translations update 2017-09-15 00:39:59 +02:00
d1ba35f012 Updated maximal zoom for OpenTopo map 2017-09-15 00:35:11 +02:00
b9489afbfe Settings improvements and code cleanup 2017-09-15 00:07:09 +02:00
a7506cfd82 Merge branch 'master' of https://github.com/tumic0/GPXSee 2017-09-14 20:22:11 +02:00
c060abe6a7 Silenced valgrind warnings 2017-09-14 20:19:19 +02:00
b457fc430c Fixed broken parsing of TCX files with heart rate data 2017-09-14 20:18:34 +02:00
89947851fd Fixed invalid memory access 2017-09-14 20:18:02 +02:00
7d40dfddb2 Fixed broken units setting for cadence, heart rate and power graphs 2017-09-14 20:16:42 +02:00
151ae03b53 Fixed broken options layout on OS X 2017-09-10 12:53:51 +02:00
9fd8b84c3b Added waypoints/POI size/color settings 2017-09-10 12:42:49 +02:00
47683e5447 Added map background color setting.
Redesigned appearance settings tab.
2017-09-10 00:09:39 +02:00
84bcf07bd4 Translations update 2017-09-09 22:04:47 +02:00
cc694971be Added support for limiting the maximal zoom level of online map sources 2017-09-09 12:33:43 +02:00
ba856d7eb6 Adjusted the scale bar (text) size to the remaining content in plot mode 2017-09-09 10:51:19 +02:00
310 changed files with 21462 additions and 6489 deletions

View File

@ -1,4 +1,4 @@
version: 4.13.{build}
version: 5.10.{build}
configuration: Release
platform: Any CPU
environment:
@ -34,11 +34,11 @@ build_script:
copy pkg\%NSI% installer
copy pkg\datums.csv installer
xcopy pkg\csv installer\csv /i
copy pkg\ellipsoids.csv installer
xcopy pkg\maps installer\maps /i
copy pkg\maps.txt installer
xcopy lang\*.qm installer\translations\ /sy
copy licence.txt installer
@ -49,4 +49,4 @@ build_script:
makensis.exe installer\%NSI%
artifacts:
- path: installer\GPXSee-*.exe
- path: installer\GPXSee-*.exe

13
.gitignore vendored Normal file
View File

@ -0,0 +1,13 @@
# C++ objects and libs
*.o
# Qt-es
/.qmake.stash
moc_*.cpp
moc_*.h
qrc_*.cpp
Makefile*
*.qm
# Binary
GPXSee

View File

@ -1,9 +1,18 @@
language: c++
os:
- linux
- osx
before_install:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq update; fi
install:
- sudo apt-get install libqt4-dev
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install qt; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libqt4-dev; fi
script:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then PATH=/usr/local/opt/qt/bin/:${PATH}; fi
- lrelease gpxsee.pro
- qmake gpxsee.pro
- make

7
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,7 @@
Only localization contributions are accepted at the moment, code pull requests will be rejected.
The rationale is, that I want leave the possibility to distribute GPXsee builds in the OS X/Windows
stores under a non-GPL licence open. In the future, code pull requests under a QT-like contribution
agreement [1] will be possible.
[1] https://d21tv0wm5mksdn.cloudfront.net/wp-content/uploads/2015/03/Qt-ContributionLicenseAgreement_v1_2_FINAL.pdf

View File

@ -1,17 +1,17 @@
# GPXSee
GPXSee is a Qt-based GPS log file viewer and analyzer that supports GPX, TCX,
KML, FIT, IGC and NMEA files.
KML, FIT, IGC, NMEA and OziExplorer files.
## Features
* User-definable online maps.
* Offline maps (OziExplorer maps and TrekBuddy maps/atlases).
* User-definable online maps (OSM/Google tiles, WMTS, WMS).
* Offline maps (OziExplorer maps, TrekBuddy maps/atlases, GeoTIFF images).
* Elevation, speed, heart rate, cadence, power and temperature graphs.
* Support for multiple tracks in one view.
* Support for POI files.
* Print/export to PDF.
* Full-screen mode.
* Native GUI for Windows, Mac OS X and Linux.
* Opens GPX, TCX, FIT, KML, IGC, NMEA and Garmin CSV files.
* Opens GPX, TCX, FIT, KML, IGC, NMEA, OziExplorer (PLT, RTE, WPT) and Garmin CSV files.
![GPXSee - Linux](https://a.fsdn.com/con/app/proj/gpxsee/screenshots/linux2.png)

BIN
cert/mac/gpxsee.cer Normal file

Binary file not shown.

View File

@ -1,5 +1,5 @@
TARGET = GPXSee
VERSION = 4.13
VERSION = 5.10
QT += core \
gui \
network
@ -7,185 +7,254 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
greaterThan(QT_MAJOR_VERSION, 4): QT += printsupport
lessThan(QT_VERSION, 5.4): QT += opengl
macx: QT += opengl
INCLUDEPATH += ./src
HEADERS += src/config.h \
src/icons.h \
src/gui.h \
src/poi.h \
src/rtree.h \
src/axisitem.h \
src/keys.h \
src/slideritem.h \
src/markeritem.h \
src/infoitem.h \
src/elevationgraph.h \
src/speedgraph.h \
src/sliderinfoitem.h \
src/filebrowser.h \
src/map.h \
src/onlinemap.h \
src/downloader.h \
src/units.h \
src/scaleitem.h \
src/waypoint.h \
src/track.h \
src/graphview.h \
src/trackpoint.h \
src/waypointitem.h \
src/palette.h \
src/heartrategraph.h \
src/range.h \
src/cpuarch.h \
src/settings.h \
src/app.h \
src/trackinfo.h \
src/exportdialog.h \
src/fileselectwidget.h \
src/margins.h \
src/temperaturegraph.h \
src/graphtab.h \
src/misc.h \
src/trackitem.h \
src/tooltip.h \
src/route.h \
src/routeitem.h \
src/graphitem.h \
src/graph.h \
src/pathitem.h \
src/pathview.h \
src/griditem.h \
src/data.h \
src/gpxparser.h \
src/tcxparser.h \
src/parser.h \
src/csvparser.h \
src/coordinates.h \
src/tile.h \
src/rd.h \
src/wgs84.h \
src/kmlparser.h \
src/trackdata.h \
src/routedata.h \
src/fitparser.h \
src/format.h \
src/path.h \
src/assert.h \
src/cadencegraph.h \
src/powergraph.h \
src/igcparser.h \
src/nmeaparser.h \
src/optionsdialog.h \
src/colorbox.h \
src/stylecombobox.h \
src/opengl.h \
src/timetype.h \
src/emptymap.h \
src/offlinemap.h \
src/matrix.h \
src/tar.h \
src/atlas.h \
src/projection.h \
src/mercator.h \
src/transversemercator.h \
src/latlon.h \
src/utm.h \
src/lambertconic.h \
src/ellipsoid.h \
src/ozf.h \
src/datum.h \
src/maplist.h \
src/albersequal.h \
src/oddspinbox.h \
src/rectc.h \
src/searchpointer.h \
src/percentslider.h
src/common/staticassert.h \
src/common/coordinates.h \
src/common/range.h \
src/common/rectc.h \
src/common/wgs84.h \
src/common/str2int.h \
src/GUI/app.h \
src/GUI/icons.h \
src/GUI/gui.h \
src/GUI/axisitem.h \
src/GUI/keys.h \
src/GUI/slideritem.h \
src/GUI/markeritem.h \
src/GUI/infoitem.h \
src/GUI/elevationgraph.h \
src/GUI/speedgraph.h \
src/GUI/sliderinfoitem.h \
src/GUI/filebrowser.h \
src/GUI/units.h \
src/GUI/scaleitem.h \
src/GUI/graphview.h \
src/GUI/waypointitem.h \
src/GUI/palette.h \
src/GUI/heartrategraph.h \
src/GUI/trackinfo.h \
src/GUI/exportdialog.h \
src/GUI/fileselectwidget.h \
src/GUI/margins.h \
src/GUI/temperaturegraph.h \
src/GUI/graphtab.h \
src/GUI/trackitem.h \
src/GUI/tooltip.h \
src/GUI/routeitem.h \
src/GUI/graphitem.h \
src/GUI/pathitem.h \
src/GUI/griditem.h \
src/GUI/format.h \
src/GUI/cadencegraph.h \
src/GUI/powergraph.h \
src/GUI/optionsdialog.h \
src/GUI/colorbox.h \
src/GUI/stylecombobox.h \
src/GUI/opengl.h \
src/GUI/timetype.h \
src/GUI/percentslider.h \
src/GUI/elevationgraphitem.h \
src/GUI/speedgraphitem.h \
src/GUI/heartrategraphitem.h \
src/GUI/temperaturegraphitem.h \
src/GUI/cadencegraphitem.h \
src/GUI/powergraphitem.h \
src/GUI/oddspinbox.h \
src/GUI/settings.h \
src/GUI/nicenum.h \
src/GUI/cpuarch.h \
src/GUI/searchpointer.h \
src/GUI/mapview.h \
src/map/projection.h \
src/map/ellipsoid.h \
src/map/datum.h \
src/map/mercator.h \
src/map/transversemercator.h \
src/map/latlon.h \
src/map/utm.h \
src/map/lambertconic.h \
src/map/lambertazimuthal.h \
src/map/albersequal.h \
src/map/map.h \
src/map/maplist.h \
src/map/onlinemap.h \
src/map/downloader.h \
src/map/tile.h \
src/map/emptymap.h \
src/map/offlinemap.h \
src/map/tar.h \
src/map/ozf.h \
src/map/atlas.h \
src/map/matrix.h \
src/map/geotiff.h \
src/map/pcs.h \
src/map/transform.h \
src/map/mapfile.h \
src/map/tifffile.h \
src/map/gcs.h \
src/map/angularunits.h \
src/map/primemeridian.h \
src/map/linearunits.h \
src/map/ct.h \
src/map/mapsource.h \
src/map/tileloader.h \
src/map/wmtsmap.h \
src/map/wmts.h \
src/map/wmsmap.h \
src/map/wms.h \
src/map/crs.h \
src/map/coordinatesystem.h \
src/map/pointd.h \
src/data/graph.h \
src/data/poi.h \
src/data/waypoint.h \
src/data/track.h \
src/data/route.h \
src/data/trackpoint.h \
src/data/data.h \
src/data/parser.h \
src/data/trackdata.h \
src/data/routedata.h \
src/data/path.h \
src/data/rtree.h \
src/data/gpxparser.h \
src/data/tcxparser.h \
src/data/csvparser.h \
src/data/kmlparser.h \
src/data/fitparser.h \
src/data/igcparser.h \
src/data/nmeaparser.h \
src/data/oziparsers.h \
src/map/rectd.h
SOURCES += src/main.cpp \
src/gui.cpp \
src/poi.cpp \
src/axisitem.cpp \
src/slideritem.cpp \
src/markeritem.cpp \
src/infoitem.cpp \
src/elevationgraph.cpp \
src/speedgraph.cpp \
src/sliderinfoitem.cpp \
src/filebrowser.cpp \
src/onlinemap.cpp \
src/downloader.cpp \
src/scaleitem.cpp \
src/track.cpp \
src/graphview.cpp \
src/waypointitem.cpp \
src/palette.cpp \
src/heartrategraph.cpp \
src/range.cpp \
src/app.cpp \
src/trackinfo.cpp \
src/exportdialog.cpp \
src/fileselectwidget.cpp \
src/temperaturegraph.cpp \
src/trackpoint.cpp \
src/misc.cpp \
src/waypoint.cpp \
src/trackitem.cpp \
src/tooltip.cpp \
src/route.cpp \
src/routeitem.cpp \
src/graphitem.cpp \
src/pathitem.cpp \
src/pathview.cpp \
src/griditem.cpp \
src/data.cpp \
src/gpxparser.cpp \
src/tcxparser.cpp \
src/csvparser.cpp \
src/coordinates.cpp \
src/kmlparser.cpp \
src/fitparser.cpp \
src/format.cpp \
src/graph.cpp \
src/cadencegraph.cpp \
src/powergraph.cpp \
src/igcparser.cpp \
src/path.cpp \
src/nmeaparser.cpp \
src/optionsdialog.cpp \
src/colorbox.cpp \
src/stylecombobox.cpp \
src/emptymap.cpp \
src/offlinemap.cpp \
src/matrix.cpp \
src/tar.cpp \
src/atlas.cpp \
src/mercator.cpp \
src/transversemercator.cpp \
src/utm.cpp \
src/lambertconic.cpp \
src/ellipsoid.cpp \
src/ozf.cpp \
src/datum.cpp \
src/maplist.cpp \
src/albersequal.cpp \
src/oddspinbox.cpp \
src/rectc.cpp \
src/percentslider.cpp
src/common/coordinates.cpp \
src/common/rectc.cpp \
src/common/range.cpp \
src/common/str2int.cpp \
src/GUI/app.cpp \
src/GUI/gui.cpp \
src/GUI/axisitem.cpp \
src/GUI/slideritem.cpp \
src/GUI/markeritem.cpp \
src/GUI/infoitem.cpp \
src/GUI/elevationgraph.cpp \
src/GUI/speedgraph.cpp \
src/GUI/sliderinfoitem.cpp \
src/GUI/filebrowser.cpp \
src/GUI/scaleitem.cpp \
src/GUI/graphview.cpp \
src/GUI/waypointitem.cpp \
src/GUI/palette.cpp \
src/GUI/heartrategraph.cpp \
src/GUI/trackinfo.cpp \
src/GUI/exportdialog.cpp \
src/GUI/fileselectwidget.cpp \
src/GUI/temperaturegraph.cpp \
src/GUI/trackitem.cpp \
src/GUI/tooltip.cpp \
src/GUI/routeitem.cpp \
src/GUI/graphitem.cpp \
src/GUI/pathitem.cpp \
src/GUI/griditem.cpp \
src/GUI/format.cpp \
src/GUI/cadencegraph.cpp \
src/GUI/powergraph.cpp \
src/GUI/optionsdialog.cpp \
src/GUI/colorbox.cpp \
src/GUI/stylecombobox.cpp \
src/GUI/oddspinbox.cpp \
src/GUI/percentslider.cpp \
src/GUI/elevationgraphitem.cpp \
src/GUI/speedgraphitem.cpp \
src/GUI/heartrategraphitem.cpp \
src/GUI/temperaturegraphitem.cpp \
src/GUI/cadencegraphitem.cpp \
src/GUI/powergraphitem.cpp \
src/GUI/nicenum.cpp \
src/GUI/mapview.cpp \
src/map/maplist.cpp \
src/map/onlinemap.cpp \
src/map/downloader.cpp \
src/map/emptymap.cpp \
src/map/offlinemap.cpp \
src/map/tar.cpp \
src/map/atlas.cpp \
src/map/ozf.cpp \
src/map/matrix.cpp \
src/map/ellipsoid.cpp \
src/map/datum.cpp \
src/map/mercator.cpp \
src/map/transversemercator.cpp \
src/map/utm.cpp \
src/map/lambertconic.cpp \
src/map/albersequal.cpp \
src/map/lambertazimuthal.cpp \
src/map/geotiff.cpp \
src/map/pcs.cpp \
src/map/transform.cpp \
src/map/mapfile.cpp \
src/map/tifffile.cpp \
src/map/projection.cpp \
src/map/gcs.cpp \
src/map/angularunits.cpp \
src/map/primemeridian.cpp \
src/map/linearunits.cpp \
src/map/mapsource.cpp \
src/map/tileloader.cpp \
src/map/wmtsmap.cpp \
src/map/wmts.cpp \
src/map/wmsmap.cpp \
src/map/wms.cpp \
src/map/crs.cpp \
src/map/coordinatesystem.cpp \
src/data/data.cpp \
src/data/poi.cpp \
src/data/track.cpp \
src/data/route.cpp \
src/data/path.cpp \
src/data/gpxparser.cpp \
src/data/tcxparser.cpp \
src/data/csvparser.cpp \
src/data/kmlparser.cpp \
src/data/fitparser.cpp \
src/data/igcparser.cpp \
src/data/nmeaparser.cpp \
src/data/oziparsers.cpp
RESOURCES += gpxsee.qrc
TRANSLATIONS = lang/gpxsee_cs.ts \
lang/gpxsee_sv.ts \
lang/gpxsee_de.ts
lang/gpxsee_de.ts \
lang/gpxsee_ru.ts \
lang/gpxsee_fi.ts \
lang/gpxsee_fr.ts \
lang/gpxsee_pl.ts
macx {
ICON = icons/gpxsee.icns
QMAKE_INFO_PLIST = Info.plist
APP_RESOURCES.files = icons/gpx.icns \
QMAKE_INFO_PLIST = pkg/Info.plist
LOCALE.path = Contents/Resources/translations
LOCALE.files = lang/gpxsee_cs.qm \
lang/gpxsee_de.qm \
lang/gpxsee_fi.qm \
lang/gpxsee_fr.qm \
lang/gpxsee_ru.qm \
lang/gpxsee_sv.qm \
lang/gpxsee_pl.qm
CSV.path = Contents/Resources
CSV.files = pkg/csv
MAPS.path = Contents/Resources
MAPS.files = pkg/maps
ICONS.path = Contents/Resources/icons
ICONS.files = icons/gpx.icns \
icons/tcx.icns \
icons/kml.icns \
icons/fit.icns \
icons/igc.icns \
icons/nmea.icns \
pkg/maps.txt \
pkg/ellipsoids.csv \
pkg/datums.csv
APP_RESOURCES.path = Contents/Resources
QMAKE_BUNDLE_DATA += APP_RESOURCES
icons/plt.icns \
icons/rte.icns \
icons/wpt.icns
QMAKE_BUNDLE_DATA += LOCALE MAPS ICONS CSV
}
win32 {
RC_ICONS = icons/gpxsee.ico \
@ -194,6 +263,9 @@ win32 {
icons/kml.ico \
icons/fit.ico \
icons/igc.ico \
icons/nmea.ico
icons/nmea.ico \
icons/plt.ico \
icons/rte.ico \
icons/wpt.ico
}
DEFINES += APP_VERSION=\\\"$$VERSION\\\"

View File

@ -20,8 +20,5 @@
<file>icons/system-run.png</file>
<file>icons/document-print-preview.png</file>
<file>icons/view-filter.png</file>
<file>lang/gpxsee_cs.qm</file>
<file>lang/gpxsee_sv.qm</file>
<file>lang/gpxsee_de.qm</file>
</qresource>
</RCC>

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 302 KiB

View File

@ -1,171 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg3390"
height="185"
width="185"
inkscape:version="0.91 r13725"
sodipodi:docname="fit.svg">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1440"
inkscape:window-height="815"
id="namedview3427"
showgrid="false"
inkscape:zoom="3.1351351"
inkscape:cx="92.5"
inkscape:cy="92.5"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg3390" />
<metadata
id="metadata3404">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3402" />
<path
style="fill:#ffffff;stroke:#999999;stroke-width:2.18774867"
id="path3392"
d="m 128.23996,2.2548915 -95.377018,0 0,181.0580085 134.394868,0 0,-141.313567 z m 0,0 0,39.7444415 39.01785,0" />
<rect
y="124.9782"
x="16.573463"
height="49.84631"
width="120.3215"
id="rect3426"
style="fill:#006600;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<g
id="g3828"
transform="matrix(0.89093793,0,0,0.84489692,3.5017807,-51.565424)">
<g
id="g3715">
<circle
style="fill:#000000"
cx="113"
cy="90.875"
id="ellipse3717"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2;stroke-linejoin:round"
cx="113"
cy="90.875"
id="ellipse3719"
r="7.0209999" />
</g>
<polyline
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:4"
points="62.3563,178.566 73.5,125.854 96,151.875 113,90.875 136.5,172.375 148.831,160.03 "
id="polyline3721" />
<g
id="g3723">
<circle
style="fill:#000000"
cx="73.5"
cy="125.854"
id="ellipse3725"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="73.5"
cy="125.854"
id="ellipse3727"
r="7.0209999" />
</g>
<g
id="g3729">
<circle
style="fill:#000000"
cx="136.5"
cy="172.375"
id="ellipse3731"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="136.5"
cy="172.375"
id="ellipse3733"
r="7.0209999" />
</g>
<g
id="g3735">
<circle
style="fill:#000000"
cx="60.700001"
cy="186.39999"
id="ellipse3737"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="60.700001"
cy="186.39999"
id="ellipse3739"
r="7.0209999" />
</g>
<g
id="g3741">
<circle
style="fill:#000000"
cx="154.5"
cy="154.354"
id="ellipse3743"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="154.5"
cy="154.354"
id="ellipse3745"
r="7.0209999" />
</g>
<g
id="g3747">
<circle
style="fill:#000000"
cx="96"
cy="151.875"
id="ellipse3749"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="96"
cy="151.875"
id="ellipse3751"
r="7.0209999" />
</g>
</g>
<text
transform="scale(0.9437456,1.0596076)"
id="text3921"
y="155.86783"
x="44.388157"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
sodipodi:linespacing="100%"><tspan
sodipodi:role="line"
id="tspan3429"
x="44.388157"
y="155.86783">FIT</tspan></text>
</svg>

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 305 KiB

View File

@ -1,146 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
id="svg3390"
height="185"
width="185">
<metadata
id="metadata3404">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3402" />
<path
style="fill:#ffffff;stroke:#999999;stroke-width:2.18774867"
id="path3392"
d="m 128.23996,2.2548915 -95.377018,0 0,181.0580085 134.394868,0 0,-141.313567 z m 0,0 0,39.7444415 39.01785,0" />
<rect
y="124.9782"
x="16.573463"
height="49.84631"
width="120.3215"
id="rect3426"
style="fill:#003399;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<g
id="g3828"
transform="matrix(0.89093793,0,0,0.84489692,3.5017807,-51.565424)">
<g
id="g3715">
<circle
style="fill:#000000"
cx="113"
cy="90.875"
id="ellipse3717"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2;stroke-linejoin:round"
cx="113"
cy="90.875"
id="ellipse3719"
r="7.0209999" />
</g>
<polyline
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:4"
points="62.3563,178.566 73.5,125.854 96,151.875 113,90.875 136.5,172.375 148.831,160.03 "
id="polyline3721" />
<g
id="g3723">
<circle
style="fill:#000000"
cx="73.5"
cy="125.854"
id="ellipse3725"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="73.5"
cy="125.854"
id="ellipse3727"
r="7.0209999" />
</g>
<g
id="g3729">
<circle
style="fill:#000000"
cx="136.5"
cy="172.375"
id="ellipse3731"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="136.5"
cy="172.375"
id="ellipse3733"
r="7.0209999" />
</g>
<g
id="g3735">
<circle
style="fill:#000000"
cx="60.700001"
cy="186.39999"
id="ellipse3737"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="60.700001"
cy="186.39999"
id="ellipse3739"
r="7.0209999" />
</g>
<g
id="g3741">
<circle
style="fill:#000000"
cx="154.5"
cy="154.354"
id="ellipse3743"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="154.5"
cy="154.354"
id="ellipse3745"
r="7.0209999" />
</g>
<g
id="g3747">
<circle
style="fill:#000000"
cx="96"
cy="151.875"
id="ellipse3749"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="96"
cy="151.875"
id="ellipse3751"
r="7.0209999" />
</g>
</g>
<text
transform="scale(0.9437456,1.0596076)"
id="text3921"
y="155.86783"
x="31.672857"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="155.86783"
x="31.672857"
id="tspan3923"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start">GPX</tspan></text>
</svg>

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 304 KiB

View File

@ -1,145 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
width="185"
height="185"
id="svg3390"
version="1.1">
<metadata
id="metadata3404">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3402" />
<path
d="m 128.23996,2.2548915 -95.377018,0 0,181.0580085 134.394868,0 0,-141.313567 z m 0,0 0,39.7444415 39.01785,0"
id="path3392"
style="fill:#ffffff;stroke:#999999;stroke-width:2.18774867" />
<rect
style="fill:#ff3300;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect3426"
width="120.3215"
height="49.84631"
x="16.573463"
y="124.9782" />
<g
transform="matrix(0.89093793,0,0,0.84489692,3.5017807,-51.565424)"
id="g3828">
<g
id="g3715">
<circle
r="7.0209999"
id="ellipse3717"
cy="90.875"
cx="113"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3719"
cy="90.875"
cx="113"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2;stroke-linejoin:round" />
</g>
<polyline
id="polyline3721"
points="62.3563,178.566 73.5,125.854 96,151.875 113,90.875 136.5,172.375 148.831,160.03 "
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:4" />
<g
id="g3723">
<circle
r="7.0209999"
id="ellipse3725"
cy="125.854"
cx="73.5"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3727"
cy="125.854"
cx="73.5"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
<g
id="g3729">
<circle
r="7.0209999"
id="ellipse3731"
cy="172.375"
cx="136.5"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3733"
cy="172.375"
cx="136.5"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
<g
id="g3735">
<circle
r="7.0209999"
id="ellipse3737"
cy="186.39999"
cx="60.700001"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3739"
cy="186.39999"
cx="60.700001"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
<g
id="g3741">
<circle
r="7.0209999"
id="ellipse3743"
cy="154.354"
cx="154.5"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3745"
cy="154.354"
cx="154.5"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
<g
id="g3747">
<circle
r="7.0209999"
id="ellipse3749"
cy="151.875"
cx="96"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3751"
cy="151.875"
cx="96"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="40.149723"
y="155.86783"
id="text3921"
transform="scale(0.9437456,1.0596076)"><tspan
y="155.86783"
x="40.149723"
id="tspan3448">IGC</tspan></text>
</svg>

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 304 KiB

View File

@ -1,143 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
width="185"
height="185"
id="svg3390"
version="1.1">
<metadata
id="metadata3404">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3402" />
<path
d="m 128.23996,2.2548915 -95.377018,0 0,181.0580085 134.394868,0 0,-141.313567 z m 0,0 0,39.7444415 39.01785,0"
id="path3392"
style="fill:#ffffff;stroke:#999999;stroke-width:2.18774867" />
<rect
style="fill:#990000;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect3426"
width="120.3215"
height="49.84631"
x="16.573463"
y="124.9782" />
<g
transform="matrix(0.89093793,0,0,0.84489692,3.5017807,-51.565424)"
id="g3828">
<g
id="g3715">
<circle
r="7.0209999"
id="ellipse3717"
cy="90.875"
cx="113"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3719"
cy="90.875"
cx="113"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2;stroke-linejoin:round" />
</g>
<polyline
id="polyline3721"
points="62.3563,178.566 73.5,125.854 96,151.875 113,90.875 136.5,172.375 148.831,160.03 "
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:4" />
<g
id="g3723">
<circle
r="7.0209999"
id="ellipse3725"
cy="125.854"
cx="73.5"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3727"
cy="125.854"
cx="73.5"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
<g
id="g3729">
<circle
r="7.0209999"
id="ellipse3731"
cy="172.375"
cx="136.5"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3733"
cy="172.375"
cx="136.5"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
<g
id="g3735">
<circle
r="7.0209999"
id="ellipse3737"
cy="186.39999"
cx="60.700001"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3739"
cy="186.39999"
cx="60.700001"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
<g
id="g3741">
<circle
r="7.0209999"
id="ellipse3743"
cy="154.354"
cx="154.5"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3745"
cy="154.354"
cx="154.5"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
<g
id="g3747">
<circle
r="7.0209999"
id="ellipse3749"
cy="151.875"
cx="96"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3751"
cy="151.875"
cx="96"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
x="31.672857"
y="155.86783"
id="text3921"
transform="scale(0.9437456,1.0596076)"><tspan
id="tspan3429">KML</tspan></text>
</svg>

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 304 KiB

View File

@ -1,145 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
id="svg3390"
height="185"
width="185">
<metadata
id="metadata3404">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3402" />
<path
style="fill:#ffffff;stroke:#999999;stroke-width:2.18774867"
id="path3392"
d="m 128.23996,2.2548915 -95.377018,0 0,181.0580085 134.394868,0 0,-141.313567 z m 0,0 0,39.7444415 39.01785,0" />
<rect
y="124.9782"
x="16.573463"
height="49.84631"
width="131.6837"
id="rect3426"
style="fill:#0083d7;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<g
id="g3828"
transform="matrix(0.89093793,0,0,0.84489692,3.5017807,-51.565424)">
<g
id="g3715">
<circle
style="fill:#000000"
cx="113"
cy="90.875"
id="ellipse3717"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2;stroke-linejoin:round"
cx="113"
cy="90.875"
id="ellipse3719"
r="7.0209999" />
</g>
<polyline
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:4"
points="62.3563,178.566 73.5,125.854 96,151.875 113,90.875 136.5,172.375 148.831,160.03 "
id="polyline3721" />
<g
id="g3723">
<circle
style="fill:#000000"
cx="73.5"
cy="125.854"
id="ellipse3725"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="73.5"
cy="125.854"
id="ellipse3727"
r="7.0209999" />
</g>
<g
id="g3729">
<circle
style="fill:#000000"
cx="136.5"
cy="172.375"
id="ellipse3731"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="136.5"
cy="172.375"
id="ellipse3733"
r="7.0209999" />
</g>
<g
id="g3735">
<circle
style="fill:#000000"
cx="60.700001"
cy="186.39999"
id="ellipse3737"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="60.700001"
cy="186.39999"
id="ellipse3739"
r="7.0209999" />
</g>
<g
id="g3741">
<circle
style="fill:#000000"
cx="154.5"
cy="154.354"
id="ellipse3743"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="154.5"
cy="154.354"
id="ellipse3745"
r="7.0209999" />
</g>
<g
id="g3747">
<circle
style="fill:#000000"
cx="96"
cy="151.875"
id="ellipse3749"
r="7.0209999" />
<circle
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2"
cx="96"
cy="151.875"
id="ellipse3751"
r="7.0209999" />
</g>
</g>
<text
transform="scale(0.9437456,1.0596076)"
id="text3921"
y="155.86783"
x="21.076782"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="155.86783"
x="21.076782"
id="tspan3429">NMEA</tspan></text>
</svg>

Before

Width:  |  Height:  |  Size: 4.1 KiB

BIN
icons/plt.icns Normal file

Binary file not shown.

BIN
icons/plt.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

BIN
icons/rte.icns Normal file

Binary file not shown.

BIN
icons/rte.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

28
icons/scripts/icns.sh Executable file
View File

@ -0,0 +1,28 @@
#!/bin/bash
EXTENSIONS="fit:#006600 gpx:#003399 igc:#ff3300 kml:#990000 nmea:#0083d7 \
plt:#66ff00 rte:#66ff00 tcx:#ffcc00 wpt:#66ff00"
for e in $EXTENSIONS; do
IFS=":"; set $e
EXT=`echo $1 | tr /a-z/ /A-Z/`
sed -e "s/\$EXTENSION/$EXT/" -e "s/\$COLOR/$2/" icon-template.svg > $1.svg
ICONSET=$1.iconset
mkdir $ICONSET
convert -density 400 -background none -resize '16x16' "$1.svg" "$ICONSET/icon_16x16.png"
convert -density 400 -background none -resize '32x32' "$1.svg" "$ICONSET/icon_16x16@2x.png"
cp "$ICONSET/icon_16x16@2x.png" "$ICONSET/icon_32x32.png"
convert -density 400 -background none -resize '64x64' "$1.svg" "$ICONSET/icon_32x32@2x.png"
convert -density 400 -background none -resize '128x128' "$1.svg" "$ICONSET/icon_128x128.png"
convert -density 400 -background none -resize '256x256' "$1.svg" "$ICONSET/icon_128x128@2x.png"
cp "$ICONSET/icon_128x128@2x.png" "$ICONSET/icon_256x256.png"
convert -density 400 -background none -resize '512x512' "$1.svg" "$ICONSET/icon_256x256@2x.png"
cp "$ICONSET/icon_256x256@2x.png" "$ICONSET/icon_512x512.png"
convert -density 400 -background none -resize '1024x1024' "$1.svg" "$ICONSET/icon_512x512@2x.png"
iconutil -c icns -o $1.icns "$ICONSET"
rm -R "$ICONSET" $1.svg
done

13
icons/scripts/ico.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
EXTENSIONS="fit:#006600 gpx:#003399 igc:#ff3300 kml:#990000 nmea:#0083d7 \
plt:#66ff00 rte:#66ff00 tcx:#ffcc00 wpt:#66ff00"
for e in $EXTENSIONS; do
IFS=":"; set $e
EXT=`echo $1 | tr /a-z/ /A-Z/`
sed -e "s/\$EXTENSION/$EXT/" -e "s/\$COLOR/$2/" icon-template.svg > $1.svg
convert -density 400 $1.svg -define icon:auto-resize $1.ico
rm $1.svg
done

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.1" height="185" width="185">
<path id="envelope" style="fill:#ffffff;stroke:#999999;stroke-width:2.18774867" d="m 128.23996,2.2548915 -95.377018,0 0,181.0580085 134.394868,0 0,-141.313567 z m 0,0 0,39.7444415 39.01785,0" />
<g id="logo" transform="matrix(0.89093793,0,0,0.84489692,3.5017807,-51.565424)">
<polyline style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:4" points="62.3563,178.566 73.5,125.854 96,151.875 113,90.875 136.5,172.375 148.831,160.03 "/>
<circle style="fill:#000000" cx="113" cy="90.875" r="8"/>
<circle style="fill:#000000" cx="73.5" cy="125.854" r="8"/>
<circle style="fill:#000000" cx="136.5" cy="172.375" r="8"/>
<circle style="fill:#000000" cx="60.700001" cy="186.39999" r="8"/>
<circle style="fill:#000000" cx="154.5" cy="154.354" r="8"/>
<circle style="fill:#000000" cx="96" cy="151.875" r="8"/>
</g>
<g transform="translate(16.573463,124.9782)">
<rect y="0" x="0" id="textrect" height="50" width="120" style="fill:$COLOR;fill-opacity:1;stroke:none;"/>
<text y="28" x="60" dominant-baseline="central" text-anchor="middle" style="fill:#FFFFFF;font-size:39px;font-family:sans-serif;font-weight:bold;">$EXTENSION</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 304 KiB

View File

@ -1,145 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
width="185"
height="185"
id="svg3390"
version="1.1">
<metadata
id="metadata3404">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3402" />
<path
d="m 128.23996,2.2548915 -95.377018,0 0,181.0580085 134.394868,0 0,-141.313567 z m 0,0 0,39.7444415 39.01785,0"
id="path3392"
style="fill:#ffffff;stroke:#999999;stroke-width:2.18774867" />
<rect
style="fill:#ffcc00;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect3426"
width="120.3215"
height="49.84631"
x="16.573463"
y="124.9782" />
<g
transform="matrix(0.89093793,0,0,0.84489692,3.5017807,-51.565424)"
id="g3828">
<g
id="g3715">
<circle
r="7.0209999"
id="ellipse3717"
cy="90.875"
cx="113"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3719"
cy="90.875"
cx="113"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2;stroke-linejoin:round" />
</g>
<polyline
id="polyline3721"
points="62.3563,178.566 73.5,125.854 96,151.875 113,90.875 136.5,172.375 148.831,160.03 "
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:4" />
<g
id="g3723">
<circle
r="7.0209999"
id="ellipse3725"
cy="125.854"
cx="73.5"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3727"
cy="125.854"
cx="73.5"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
<g
id="g3729">
<circle
r="7.0209999"
id="ellipse3731"
cy="172.375"
cx="136.5"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3733"
cy="172.375"
cx="136.5"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
<g
id="g3735">
<circle
r="7.0209999"
id="ellipse3737"
cy="186.39999"
cx="60.700001"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3739"
cy="186.39999"
cx="60.700001"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
<g
id="g3741">
<circle
r="7.0209999"
id="ellipse3743"
cy="154.354"
cx="154.5"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3745"
cy="154.354"
cx="154.5"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
<g
id="g3747">
<circle
r="7.0209999"
id="ellipse3749"
cy="151.875"
cx="96"
style="fill:#000000" />
<circle
r="7.0209999"
id="ellipse3751"
cy="151.875"
cx="96"
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:2" />
</g>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="35.911289"
y="155.86783"
id="text3921"
transform="scale(0.9437456,1.0596076)"><tspan
y="155.86783"
x="35.911289"
id="tspan3429">TCX</tspan></text>
</svg>

Before

Width:  |  Height:  |  Size: 4.1 KiB

BIN
icons/wpt.icns Normal file

Binary file not shown.

BIN
icons/wpt.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1619
lang/gpxsee_fi.ts Normal file

File diff suppressed because it is too large Load Diff

1613
lang/gpxsee_fr.ts Normal file

File diff suppressed because it is too large Load Diff

1614
lang/gpxsee_pl.ts Normal file

File diff suppressed because it is too large Load Diff

1620
lang/gpxsee_ru.ts Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -29,7 +29,7 @@
<string>application/gpx+xml</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>gpx.icns</string>
<string>icons/gpx.icns</string>
<key>CFBundleTypeName</key>
<string>GPS Exchange Format</string>
<key>CFBundleTypeRole</key>
@ -45,7 +45,7 @@
<string>application/tcx+xml</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>tcx.icns</string>
<string>icons/tcx.icns</string>
<key>CFBundleTypeName</key>
<string>Training Center XML</string>
<key>CFBundleTypeRole</key>
@ -61,7 +61,7 @@
<string>application/vnd.google-earth.kml+xml</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>kml.icns</string>
<string>icons/kml.icns</string>
<key>CFBundleTypeName</key>
<string>Keyhole Markup Language</string>
<key>CFBundleTypeRole</key>
@ -77,7 +77,7 @@
<string>application/vnd.ant.fit</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>fit.icns</string>
<string>icons/fit.icns</string>
<key>CFBundleTypeName</key>
<string>Flexible and Interoperable Data Transfer</string>
<key>CFBundleTypeRole</key>
@ -93,7 +93,7 @@
<string>application/vnd.fai.igc</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>igc.icns</string>
<string>icons/igc.icns</string>
<key>CFBundleTypeName</key>
<string>Flight Recorder Data Format</string>
<key>CFBundleTypeRole</key>
@ -109,12 +109,60 @@
<string>application/vnd.nmea.nmea</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>nmea.icns</string>
<string>icons/nmea.icns</string>
<key>CFBundleTypeName</key>
<string>NMEA 0183 data</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>plt</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/vnd.oziexplorer.plt</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>icons/plt.icns</string>
<key>CFBundleTypeName</key>
<string>OziExplorer Track Point File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>rte</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/vnd.oziexplorer.rte</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>icons/rte.icns</string>
<key>CFBundleTypeName</key>
<string>OziExplorer Route File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>wpt</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/vnd.oziexplorer.wpt</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>icons/wpt.icns</string>
<key>CFBundleTypeName</key>
<string>OziExplorer Waypoint File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
</array>
<key>UTImportedTypeDeclarations</key>
@ -245,6 +293,69 @@
<string>application/vnd.nmea.nmea</string>
</dict>
</dict>
<dict>
<key>UTTypeIdentifier</key>
<string>com.oziexplorer3.plt</string>
<key>UTTypeReferenceURL</key>
<string>http://www.oziexplorer3.com/eng/help/fileformats.html</string>
<key>UTTypeDescription</key>
<string>OziExplorer Track Point File</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>plt</string>
</array>
<key>public.mime-type</key>
<string>application/vnd.oziexplorer.plt</string>
</dict>
</dict>
<dict>
<key>UTTypeIdentifier</key>
<string>com.oziexplorer3.plt</string>
<key>UTTypeReferenceURL</key>
<string>http://www.oziexplorer3.com/eng/help/fileformats.html</string>
<key>UTTypeDescription</key>
<string>OziExplorer Route File</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>rte</string>
</array>
<key>public.mime-type</key>
<string>application/vnd.oziexplorer.rte</string>
</dict>
</dict>
<dict>
<key>UTTypeIdentifier</key>
<string>com.oziexplorer3.plt</string>
<key>UTTypeReferenceURL</key>
<string>http://www.oziexplorer3.com/eng/help/fileformats.html</string>
<key>UTTypeDescription</key>
<string>OziExplorer Waypoint File</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>wpt</string>
</array>
<key>public.mime-type</key>
<string>application/vnd.oziexplorer.wpt</string>
</dict>
</dict>
</array>
</dict>

62
pkg/appdata.xml Normal file
View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>gpxsee.desktop</id>
<metadata_license>MIT</metadata_license>
<project_license>GPL-3.0</project_license>
<name>GPXSee</name>
<summary>GPS log file viewer and analyzer</summary>
<description>
<p>GPXSee is a GPS log file viewer and analyzer that supports GPX, TCX,
KML, FIT, IGC, NMEA and OziExplorer files.</p>
<p>Features:</p>
<ul>
<li>User-definable online maps (OSM/Google tiles, WMTS, WMS).</li>
<li>Offline maps (OziExplorer maps, TrekBuddy maps/atlases, GeoTIFF
images).</li>
<li>Elevation, speed, heart rate, cadence, power and temperature
graphs.</li>
<li>Support for multiple tracks in one view.</li>
<li>Support for POI files.</li>
<li>Print/export to PDF.</li>
<li>Full-screen mode.</li>
<li>Opens GPX, TCX, FIT, KML, IGC, NMEA, OziExplorer (PLT, WPT, RTE)
and Garmin CSV files.</li>
</ul>
</description>
<screenshots>
<screenshot type="default">
<image>http://www.gpxsee.org/gallery/lin1.png</image>
</screenshot>
<screenshot>
<image>http://www.gpxsee.org/gallery/lin2.png</image>
</screenshot>
</screenshots>
<categories>
<category>Graphics</category>
<category>Viewer</category>
</categories>
<url type="homepage">http://www.gpxsee.org</url>
<launchable type="desktop-id">gpxsee.desktop</launchable>
<provides>
<binary>gpxsee</binary>
</provides>
<mimetypes>
<mimetype>application/gpx+xml</mimetype>
<mimetype>application/tcx+xml</mimetype>
<mimetype>application/vnd.ant.fit</mimetype>
<mimetype>application/vnd.google-earth.kml+xml</mimetype>
<mimetype>application/vnd.fai.igc</mimetype>
<mimetype>application/vnd.nmea.nmea</mimetype>
<mimetype>application/vnd.oziexplorer.plt</mimetype>
<mimetype>application/vnd.oziexplorer.rte</mimetype>
<mimetype>application/vnd.oziexplorer.wpt</mimetype>
</mimetypes>
</component>

19
pkg/csv/ellipsoids.csv Normal file
View File

@ -0,0 +1,19 @@
Airy 1830,7001,6377563.396,299.3249646
Modified Airy,7002,6377340.189,299.3249646
Australian National,7003,6378160.0,298.25
Bessel 1841,7004,6377397.155,299.1528128
Bessel 1841 (Norway),7005,6377492.0176,299.1528
Clarke 1866,7008,6378206.4,294.9786982
Clarke 1880 (Palestine),7010,6378300.789,293.466
Clarke 1880 (IGN),7011,6378249.2,293.466021
Clarke 1880,7012,6378249.145,293.465
Everest 1830 (1937 Adjustment),7015,6377276.345,300.8017
Everest 1830 Modified,7018,6377304.063,300.8017
GRS 80,7019,6378137.0,298.257222101
Helmert 1906,7020,6378200.0,298.3
International 1924,7022,6378388.0,297.0
Krassovsky 1940,7024,6378245.0,298.3
South American 1969,7036,6378160.0,298.25
WGS 72,7043,6378135.0,298.26
Bessel 1841 (Namibia),7046,6377483.865,299.1528128
Hough 1960,7053,6378270.0,297.0
1 Airy 1830 7001 6377563.396 299.3249646
2 Modified Airy 7002 6377340.189 299.3249646
3 Australian National 7003 6378160.0 298.25
4 Bessel 1841 7004 6377397.155 299.1528128
5 Bessel 1841 (Norway) 7005 6377492.0176 299.1528
6 Clarke 1866 7008 6378206.4 294.9786982
7 Clarke 1880 (Palestine) 7010 6378300.789 293.466
8 Clarke 1880 (IGN) 7011 6378249.2 293.466021
9 Clarke 1880 7012 6378249.145 293.465
10 Everest 1830 (1937 Adjustment) 7015 6377276.345 300.8017
11 Everest 1830 Modified 7018 6377304.063 300.8017
12 GRS 80 7019 6378137.0 298.257222101
13 Helmert 1906 7020 6378200.0 298.3
14 International 1924 7022 6378388.0 297.0
15 Krassovsky 1940 7024 6378245.0 298.3
16 South American 1969 7036 6378160.0 298.25
17 WGS 72 7043 6378135.0 298.26
18 Bessel 1841 (Namibia) 7046 6377483.865 299.1528128
19 Hough 1960 7053 6378270.0 297.0

124
pkg/csv/gcs.csv Normal file
View File

@ -0,0 +1,124 @@
Adindan,4201,6201,9122,7012,8901,9603,-162,-12,206
Afgooye,4205,6205,9122,7024,8901,9603,-43,-163,45
Ain el Abd 1970,4204,6204,9122,7022,8901,9603,-150,-251,-2
Anna 1 Astro 1965,4708,6708,9122,7003,8901,9603,-491,-22,435
Arc 1950,4209,6209,9122,7012,8901,9603,-143,-90,-294
Arc 1960,4210,6210,9122,7012,8901,9603,-160,-8,-300
Ascension Island 1958,4712,6712,9122,7022,8901,9603,-207,107,52
Astro B4 Sorol Atoll,4707,6707,9122,7022,8901,9603,114,-116,-333
Astro Beacon 1945,4709,6709,9122,7022,8901,9603,145,75,-272
Astro DOS 71/4,4710,6710,9122,7022,8901,9603,-320,550,-494
Astronomic Stn 1952,4711,6711,9122,7022,8901,9603,124,-234,-25
Australian Geodetic 1966,4202,6202,9122,7003,8901,9603,-133,-48,148
Australian Geodetic 1984,4203,6203,9122,7003,8901,9603,-134,-48,149
Australian Geocentric 1994 (GDA94),4283,6283,9122,7019,8901,9603,0,0,0
Austrian,4312,6312,9122,7004,8901,9603,594,84,471
Bellevue (IGN),4714,6714,9122,7022,8901,9603,-127,-769,472
Bermuda 1957,4216,6216,9122,7008,8901,9603,-73,213,296
Bogota Observatory,4218,6218,9122,7022,8901,9603,307,304,-318
Campo Inchauspe,4221,6221,9122,7022,8901,9603,-148,136,90
Canton Astro 1966,4716,6716,9122,7022,8901,9603,298,-304,-375
Cape,4222,6222,9122,7012,8901,9603,-136,-108,-292
Cape Canaveral,4717,6717,9122,7008,8901,9603,-2,150,181
Carthage,4223,6223,9122,7012,8901,9603,-263,6,431
CH-1903,4149,6149,9122,7004,8901,9603,674.374,15.056,405.343
Chatham 1971,4672,6672,9122,7022,8901,9603,175,-38,113
Chua Astro,4224,6224,9122,7022,8901,9603,-134,229,-29
Corrego Alegre,4225,6225,9122,7022,8901,9603,-206,172,-6
Djakarta (Batavia),4211,6211,9122,7004,8901,9603,-377,681,-50
DOS 1968,,,9122,7022,8901,9603,230,-199,-752
Easter Island 1967,4719,6719,9122,7022,8901,9603,211,147,111
Egypt,4199,6199,9122,7022,8901,9603,-130,-117,-151
EST97,4180,6180,9122,7019,8901,9603,0,0,0
ETRS 89,4258,6258,9122,7019,8901,9603,0,0,0
European 1950,4230,6230,9122,7022,8901,9603,-87,-98,-121
European 1950 (Mean France),,,9122,7022,8901,9603,-87,-96,-120
European 1950 (Spain and Portugal),,,9122,7022,8901,9603,-84,-107,-120
European 1979,4668,6668,9122,7022,8901,9603,-86,-98,-119
Finland Hayford,4123,6123,9122,7022,8901,9603,-78,-231,-97
Gandajika Base,4233,6233,9122,7022,8901,9603,-133,-321,50
Geodetic Datum 1949,4272,6272,9122,7022,8901,9603,84,-22,209
GGRS 87,4121,6121,9122,7019,8901,9603,-199.87,74.79,246.62
Guam 1963,4675,6675,9122,7008,8901,9603,-100,-248,259
GUX 1 Astro,4718,6718,9122,7022,8901,9603,252,-209,-751
Hartebeeshoek94,4148,6148,9122,7030,8901,9603,0,0,0
Hermannskogel,3906,1031,9122,7004,8901,9603,653,-212,449
Hjorsey 1955,4658,6658,9122,7022,8901,9603,-73,46,-86
Hong Kong 1963,4739,6739,9122,7022,8901,9603,-156,-271,-189
Hu-Tzu-Shan,4236,6236,9122,7022,8901,9603,-634,-549,-201
Indian Bangladesh,4682,6682,9122,7015,8901,9603,289,734,257
Indian Thailand,4240,6240,9122,7015,8901,9603,214,836,303
Israeli,4281,6281,9122,7010,8901,9603,-235,-85,264
Ireland 1965,4299,6299,9122,7002,8901,9603,506,-122,611
ISTS 073 Astro 1969,4724,6724,9122,7022,8901,9603,208,-435,-229
Johnston Island,4725,6725,9122,7022,8901,9603,191,-77,-204
Kandawala,4244,6244,9122,7015,8901,9603,-97,787,86
Kerguelen Island,4698,6698,9122,7022,8901,9603,145,-187,103
Kertau 1948,4245,6245,9122,7018,8901,9603,-11,851,5
L.C. 5 Astro,4726,6726,9122,7008,8901,9603,42,124,147
Liberia 1964,4251,6251,9122,7012,8901,9603,-90,40,88
Luzon Mindanao,,,9122,7008,8901,9603,-133,-79,-72
Luzon Philippines,4253,6253,9122,7008,8901,9603,-133,-77,-51
Mahe 1971,4256,6256,9122,7012,8901,9603,41,-220,-134
Marco Astro,4616,6616,9122,7022,8901,9603,-289,-124,60
Massawa,4262,6262,9122,7004,8901,9603,639,405,60
Merchich,4261,6261,9122,7012,8901,9603,31,146,47
Midway Astro 1961,4727,6727,9122,7022,8901,9603,912,-58,1227
Minna,4263,6263,9122,7012,8901,9603,-92,-93,122
NAD27 Alaska,,,9122,7008,8901,9603,-5,135,172
NAD27 Bahamas,,,9122,7008,8901,9603,-4,154,178
NAD27 Canada,,,9122,7008,8901,9603,-10,158,187
NAD27 Canal Zone,,,9122,7008,8901,9603,0,125,201
NAD27 Caribbean,,,9122,7008,8901,9603,-3,142,183
NAD27 Central,,,9122,7008,8901,9603,0,125,194
NAD27 CONUS,4267,6267,9122,7008,8901,9603,-8,160,176
NAD27 Cuba,,,9122,7008,8901,9603,-9,152,178
NAD27 Greenland,,,9122,7008,8901,9603,11,114,195
NAD27 Mexico,,,9122,7008,8901,9603,-12,130,190
NAD27 San Salvador,,,9122,7008,8901,9603,1,140,165
NAD83,4269,6269,9122,7019,8901,9603,0,0,0
Nahrwn Masirah Ilnd,,,9122,7012,8901,9603,-247,-148,369
Nahrwn Saudi Arbia,,,9122,7012,8901,9603,-231,-196,482
Nahrwn United Arab,4270,6270,9122,7012,8901,9603,-249,-156,381
Naparima BWI,4271,6271,9122,7022,8901,9603,-2,374,172
NGO1948,4273,6273,9122,7005,8901,9603,315,-217,528
NTF France,4275,6275,9122,7011,8901,9603,-168,-60,320
Norsk,4817,6817,9122,7005,8913,9603,278,93,474
NZGD1949,4272,6272,9122,7022,8901,9603,84,-22,209
NZGD2000,4167,6167,9122,7030,8901,9603,0,0,0
Observatorio 1966,4182,6182,9122,7022,8901,9603,-425,-169,81
Old Egyptian,4229,6229,9122,7020,8901,9603,-130,110,-13
Old Hawaiian,4135,6135,9122,7008,8901,9603,61,-285,-181
Oman,4232,6232,9122,7012,8901,9603,-346,-1,224
Ord Srvy Grt Britn,4277,6277,9122,7001,8901,9603,375,-111,431
Pico De Las Nieves,4728,6728,9122,7022,8901,9603,-307,-92,127
Pitcairn Astro 1967,4729,6729,9122,7022,8901,9603,185,165,42
Potsdam Rauenberg DHDN,4314,6314,9122,7004,8901,9603,606,23,413
Prov So Amrican 1956,4248,6248,9122,7022,8901,9603,-288,175,-376
Prov So Chilean 1963,4254,6254,9122,7022,8901,9603,16,196,93
Puerto Rico,4139,6139,9122,7008,8901,9603,11,72,-101
Pulkovo 1942 (1),4284,6284,9122,7024,8901,9603,28,-130,-95
Pulkovo 1942 (2),,,9122,7024,8901,9603,28,-130,-95
Qatar National,4285,6285,9122,7022,8901,9603,-128,-283,22
Qornoq,4287,6287,9108,7022,8901,9603,164,138,-189
Reunion,4626,6626,9122,7022,8901,9603,94,-948,-1262
Rijksdriehoeksmeting,4289,6289,9122,7004,8901,9603,593,26,478
Rome 1940,4806,6806,9122,7022,8906,9603,-225,-65,9
RT 90,4124,6124,9122,7004,8901,9603,498,-36,568
S42,4179,6179,9122,7024,8901,9603,28,-121,-77
S42 (83),4178,6178,9122,7024,8901,9603,26,-121,-78
Santo (DOS),4730,6730,9122,7022,8901,9603,170,42,84
Sao Braz,4184,6184,9122,7022,8901,9603,-203,141,53
Sapper Hill 1943,4292,6292,9122,7022,8901,9603,-355,16,74
Schwarzeck,4293,6293,9122,7046,8901,9603,616,97,-251
South American 1969,4291,6291,9108,7036,8901,9603,-57,1,-41
Southeast Base,4615,6615,9122,7022,8901,9603,-499,-249,314
Southwest Base,4183,6183,9122,7022,8901,9603,-104,167,-38
Timbalai 1948,4298,6298,9122,7015,8901,9603,-689,691,-46
Tokyo,4301,6301,9122,7004,8901,9603,-128,481,664
Tristan Astro 1968,4734,6734,9122,7022,8901,9603,-632,438,-609
Viti Levu 1916,4731,6731,9122,7012,8901,9603,51,391,-36
Wake-Eniwetok 1960,4732,6732,9122,7053,8901,9603,101,52,-39
WGS 72,4322,6322,9122,7043,8901,9603,0,0,5
Yacare,4309,6309,9122,7022,8901,9603,-155,171,37
Zanderij,4311,6311,9122,7022,8901,9603,-265,120,-358
1 Adindan 4201 6201 9122 7012 8901 9603 -162 -12 206
2 Afgooye 4205 6205 9122 7024 8901 9603 -43 -163 45
3 Ain el Abd 1970 4204 6204 9122 7022 8901 9603 -150 -251 -2
4 Anna 1 Astro 1965 4708 6708 9122 7003 8901 9603 -491 -22 435
5 Arc 1950 4209 6209 9122 7012 8901 9603 -143 -90 -294
6 Arc 1960 4210 6210 9122 7012 8901 9603 -160 -8 -300
7 Ascension Island 1958 4712 6712 9122 7022 8901 9603 -207 107 52
8 Astro B4 Sorol Atoll 4707 6707 9122 7022 8901 9603 114 -116 -333
9 Astro Beacon 1945 4709 6709 9122 7022 8901 9603 145 75 -272
10 Astro DOS 71/4 4710 6710 9122 7022 8901 9603 -320 550 -494
11 Astronomic Stn 1952 4711 6711 9122 7022 8901 9603 124 -234 -25
12 Australian Geodetic 1966 4202 6202 9122 7003 8901 9603 -133 -48 148
13 Australian Geodetic 1984 4203 6203 9122 7003 8901 9603 -134 -48 149
14 Australian Geocentric 1994 (GDA94) 4283 6283 9122 7019 8901 9603 0 0 0
15 Austrian 4312 6312 9122 7004 8901 9603 594 84 471
16 Bellevue (IGN) 4714 6714 9122 7022 8901 9603 -127 -769 472
17 Bermuda 1957 4216 6216 9122 7008 8901 9603 -73 213 296
18 Bogota Observatory 4218 6218 9122 7022 8901 9603 307 304 -318
19 Campo Inchauspe 4221 6221 9122 7022 8901 9603 -148 136 90
20 Canton Astro 1966 4716 6716 9122 7022 8901 9603 298 -304 -375
21 Cape 4222 6222 9122 7012 8901 9603 -136 -108 -292
22 Cape Canaveral 4717 6717 9122 7008 8901 9603 -2 150 181
23 Carthage 4223 6223 9122 7012 8901 9603 -263 6 431
24 CH-1903 4149 6149 9122 7004 8901 9603 674.374 15.056 405.343
25 Chatham 1971 4672 6672 9122 7022 8901 9603 175 -38 113
26 Chua Astro 4224 6224 9122 7022 8901 9603 -134 229 -29
27 Corrego Alegre 4225 6225 9122 7022 8901 9603 -206 172 -6
28 Djakarta (Batavia) 4211 6211 9122 7004 8901 9603 -377 681 -50
29 DOS 1968 9122 7022 8901 9603 230 -199 -752
30 Easter Island 1967 4719 6719 9122 7022 8901 9603 211 147 111
31 Egypt 4199 6199 9122 7022 8901 9603 -130 -117 -151
32 EST97 4180 6180 9122 7019 8901 9603 0 0 0
33 ETRS 89 4258 6258 9122 7019 8901 9603 0 0 0
34 European 1950 4230 6230 9122 7022 8901 9603 -87 -98 -121
35 European 1950 (Mean France) 9122 7022 8901 9603 -87 -96 -120
36 European 1950 (Spain and Portugal) 9122 7022 8901 9603 -84 -107 -120
37 European 1979 4668 6668 9122 7022 8901 9603 -86 -98 -119
38 Finland Hayford 4123 6123 9122 7022 8901 9603 -78 -231 -97
39 Gandajika Base 4233 6233 9122 7022 8901 9603 -133 -321 50
40 Geodetic Datum 1949 4272 6272 9122 7022 8901 9603 84 -22 209
41 GGRS 87 4121 6121 9122 7019 8901 9603 -199.87 74.79 246.62
42 Guam 1963 4675 6675 9122 7008 8901 9603 -100 -248 259
43 GUX 1 Astro 4718 6718 9122 7022 8901 9603 252 -209 -751
44 Hartebeeshoek94 4148 6148 9122 7030 8901 9603 0 0 0
45 Hermannskogel 3906 1031 9122 7004 8901 9603 653 -212 449
46 Hjorsey 1955 4658 6658 9122 7022 8901 9603 -73 46 -86
47 Hong Kong 1963 4739 6739 9122 7022 8901 9603 -156 -271 -189
48 Hu-Tzu-Shan 4236 6236 9122 7022 8901 9603 -634 -549 -201
49 Indian Bangladesh 4682 6682 9122 7015 8901 9603 289 734 257
50 Indian Thailand 4240 6240 9122 7015 8901 9603 214 836 303
51 Israeli 4281 6281 9122 7010 8901 9603 -235 -85 264
52 Ireland 1965 4299 6299 9122 7002 8901 9603 506 -122 611
53 ISTS 073 Astro 1969 4724 6724 9122 7022 8901 9603 208 -435 -229
54 Johnston Island 4725 6725 9122 7022 8901 9603 191 -77 -204
55 Kandawala 4244 6244 9122 7015 8901 9603 -97 787 86
56 Kerguelen Island 4698 6698 9122 7022 8901 9603 145 -187 103
57 Kertau 1948 4245 6245 9122 7018 8901 9603 -11 851 5
58 L.C. 5 Astro 4726 6726 9122 7008 8901 9603 42 124 147
59 Liberia 1964 4251 6251 9122 7012 8901 9603 -90 40 88
60 Luzon Mindanao 9122 7008 8901 9603 -133 -79 -72
61 Luzon Philippines 4253 6253 9122 7008 8901 9603 -133 -77 -51
62 Mahe 1971 4256 6256 9122 7012 8901 9603 41 -220 -134
63 Marco Astro 4616 6616 9122 7022 8901 9603 -289 -124 60
64 Massawa 4262 6262 9122 7004 8901 9603 639 405 60
65 Merchich 4261 6261 9122 7012 8901 9603 31 146 47
66 Midway Astro 1961 4727 6727 9122 7022 8901 9603 912 -58 1227
67 Minna 4263 6263 9122 7012 8901 9603 -92 -93 122
68 NAD27 Alaska 9122 7008 8901 9603 -5 135 172
69 NAD27 Bahamas 9122 7008 8901 9603 -4 154 178
70 NAD27 Canada 9122 7008 8901 9603 -10 158 187
71 NAD27 Canal Zone 9122 7008 8901 9603 0 125 201
72 NAD27 Caribbean 9122 7008 8901 9603 -3 142 183
73 NAD27 Central 9122 7008 8901 9603 0 125 194
74 NAD27 CONUS 4267 6267 9122 7008 8901 9603 -8 160 176
75 NAD27 Cuba 9122 7008 8901 9603 -9 152 178
76 NAD27 Greenland 9122 7008 8901 9603 11 114 195
77 NAD27 Mexico 9122 7008 8901 9603 -12 130 190
78 NAD27 San Salvador 9122 7008 8901 9603 1 140 165
79 NAD83 4269 6269 9122 7019 8901 9603 0 0 0
80 Nahrwn Masirah Ilnd 9122 7012 8901 9603 -247 -148 369
81 Nahrwn Saudi Arbia 9122 7012 8901 9603 -231 -196 482
82 Nahrwn United Arab 4270 6270 9122 7012 8901 9603 -249 -156 381
83 Naparima BWI 4271 6271 9122 7022 8901 9603 -2 374 172
84 NGO1948 4273 6273 9122 7005 8901 9603 315 -217 528
85 NTF France 4275 6275 9122 7011 8901 9603 -168 -60 320
86 Norsk 4817 6817 9122 7005 8913 9603 278 93 474
87 NZGD1949 4272 6272 9122 7022 8901 9603 84 -22 209
88 NZGD2000 4167 6167 9122 7030 8901 9603 0 0 0
89 Observatorio 1966 4182 6182 9122 7022 8901 9603 -425 -169 81
90 Old Egyptian 4229 6229 9122 7020 8901 9603 -130 110 -13
91 Old Hawaiian 4135 6135 9122 7008 8901 9603 61 -285 -181
92 Oman 4232 6232 9122 7012 8901 9603 -346 -1 224
93 Ord Srvy Grt Britn 4277 6277 9122 7001 8901 9603 375 -111 431
94 Pico De Las Nieves 4728 6728 9122 7022 8901 9603 -307 -92 127
95 Pitcairn Astro 1967 4729 6729 9122 7022 8901 9603 185 165 42
96 Potsdam Rauenberg DHDN 4314 6314 9122 7004 8901 9603 606 23 413
97 Prov So Amrican 1956 4248 6248 9122 7022 8901 9603 -288 175 -376
98 Prov So Chilean 1963 4254 6254 9122 7022 8901 9603 16 196 93
99 Puerto Rico 4139 6139 9122 7008 8901 9603 11 72 -101
100 Pulkovo 1942 (1) 4284 6284 9122 7024 8901 9603 28 -130 -95
101 Pulkovo 1942 (2) 9122 7024 8901 9603 28 -130 -95
102 Qatar National 4285 6285 9122 7022 8901 9603 -128 -283 22
103 Qornoq 4287 6287 9108 7022 8901 9603 164 138 -189
104 Reunion 4626 6626 9122 7022 8901 9603 94 -948 -1262
105 Rijksdriehoeksmeting 4289 6289 9122 7004 8901 9603 593 26 478
106 Rome 1940 4806 6806 9122 7022 8906 9603 -225 -65 9
107 RT 90 4124 6124 9122 7004 8901 9603 498 -36 568
108 S42 4179 6179 9122 7024 8901 9603 28 -121 -77
109 S42 (83) 4178 6178 9122 7024 8901 9603 26 -121 -78
110 Santo (DOS) 4730 6730 9122 7022 8901 9603 170 42 84
111 Sao Braz 4184 6184 9122 7022 8901 9603 -203 141 53
112 Sapper Hill 1943 4292 6292 9122 7022 8901 9603 -355 16 74
113 Schwarzeck 4293 6293 9122 7046 8901 9603 616 97 -251
114 South American 1969 4291 6291 9108 7036 8901 9603 -57 1 -41
115 Southeast Base 4615 6615 9122 7022 8901 9603 -499 -249 314
116 Southwest Base 4183 6183 9122 7022 8901 9603 -104 167 -38
117 Timbalai 1948 4298 6298 9122 7015 8901 9603 -689 691 -46
118 Tokyo 4301 6301 9122 7004 8901 9603 -128 481 664
119 Tristan Astro 1968 4734 6734 9122 7022 8901 9603 -632 438 -609
120 Viti Levu 1916 4731 6731 9122 7012 8901 9603 51 391 -36
121 Wake-Eniwetok 1960 4732 6732 9122 7053 8901 9603 101 52 -39
122 WGS 72 4322 6322 9122 7043 8901 9603 0 0 5
123 Yacare 4309 6309 9122 7022 8901 9603 -155 171 37
124 Zanderij 4311 6311 9122 7022 8901 9603 -265 120 -358

1791
pkg/csv/pcs.csv Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,123 +0,0 @@
Adindan,4201,5,-162,-12,206
Afgooye,4205,15,-43,-163,45
Ain el Abd 1970,4204,14,-150,-251,-2
Anna 1 Astro 1965,4708,2,-491,-22,435
Arc 1950,4209,5,-143,-90,-294
Arc 1960,4210,5,-160,-8,-300
Ascension Island 1958,4712,14,-207,107,52
Astro B4 Sorol Atoll,4707,14,114,-116,-333
Astro Beacon 1945,4709,14,145,75,-272
Astro DOS 71/4,4710,14,-320,550,-494
Astronomic Stn 1952,4711,14,124,-234,-25
Australian Geodetic 1966,4202,2,-133,-48,148
Australian Geodetic 1984,4203,2,-134,-48,149
Australian Geocentric 1994 (GDA94),4283,11,0,0,0
Austrian,4312,3,594,84,471
Bellevue (IGN),4714,14,-127,-769,472
Bermuda 1957,4216,4,-73,213,296
Bogota Observatory,4218,14,307,304,-318
Campo Inchauspe,4221,14,-148,136,90
Canton Astro 1966,4716,14,298,-304,-375
Cape,4222,5,-136,-108,-292
Cape Canaveral,4717,4,-2,150,181
Carthage,4223,5,-263,6,431
CH-1903,4149,3,674,15,405
Chatham 1971,4672,14,175,-38,113
Chua Astro,4224,14,-134,229,-29
Corrego Alegre,4225,14,-206,172,-6
Djakarta (Batavia),4211,3,-377,681,-50
DOS 1968,,14,230,-199,-752
Easter Island 1967,4719,14,211,147,111
Egypt,,14,-130,-117,-151
European 1950,4230,14,-87,-98,-121
European 1950 (Mean France),,14,-87,-96,-120
European 1950 (Spain and Portugal),,14,-84,-107,-120
European 1979,4668,14,-86,-98,-119
Finland Hayford,4123,14,-78,-231,-97
Gandajika Base,4233,14,-133,-321,50
Geodetic Datum 1949,4272,14,84,-22,209
GGRS 87,4121,11,-199.87,74.79,246.62
Guam 1963,4675,4,-100,-248,259
GUX 1 Astro,4718,14,252,-209,-751
Hartebeeshoek94,4148,20,0,0,0
Hermannskogel,3906,3,653,-212,449
Hjorsey 1955,4658,14,-73,46,-86
Hong Kong 1963,4739,14,-156,-271,-189
Hu-Tzu-Shan,4236,14,-634,-549,-201
Indian Bangladesh,4682,6,289,734,257
Indian Thailand,4240,6,214,836,303
Israeli,4281,23,-235,-85,264
Ireland 1965,4299,1,506,-122,611
ISTS 073 Astro 1969,4724,14,208,-435,-229
Johnston Island,4725,14,191,-77,-204
Kandawala,4244,6,-97,787,86
Kerguelen Island,4698,14,145,-187,103
Kertau 1948,4245,7,-11,851,5
L.C. 5 Astro,4726,4,42,124,147
Liberia 1964,4251,5,-90,40,88
Luzon Mindanao,,4,-133,-79,-72
Luzon Philippines,4253,4,-133,-77,-51
Mahe 1971,4256,5,41,-220,-134
Marco Astro,4616,14,-289,-124,60
Massawa,4262,3,639,405,60
Merchich,4261,5,31,146,47
Midway Astro 1961,4727,14,912,-58,1227
Minna,4263,5,-92,-93,122
NAD27 Alaska,,4,-5,135,172
NAD27 Bahamas,,4,-4,154,178
NAD27 Canada,,4,-10,158,187
NAD27 Canal Zone,,4,0,125,201
NAD27 Caribbean,,4,-7,152,178
NAD27 Central,,4,0,125,194
NAD27 CONUS,,4,-8,160,176
NAD27 Cuba,,4,-9,152,178
NAD27 Greenland,,4,11,114,195
NAD27 Mexico,,4,-12,130,190
NAD27 San Salvador,,4,1,140,165
NAD83,4269,11,0,0,0
Nahrwn Masirah Ilnd,,5,-247,-148,369
Nahrwn Saudi Arbia,,5,-231,-196,482
Nahrwn United Arab,,5,-249,-156,381
Naparima BWI,4271,14,-2,374,172
NGO1948,4273,27,315,-217,528
NTF France,4275,24,-168,-60,320
Norsk,4817,27,278,93,474
NZGD1949,4272,14,84,-22,209
NZGD2000,4167,20,0,0,0
Observatorio 1966,4182,14,-425,-169,81
Old Egyptian,4229,12,-130,110,-13
Old Hawaiian,4135,4,61,-285,-181
Oman,4232,5,-346,-1,224
Ord Srvy Grt Britn,4277,0,375,-111,431
Pico De Las Nieves,4728,14,-307,-92,127
Pitcairn Astro 1967,4729,14,185,165,42
Potsdam Rauenberg DHDN,4314,3,606,23,413
Prov So Amrican 1956,4248,14,-288,175,-376
Prov So Chilean 1963,4254,14,16,196,93
Puerto Rico,4139,4,11,72,-101
Pulkovo 1942 (1),4284,15,28,-130,-95
Pulkovo 1942 (2),4284,15,28,-130,-95
Qatar National,4285,14,-128,-283,22
Qornoq,4287,14,164,138,-189
Reunion,4626,14,94,-948,-1262
Rijksdriehoeksmeting,4289,3,593,26,478
Rome 1940,4806,14,-225,-65,9
RT 90,4124,3,498,-36,568
S42,4179,15,28,-121,-77
Santo (DOS),4730,14,170,42,84
Sao Braz,4184,14,-203,141,53
Sapper Hill 1943,4292,14,-355,16,74
Schwarzeck,4293,21,616,97,-251
South American 1969,4291,16,-57,1,-41
South Asia,,8,7,-10,-26
Southeast Base,4615,14,-499,-249,314
Southwest Base,4183,14,-104,167,-38
Timbalai 1948,4298,6,-689,691,-46
Tokyo,4301,3,-128,481,664
Tristan Astro 1968,4734,14,-632,438,-609
Viti Levu 1916,4731,5,51,391,-36
Wake-Eniwetok 1960,4732,13,101,52,-39
WGS 72,4322,19,0,0,5
WGS 84,4326,20,0,0,0
Yacare,4309,14,-155,171,37
Zanderij,4311,14,-265,120,-358
1 Adindan 4201 5 -162 -12 206
2 Afgooye 4205 15 -43 -163 45
3 Ain el Abd 1970 4204 14 -150 -251 -2
4 Anna 1 Astro 1965 4708 2 -491 -22 435
5 Arc 1950 4209 5 -143 -90 -294
6 Arc 1960 4210 5 -160 -8 -300
7 Ascension Island 1958 4712 14 -207 107 52
8 Astro B4 Sorol Atoll 4707 14 114 -116 -333
9 Astro Beacon 1945 4709 14 145 75 -272
10 Astro DOS 71/4 4710 14 -320 550 -494
11 Astronomic Stn 1952 4711 14 124 -234 -25
12 Australian Geodetic 1966 4202 2 -133 -48 148
13 Australian Geodetic 1984 4203 2 -134 -48 149
14 Australian Geocentric 1994 (GDA94) 4283 11 0 0 0
15 Austrian 4312 3 594 84 471
16 Bellevue (IGN) 4714 14 -127 -769 472
17 Bermuda 1957 4216 4 -73 213 296
18 Bogota Observatory 4218 14 307 304 -318
19 Campo Inchauspe 4221 14 -148 136 90
20 Canton Astro 1966 4716 14 298 -304 -375
21 Cape 4222 5 -136 -108 -292
22 Cape Canaveral 4717 4 -2 150 181
23 Carthage 4223 5 -263 6 431
24 CH-1903 4149 3 674 15 405
25 Chatham 1971 4672 14 175 -38 113
26 Chua Astro 4224 14 -134 229 -29
27 Corrego Alegre 4225 14 -206 172 -6
28 Djakarta (Batavia) 4211 3 -377 681 -50
29 DOS 1968 14 230 -199 -752
30 Easter Island 1967 4719 14 211 147 111
31 Egypt 14 -130 -117 -151
32 European 1950 4230 14 -87 -98 -121
33 European 1950 (Mean France) 14 -87 -96 -120
34 European 1950 (Spain and Portugal) 14 -84 -107 -120
35 European 1979 4668 14 -86 -98 -119
36 Finland Hayford 4123 14 -78 -231 -97
37 Gandajika Base 4233 14 -133 -321 50
38 Geodetic Datum 1949 4272 14 84 -22 209
39 GGRS 87 4121 11 -199.87 74.79 246.62
40 Guam 1963 4675 4 -100 -248 259
41 GUX 1 Astro 4718 14 252 -209 -751
42 Hartebeeshoek94 4148 20 0 0 0
43 Hermannskogel 3906 3 653 -212 449
44 Hjorsey 1955 4658 14 -73 46 -86
45 Hong Kong 1963 4739 14 -156 -271 -189
46 Hu-Tzu-Shan 4236 14 -634 -549 -201
47 Indian Bangladesh 4682 6 289 734 257
48 Indian Thailand 4240 6 214 836 303
49 Israeli 4281 23 -235 -85 264
50 Ireland 1965 4299 1 506 -122 611
51 ISTS 073 Astro 1969 4724 14 208 -435 -229
52 Johnston Island 4725 14 191 -77 -204
53 Kandawala 4244 6 -97 787 86
54 Kerguelen Island 4698 14 145 -187 103
55 Kertau 1948 4245 7 -11 851 5
56 L.C. 5 Astro 4726 4 42 124 147
57 Liberia 1964 4251 5 -90 40 88
58 Luzon Mindanao 4 -133 -79 -72
59 Luzon Philippines 4253 4 -133 -77 -51
60 Mahe 1971 4256 5 41 -220 -134
61 Marco Astro 4616 14 -289 -124 60
62 Massawa 4262 3 639 405 60
63 Merchich 4261 5 31 146 47
64 Midway Astro 1961 4727 14 912 -58 1227
65 Minna 4263 5 -92 -93 122
66 NAD27 Alaska 4 -5 135 172
67 NAD27 Bahamas 4 -4 154 178
68 NAD27 Canada 4 -10 158 187
69 NAD27 Canal Zone 4 0 125 201
70 NAD27 Caribbean 4 -7 152 178
71 NAD27 Central 4 0 125 194
72 NAD27 CONUS 4 -8 160 176
73 NAD27 Cuba 4 -9 152 178
74 NAD27 Greenland 4 11 114 195
75 NAD27 Mexico 4 -12 130 190
76 NAD27 San Salvador 4 1 140 165
77 NAD83 4269 11 0 0 0
78 Nahrwn Masirah Ilnd 5 -247 -148 369
79 Nahrwn Saudi Arbia 5 -231 -196 482
80 Nahrwn United Arab 5 -249 -156 381
81 Naparima BWI 4271 14 -2 374 172
82 NGO1948 4273 27 315 -217 528
83 NTF France 4275 24 -168 -60 320
84 Norsk 4817 27 278 93 474
85 NZGD1949 4272 14 84 -22 209
86 NZGD2000 4167 20 0 0 0
87 Observatorio 1966 4182 14 -425 -169 81
88 Old Egyptian 4229 12 -130 110 -13
89 Old Hawaiian 4135 4 61 -285 -181
90 Oman 4232 5 -346 -1 224
91 Ord Srvy Grt Britn 4277 0 375 -111 431
92 Pico De Las Nieves 4728 14 -307 -92 127
93 Pitcairn Astro 1967 4729 14 185 165 42
94 Potsdam Rauenberg DHDN 4314 3 606 23 413
95 Prov So Amrican 1956 4248 14 -288 175 -376
96 Prov So Chilean 1963 4254 14 16 196 93
97 Puerto Rico 4139 4 11 72 -101
98 Pulkovo 1942 (1) 4284 15 28 -130 -95
99 Pulkovo 1942 (2) 4284 15 28 -130 -95
100 Qatar National 4285 14 -128 -283 22
101 Qornoq 4287 14 164 138 -189
102 Reunion 4626 14 94 -948 -1262
103 Rijksdriehoeksmeting 4289 3 593 26 478
104 Rome 1940 4806 14 -225 -65 9
105 RT 90 4124 3 498 -36 568
106 S42 4179 15 28 -121 -77
107 Santo (DOS) 4730 14 170 42 84
108 Sao Braz 4184 14 -203 141 53
109 Sapper Hill 1943 4292 14 -355 16 74
110 Schwarzeck 4293 21 616 97 -251
111 South American 1969 4291 16 -57 1 -41
112 South Asia 8 7 -10 -26
113 Southeast Base 4615 14 -499 -249 314
114 Southwest Base 4183 14 -104 167 -38
115 Timbalai 1948 4298 6 -689 691 -46
116 Tokyo 4301 3 -128 481 664
117 Tristan Astro 1968 4734 14 -632 438 -609
118 Viti Levu 1916 4731 5 51 391 -36
119 Wake-Eniwetok 1960 4732 13 101 52 -39
120 WGS 72 4322 19 0 0 5
121 WGS 84 4326 20 0 0 0
122 Yacare 4309 14 -155 171 37
123 Zanderij 4311 14 -265 120 -358

View File

@ -1,30 +0,0 @@
0,Airy 1830,6377563.396,299.3249646
1,Modified Airy,6377340.189,299.3249646
2,Australian National,6378160.0,298.25
3,Bessel 1841,6377397.155,299.1528128
4,Clarke 1866,6378206.4,294.9786982
5,Clarke 1880,6378249.145,293.465
6,Everest (India 1830),6377276.345,300.8017
7,Everest (1948),6377304.063,300.8017
8,Modified Fischer 1960,6378155.0,298.3
9,Everest (Pakistan),6377309.613,300.8017
10,Indonesian 1974,6378160.0,298.247
11,GRS 80,6378137.0,298.257222101
12,Helmert 1906,6378200.0,298.3
13,Hough 1960,6378270.0,297.0
14,International 1924,6378388.0,297.0
15,Krassovsky 1940,6378245.0,298.3
16,South American 1969,6378160.0,298.25
17,Everest (Malaysia 1969),6377295.664,300.8017
18,Everest (Sabah Sarawak),6377298.556,300.8017
19,WGS 72,6378135.0,298.26
20,WGS 84,6378137.0,298.257223563
21,Bessel 1841 (Namibia),6377483.865,299.1528128
22,Everest (India 1956),6377301.243,300.8017
23,Clarke 1880 Palestine,6378300.789,293.466
24,Clarke 1880 IGN,6378249.2,293.466021
25,Hayford 1909,6378388.0,296.959263
26,Clarke 1858,6378350.87,294.26
27,Bessel 1841 (Norway),6377492.0176,299.1528
28,Plessis 1817 (France),6376523.0,308.6409971
29,Hayford 1924,6378388.0,297.0
1 0 Airy 1830 6377563.396 299.3249646
2 1 Modified Airy 6377340.189 299.3249646
3 2 Australian National 6378160.0 298.25
4 3 Bessel 1841 6377397.155 299.1528128
5 4 Clarke 1866 6378206.4 294.9786982
6 5 Clarke 1880 6378249.145 293.465
7 6 Everest (India 1830) 6377276.345 300.8017
8 7 Everest (1948) 6377304.063 300.8017
9 8 Modified Fischer 1960 6378155.0 298.3
10 9 Everest (Pakistan) 6377309.613 300.8017
11 10 Indonesian 1974 6378160.0 298.247
12 11 GRS 80 6378137.0 298.257222101
13 12 Helmert 1906 6378200.0 298.3
14 13 Hough 1960 6378270.0 297.0
15 14 International 1924 6378388.0 297.0
16 15 Krassovsky 1940 6378245.0 298.3
17 16 South American 1969 6378160.0 298.25
18 17 Everest (Malaysia 1969) 6377295.664 300.8017
19 18 Everest (Sabah Sarawak) 6377298.556 300.8017
20 19 WGS 72 6378135.0 298.26
21 20 WGS 84 6378137.0 298.257223563
22 21 Bessel 1841 (Namibia) 6377483.865 299.1528128
23 22 Everest (India 1956) 6377301.243 300.8017
24 23 Clarke 1880 Palestine 6378300.789 293.466
25 24 Clarke 1880 IGN 6378249.2 293.466021
26 25 Hayford 1909 6378388.0 296.959263
27 26 Clarke 1858 6378350.87 294.26
28 27 Bessel 1841 (Norway) 6377492.0176 299.1528
29 28 Plessis 1817 (France) 6376523.0 308.6409971
30 29 Hayford 1924 6378388.0 297.0

14
pkg/gpxsee.desktop Normal file
View File

@ -0,0 +1,14 @@
[Desktop Entry]
Name=GPXSee
Comment=GPS log file viewer and analyzer
Comment[cz]=Prohlížeč a analyzátor GPS logů
Comment[fi]=Ohjelma GPS-lokien katseluun ja analysointiin
Comment[pl]=Przeglądarka i analizator plików dziennika GPS
Comment[ru]=Программа для просмотра и анализа GPS логов
Comment[sv]=GPS-loggfilsläsare och analysator
Exec=gpxsee %F
Icon=gpxsee
Terminal=false
Type=Application
Categories=Graphics;Viewer;Maps;Qt;
MimeType=application/gpx+xml;application/tcx+xml;application/vnd.ant.fit;application/vnd.google-earth.kml+xml;application/vnd.fai.igc;application/vnd.nmea.nmea;application/vnd.oziexplorer.plt;application/vnd.oziexplorer.rte;application/vnd.oziexplorer.wpt;

View File

@ -5,14 +5,14 @@
; The name of the installer
Name "GPXSee"
; Program version
!define VERSION "4.13"
!define VERSION "5.10"
; The file to write
OutFile "GPXSee-${VERSION}.exe"
; Compression method
SetCompressor /SOLID lzma
; Required execution level
; Required execution level
RequestExecutionLevel admin
; The default installation directory
@ -26,7 +26,7 @@ VIAddVersionKey "ProductName" "GPXSee"
VIAddVersionKey "LegalCopyright" "GPXSee project"
VIAddVersionKey "FileDescription" "GPXSee installer"
; Registry key to check for directory (so if you install again, it will
; Registry key to check for directory (so if you install again, it will
; overwrite the old one automatically)
InstallDirRegKey HKLM "Software\GPXSee" "Install_Dir"
@ -39,11 +39,14 @@ InstallDirRegKey HKLM "Software\GPXSee" "Install_Dir"
!define REGFIT "GPXSee.fit"
!define REGIGC "GPXSee.igc"
!define REGNMEA "GPXSee.nmea"
!define REGPLT "GPXSee.plt"
!define REGRTE "GPXSee.rte"
!define REGWPT "GPXSee.wpt"
; Start menu page configuration
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\GPXSee"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "GPXSee"
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\GPXSee"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "GPXSee"
Var StartMenuFolder
@ -77,26 +80,25 @@ FunctionEnd
Section "GPXSee" SEC_APP
SectionIn RO
; Set output path to the installation directory.
; Set output path to the installation directory
SetOutPath $INSTDIR
; Put the files there
File "gpxsee.exe"
File "maps.txt"
File "ellipsoids.csv"
File "datums.csv"
File /r "maps"
File /r "csv"
; Create start menu entry and add links
SetShellVarContext all
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\GPXSee.lnk" "$INSTDIR\gpxsee.exe"
!insertmacro MUI_STARTMENU_WRITE_END
; Create the uninstaller
WriteUninstaller "$INSTDIR\uninstall.exe"
WriteUninstaller "$INSTDIR\uninstall.exe"
; Write the installation path into the registry
DetailPrint "Registering application..."
@ -114,28 +116,40 @@ Section "GPXSee" SEC_APP
DetailPrint "Associating file types..."
WriteRegStr HKCR ".gpx" "" "${REGGPX}"
WriteRegStr HKCR "${REGGPX}" "" "GPS Exchange Format"
WriteRegStr HKCR "${REGGPX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,1"
WriteRegStr HKCR "${REGGPX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,2"
WriteRegStr HKCR "${REGGPX}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".tcx" "" "${REGTCX}"
WriteRegStr HKCR "${REGTCX}" "" "Training Center XML"
WriteRegStr HKCR "${REGTCX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,2"
WriteRegStr HKCR "${REGTCX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,3"
WriteRegStr HKCR "${REGTCX}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".kml" "" "${REGKML}"
WriteRegStr HKCR "${REGKML}" "" "Keyhole Markup Language"
WriteRegStr HKCR "${REGKML}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,3"
WriteRegStr HKCR "${REGKML}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,4"
WriteRegStr HKCR "${REGKML}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".fit" "" "${REGFIT}"
WriteRegStr HKCR "${REGFIT}" "" "Flexible and Interoperable Data Transfer"
WriteRegStr HKCR "${REGFIT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,4"
WriteRegStr HKCR "${REGFIT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,5"
WriteRegStr HKCR "${REGFIT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".igc" "" "${REGIGC}"
WriteRegStr HKCR "${REGIGC}" "" "Flight Recorder Data Format"
WriteRegStr HKCR "${REGIGC}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,5"
WriteRegStr HKCR "${REGIGC}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,6"
WriteRegStr HKCR "${REGIGC}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".nmea" "" "${REGNMEA}"
WriteRegStr HKCR "${REGNMEA}" "" "NMEA 0183 data"
WriteRegStr HKCR "${REGNMEA}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,6"
WriteRegStr HKCR "${REGNMEA}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,7"
WriteRegStr HKCR "${REGNMEA}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".plt" "" "${REGPLT}"
WriteRegStr HKCR "${REGPLT}" "" "OziExplorer Track Point File"
WriteRegStr HKCR "${REGPLT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,8"
WriteRegStr HKCR "${REGPLT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".rte" "" "${REGRTE}"
WriteRegStr HKCR "${REGRTE}" "" "OziExplorer Route File"
WriteRegStr HKCR "${REGRTE}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,9"
WriteRegStr HKCR "${REGRTE}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".wpt" "" "${REGWPT}"
WriteRegStr HKCR "${REGWPT}" "" "OziExplorer Waypoint File"
WriteRegStr HKCR "${REGWPT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,1"
WriteRegStr HKCR "${REGWPT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
@ -153,7 +167,7 @@ Section "QT framework" SEC_QT
File /r "platforms"
File /r "imageformats"
File /r "printsupport"
SectionEnd
Section "MSVC runtime" SEC_MSVC
@ -195,12 +209,49 @@ Section "ANGLE" SEC_ANGLE
SectionEnd
SectionGroup "Localization" SEC_LOCALIZATION
Section "Czech"
CreateDirectory "$INSTDIR\translations"
File /oname=translations\gpxsee_cs.qm translations\gpxsee_cs.qm
File /oname=translations\qt_cs.qm translations\qt_cs.qm
SectionEnd
Section "Finnish"
CreateDirectory "$INSTDIR\translations"
File /oname=translations\gpxsee_fi.qm translations\gpxsee_fi.qm
File /oname=translations\qt_fi.qm translations\qt_fi.qm
SectionEnd
Section "French"
CreateDirectory "$INSTDIR\translations"
File /oname=translations\gpxsee_fr.qm translations\gpxsee_fr.qm
File /oname=translations\qt_fr.qm translations\qt_fr.qm
SectionEnd
Section "German"
CreateDirectory "$INSTDIR\translations"
File /oname=translations\gpxsee_de.qm translations\gpxsee_de.qm
File /oname=translations\qt_de.qm translations\qt_de.qm
SectionEnd
Section "Polish"
CreateDirectory "$INSTDIR\translations"
File /oname=translations\gpxsee_pl.qm translations\gpxsee_pl.qm
File /oname=translations\qt_pl.qm translations\qt_pl.qm
SectionEnd
Section "Russian"
CreateDirectory "$INSTDIR\translations"
File /oname=translations\gpxsee_ru.qm translations\gpxsee_ru.qm
File /oname=translations\qt_ru.qm translations\qt_ru.qm
SectionEnd
Section "Swedish"
CreateDirectory "$INSTDIR\translations"
File /oname=translations\gpxsee_sv.qm translations\gpxsee_sv.qm
SectionEnd
SectionGroupEnd
;--------------------------------
; Uninstaller
Section "Uninstall"
; Remove registry keys
DeleteRegKey HKLM "${REGENTRY}"
DeleteRegKey HKLM SOFTWARE\GPXSee
@ -227,7 +278,13 @@ Section "Uninstall"
DeleteRegKey HKCR ".igc"
DeleteRegKey HKCR "${REGNMEA}"
DeleteRegKey HKCR ".nmea"
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
DeleteRegKey HKCR "${REGPLT}"
DeleteRegKey HKCR ".plt"
DeleteRegKey HKCR "${REGRTE}"
DeleteRegKey HKCR ".rte"
DeleteRegKey HKCR "${REGWPT}"
DeleteRegKey HKCR ".wpt"
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
SectionEnd
@ -246,6 +303,8 @@ LangString DESC_ANGLE ${LANG_ENGLISH} \
"ANGLE (OpenGL via Direct3D). Enables OpenGL on systems without native OpenGL drivers."
LangString DESC_APP ${LANG_ENGLISH} \
"GPXSee application"
LangString DESC_LOCALIZATION ${LANG_ENGLISH} \
"Localization"
;Assign language strings to sections
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
@ -254,4 +313,5 @@ LangString DESC_APP ${LANG_ENGLISH} \
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_ANGLE} $(DESC_ANGLE)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_MSVC} $(DESC_MSVC)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_APP} $(DESC_APP)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_LOCALIZATION} $(DESC_LOCALIZATION)
!insertmacro MUI_FUNCTION_DESCRIPTION_END

66
pkg/gpxsee.xml Normal file
View File

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/gpx+xml">
<comment>GPS Exchange Format</comment>
<sub-class-of type="application/xml"/>
<generic-icon name="application-xml"/>
<glob pattern="*.gpx"/>
</mime-type>
<mime-type type="application/tcx+xml">
<comment>Training Center XML</comment>
<sub-class-of type="application/xml"/>
<generic-icon name="application-xml"/>
<glob pattern="*.tcx"/>
</mime-type>
<mime-type type="application/kml+xml">
<comment>Keyhole Markup Language</comment>
<sub-class-of type="application/xml"/>
<generic-icon name="application-xml"/>
<glob pattern="*.kml"/>
</mime-type>
<mime-type type="application/vnd.ant.fit">
<comment>Flexible and Interoperable Data Transfer</comment>
<sub-class-of type="application/octet-stream"/>
<generic-icon name="application-octet-stream"/>
<glob pattern="*.fit"/>
</mime-type>
<mime-type type="application/vnd.fai.igc">
<comment>Flight Recorder Data Format</comment>
<sub-class-of type="text/plain"/>
<generic-icon name="text-plain"/>
<glob pattern="*.igc"/>
</mime-type>
<mime-type type="application/vnd.nmea.nmea">
<comment>NMEA 0183 data</comment>
<sub-class-of type="text/plain"/>
<generic-icon name="text-plain"/>
<glob pattern="*.nmea"/>
</mime-type>
<mime-type type="application/vnd.oziexplorer.plt">
<comment>OziExplorer Track Point File</comment>
<sub-class-of type="text/plain"/>
<generic-icon name="text-plain"/>
<glob pattern="*.plt"/>
</mime-type>
<mime-type type="application/vnd.oziexplorer.rte">
<comment>OziExplorer Route File</comment>
<sub-class-of type="text/plain"/>
<generic-icon name="text-plain"/>
<glob pattern="*.rte"/>
</mime-type>
<mime-type type="application/vnd.oziexplorer.wpt">
<comment>OziExplorer Waypoint File</comment>
<sub-class-of type="text/plain"/>
<generic-icon name="text-plain"/>
<glob pattern="*.wpt"/>
</mime-type>
</mime-info>

View File

@ -5,14 +5,14 @@
; The name of the installer
Name "GPXSee"
; Program version
!define VERSION "4.13"
!define VERSION "5.10"
; The file to write
OutFile "GPXSee-${VERSION}_x64.exe"
; Compression method
SetCompressor /SOLID lzma
; Required execution level
; Required execution level
RequestExecutionLevel admin
; The default installation directory
@ -26,7 +26,7 @@ VIAddVersionKey "ProductName" "GPXSee"
VIAddVersionKey "LegalCopyright" "GPXSee project"
VIAddVersionKey "FileDescription" "GPXSee installer (x64)"
; Registry key to check for directory (so if you install again, it will
; Registry key to check for directory (so if you install again, it will
; overwrite the old one automatically)
InstallDirRegKey HKLM "Software\GPXSee" "Install_Dir"
@ -39,11 +39,14 @@ InstallDirRegKey HKLM "Software\GPXSee" "Install_Dir"
!define REGFIT "GPXSee.fit"
!define REGIGC "GPXSee.igc"
!define REGNMEA "GPXSee.nmea"
!define REGPLT "GPXSee.plt"
!define REGRTE "GPXSee.rte"
!define REGWPT "GPXSee.wpt"
; Start menu page configuration
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\GPXSee"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "GPXSee"
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\GPXSee"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "GPXSee"
Var StartMenuFolder
@ -71,32 +74,31 @@ Function .onInit
MessageBox MB_OK "GPXSee can only be installed on Windows 7 or later."
Abort
${EndIf}
${If} ${RunningX64}
SetRegView 64
${Else}
MessageBox MB_OK "The 64b version of GPXSee can not be run on 32b systems."
Abort
${Else}
MessageBox MB_OK "The 64b version of GPXSee can not be run on 32b systems."
Abort
${EndIf}
FunctionEnd
FunctionEnd
; The stuff to install
Section "GPXSee" SEC_APP
SectionIn RO
; Set output path to the installation directory.
; Set output path to the installation directory
SetOutPath $INSTDIR
; Put the files there
File "gpxsee.exe"
File "maps.txt"
File "ellipsoids.csv"
File "datums.csv"
File /r "maps"
File /r "csv"
; Create start menu entry and add links
SetShellVarContext all
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\GPXSee.lnk" "$INSTDIR\gpxsee.exe"
@ -104,7 +106,7 @@ Section "GPXSee" SEC_APP
; Create the uninstaller
WriteUninstaller "$INSTDIR\uninstall.exe"
; Write the installation path into the registry
DetailPrint "Registering application..."
WriteRegStr HKLM SOFTWARE\GPXSee "Install_Dir" "$INSTDIR"
@ -121,29 +123,41 @@ Section "GPXSee" SEC_APP
DetailPrint "Associating file types..."
WriteRegStr HKCR ".gpx" "" "${REGGPX}"
WriteRegStr HKCR "${REGGPX}" "" "GPS Exchange Format"
WriteRegStr HKCR "${REGGPX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,1"
WriteRegStr HKCR "${REGGPX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,2"
WriteRegStr HKCR "${REGGPX}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".tcx" "" "${REGTCX}"
WriteRegStr HKCR "${REGTCX}" "" "Training Center XML"
WriteRegStr HKCR "${REGTCX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,2"
WriteRegStr HKCR "${REGTCX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,3"
WriteRegStr HKCR "${REGTCX}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".kml" "" "${REGKML}"
WriteRegStr HKCR "${REGKML}" "" "Keyhole Markup Language"
WriteRegStr HKCR "${REGKML}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,3"
WriteRegStr HKCR "${REGKML}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,4"
WriteRegStr HKCR "${REGKML}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".fit" "" "${REGFIT}"
WriteRegStr HKCR "${REGFIT}" "" "Flexible and Interoperable Data Transfer"
WriteRegStr HKCR "${REGFIT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,4"
WriteRegStr HKCR "${REGFIT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,5"
WriteRegStr HKCR "${REGFIT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".igc" "" "${REGIGC}"
WriteRegStr HKCR "${REGIGC}" "" "Flight Recorder Data Format"
WriteRegStr HKCR "${REGIGC}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,5"
WriteRegStr HKCR "${REGIGC}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,6"
WriteRegStr HKCR "${REGIGC}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".nmea" "" "${REGNMEA}"
WriteRegStr HKCR "${REGNMEA}" "" "NMEA 0183 data"
WriteRegStr HKCR "${REGNMEA}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,6"
WriteRegStr HKCR "${REGNMEA}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,7"
WriteRegStr HKCR "${REGNMEA}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".plt" "" "${REGPLT}"
WriteRegStr HKCR "${REGPLT}" "" "OziExplorer Track Point File"
WriteRegStr HKCR "${REGPLT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,8"
WriteRegStr HKCR "${REGPLT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".rte" "" "${REGRTE}"
WriteRegStr HKCR "${REGRTE}" "" "OziExplorer Route File"
WriteRegStr HKCR "${REGRTE}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,9"
WriteRegStr HKCR "${REGRTE}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".wpt" "" "${REGWPT}"
WriteRegStr HKCR "${REGWPT}" "" "OziExplorer Waypoint File"
WriteRegStr HKCR "${REGWPT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,1"
WriteRegStr HKCR "${REGWPT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
SectionEnd
@ -160,7 +174,7 @@ Section "QT framework" SEC_QT
File /r "platforms"
File /r "imageformats"
File /r "printsupport"
SectionEnd
Section "MSVC runtime" SEC_MSVC
@ -197,12 +211,49 @@ Section "ANGLE" SEC_ANGLE
SectionEnd
SectionGroup "Localization" SEC_LOCALIZATION
Section "Czech"
CreateDirectory "$INSTDIR\translations"
File /oname=translations\gpxsee_cs.qm translations\gpxsee_cs.qm
File /oname=translations\qt_cs.qm translations\qt_cs.qm
SectionEnd
Section "Finnish"
CreateDirectory "$INSTDIR\translations"
File /oname=translations\gpxsee_fi.qm translations\gpxsee_fi.qm
File /oname=translations\qt_fi.qm translations\qt_fi.qm
SectionEnd
Section "French"
CreateDirectory "$INSTDIR\translations"
File /oname=translations\gpxsee_fr.qm translations\gpxsee_fr.qm
File /oname=translations\qt_fr.qm translations\qt_fr.qm
SectionEnd
Section "German"
CreateDirectory "$INSTDIR\translations"
File /oname=translations\gpxsee_de.qm translations\gpxsee_de.qm
File /oname=translations\qt_de.qm translations\qt_de.qm
SectionEnd
Section "Polish"
CreateDirectory "$INSTDIR\translations"
File /oname=translations\gpxsee_pl.qm translations\gpxsee_pl.qm
File /oname=translations\qt_pl.qm translations\qt_pl.qm
SectionEnd
Section "Russian"
CreateDirectory "$INSTDIR\translations"
File /oname=translations\gpxsee_ru.qm translations\gpxsee_ru.qm
File /oname=translations\qt_ru.qm translations\qt_ru.qm
SectionEnd
Section "Swedish"
CreateDirectory "$INSTDIR\translations"
File /oname=translations\gpxsee_sv.qm translations\gpxsee_sv.qm
SectionEnd
SectionGroupEnd
;--------------------------------
; Uninstaller
Section "Uninstall"
; Remove registry keys
SetRegView 64
DeleteRegKey HKLM "${REGENTRY}"
@ -216,7 +267,7 @@ Section "Uninstall"
!insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
Delete "$SMPROGRAMS\$StartMenuFolder\*.*"
RMDir "$SMPROGRAMS\$StartMenuFolder"
; Remove File associations
DeleteRegKey HKCR "${REGGPX}"
DeleteRegKey HKCR ".gpx"
@ -230,6 +281,12 @@ Section "Uninstall"
DeleteRegKey HKCR ".igc"
DeleteRegKey HKCR "${REGNMEA}"
DeleteRegKey HKCR ".nmea"
DeleteRegKey HKCR "${REGPLT}"
DeleteRegKey HKCR ".plt"
DeleteRegKey HKCR "${REGRTE}"
DeleteRegKey HKCR ".rte"
DeleteRegKey HKCR "${REGWPT}"
DeleteRegKey HKCR ".wpt"
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
SectionEnd
@ -249,6 +306,8 @@ LangString DESC_ANGLE ${LANG_ENGLISH} \
"ANGLE (OpenGL via Direct3D). Enables OpenGL on systems without native OpenGL drivers."
LangString DESC_APP ${LANG_ENGLISH} \
"GPXSee application"
LangString DESC_LOCALIZATION ${LANG_ENGLISH} \
"Localization"
;Assign language strings to sections
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
@ -257,4 +316,5 @@ LangString DESC_APP ${LANG_ENGLISH} \
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_ANGLE} $(DESC_ANGLE)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_MSVC} $(DESC_MSVC)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_APP} $(DESC_APP)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_LOCALIZATION} $(DESC_LOCALIZATION)
!insertmacro MUI_FUNCTION_DESCRIPTION_END

View File

@ -1,5 +0,0 @@
Open Topo Map https://a.tile.opentopomap.org/$z/$x/$y.png
4UMaps http://4umaps.eu/$z/$x/$y.png
Open Street Map http://tile.openstreetmap.org/$z/$x/$y.png
USGS Topo https://navigator.er.usgs.gov/tiles/tcr.cgi/$z/$x/$y.png
USGS Imagery https://navigator.er.usgs.gov/tiles/aerial_Imagery.cgi/$z/$x/$y

8
pkg/maps/4UMaps.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<map xmlns="http://www.gpxsee.org/map/1">
<name>4UMaps</name>
<url>http://4umaps.eu/$z/$x/$y.png</url>
<copyright>Map data: © OpenStreetMap contributors (ODbL) | Rendering: © 4UMaps.eu</copyright>
<zoom min="2" max="15"/>
<bounds bottom="-65"/>
</map>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<map xmlns="http://www.gpxsee.org/map/1">
<name>Open Street Map</name>
<url>http://tile.openstreetmap.org/$z/$x/$y.png</url>
<copyright>Map data: © OpenStreetMap contributors (ODbL) | Rendering: © OpenStreetMap (CC-BY-SA)</copyright>
</map>

7
pkg/maps/OpenTopoMap.xml Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<map xmlns="http://www.gpxsee.org/map/1">
<name>Open Topo Map</name>
<url>https://a.tile.opentopomap.org/$z/$x/$y.png</url>
<copyright>Map data: © OpenStreetMap contributors (ODbL), SRTM | Rendering: © OpenTopoMap (CC-BY-SA)</copyright>
<zoom max="17"/>
</map>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<map xmlns="http://www.gpxsee.org/map/1">
<name>USGS Imagery</name>
<url>https://basemap.nationalmap.gov/ArcGIS/rest/services/USGSImageryOnly/MapServer/tile/$z/$y/$x</url>
<copyright>Map services and data available from U.S. Geological Survey, National Geospatial Program.</copyright>
<zoom min="2" max="15"/>
<bounds bottom="0" top="74"/>
</map>

7
pkg/maps/USGS-topo.xml Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<map xmlns="http://www.gpxsee.org/map/1">
<name>USGS Topo</name>
<url>https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/$z/$y/$x</url>
<copyright>Map services and data available from U.S. Geological Survey, National Geospatial Program.</copyright>
<zoom min="2" max="15"/>
</map>

111
src/GUI/app.cpp Normal file
View File

@ -0,0 +1,111 @@
#include <QtGlobal>
#include <QTranslator>
#include <QLocale>
#include <QFileOpenEvent>
#include <QNetworkProxyFactory>
#include <QNetworkAccessManager>
#include <QLibraryInfo>
#include "map/downloader.h"
#include "map/ellipsoid.h"
#include "map/gcs.h"
#include "map/pcs.h"
#include "opengl.h"
#include "gui.h"
#include "config.h"
#include "app.h"
App::App(int &argc, char **argv) : QApplication(argc, argv),
_argc(argc), _argv(argv)
{
QTranslator *gpxsee = new QTranslator(this);
gpxsee->load(QLocale::system(), "gpxsee", "_", TRANSLATIONS_DIR);
installTranslator(gpxsee);
QTranslator *qt = new QTranslator(this);
#if defined(Q_OS_WIN32) || defined(Q_OS_MAC)
qt->load(QLocale::system(), "qt", "_", TRANSLATIONS_DIR);
#else // Q_OS_WIN32 || Q_OS_MAC
qt->load(QLocale::system(), "qt", "_", QLibraryInfo::location(
QLibraryInfo::TranslationsPath));
#endif // Q_OS_WIN32 || Q_OS_MAC
installTranslator(qt);
#ifdef Q_OS_MAC
setAttribute(Qt::AA_DontShowIconsInMenus);
#endif // Q_OS_MAC
QNetworkProxyFactory::setUseSystemConfiguration(true);
Downloader::setNetworkAccessManager(new QNetworkAccessManager(this));
OPENGL_SET_SAMPLES(4);
loadDatums();
loadPCSs();
_gui = new GUI();
}
App::~App()
{
delete _gui;
}
void App::run()
{
_gui->show();
for (int i = 1; i < _argc; i++)
_gui->openFile(QString::fromLocal8Bit(_argv[i]));
exec();
}
bool App::event(QEvent *event)
{
if (event->type() == QEvent::FileOpen) {
QFileOpenEvent *e = static_cast<QFileOpenEvent *>(event);
return _gui->openFile(e->file());
}
return QApplication::event(event);
}
void App::loadDatums()
{
QString ef, df;
if (QFile::exists(USER_ELLIPSOID_FILE))
ef = USER_ELLIPSOID_FILE;
else if (QFile::exists(GLOBAL_ELLIPSOID_FILE))
ef = GLOBAL_ELLIPSOID_FILE;
else
qWarning("No ellipsoids file found.");
if (QFile::exists(USER_GCS_FILE))
df = USER_GCS_FILE;
else if (QFile::exists(GLOBAL_GCS_FILE))
df = GLOBAL_GCS_FILE;
else
qWarning("No datums file found.");
if (!ef.isNull() && !df.isNull()) {
Ellipsoid::loadList(ef);
GCS::loadList(df);
} else
qWarning("Maps based on a datum different from WGS84 won't work.");
}
void App::loadPCSs()
{
QString file;
if (QFile::exists(USER_PCS_FILE))
file = USER_PCS_FILE;
else if (QFile::exists(GLOBAL_PCS_FILE))
file = GLOBAL_PCS_FILE;
else {
qWarning("No PCS file found.");
return;
}
PCS::loadList(file);
}

View File

@ -18,6 +18,9 @@ protected:
bool event(QEvent *event);
private:
void loadDatums();
void loadPCSs();
int &_argc;
char **_argv;
GUI *_gui;

View File

@ -1,7 +1,7 @@
#include <cmath>
#include <QPainter>
#include "config.h"
#include "misc.h"
#include "nicenum.h"
#include "axisitem.h"

View File

@ -2,7 +2,7 @@
#define AXISITEM_H
#include <QGraphicsItem>
#include "range.h"
#include "common/range.h"
class AxisItem : public QGraphicsItem
{

View File

@ -1,10 +1,10 @@
#include "data.h"
#include "data/data.h"
#include "cadencegraphitem.h"
#include "cadencegraph.h"
CadenceGraph::CadenceGraph(QWidget *parent) : GraphTab(parent)
{
_units = Metric;
_showTracks = true;
GraphView::setYUnits(tr("1/min"));
@ -24,33 +24,33 @@ void CadenceGraph::setInfo()
clearInfo();
}
void CadenceGraph::loadData(const Data &data, const QList<PathItem *> &paths)
QList<GraphItem*> CadenceGraph::loadData(const Data &data)
{
QList<GraphItem*> graphs;
for (int i = 0; i < data.tracks().count(); i++) {
const Graph &graph = data.tracks().at(i)->cadence();
qreal sum = 0, w = 0;
if (graph.size() < 2) {
skipColor();
continue;
graphs.append(0);
} else {
CadenceGraphItem *gi = new CadenceGraphItem(graph, _graphType);
GraphView::addGraph(gi);
_avg.append(QPointF(data.tracks().at(i)->distance(), gi->avg()));
graphs.append(gi);
}
for (int j = 1; j < graph.size(); j++) {
qreal ds = graph.at(j).s() - graph.at(j-1).s();
sum += graph.at(j).y() * ds;
w += ds;
}
_avg.append(QPointF(data.tracks().at(i)->distance(), sum/w));
GraphView::loadGraph(graph, paths.at(i));
}
for (int i = 0; i < data.routes().count(); i++)
for (int i = 0; i < data.routes().count(); i++) {
skipColor();
graphs.append(0);
}
setInfo();
redraw();
return graphs;
}
qreal CadenceGraph::avg() const

View File

@ -11,9 +11,8 @@ public:
CadenceGraph(QWidget *parent = 0);
QString label() const {return tr("Cadence");}
void loadData(const Data &data, const QList<PathItem *> &paths);
QList<GraphItem*> loadData(const Data &data);
void clear();
void setUnits(enum Units) {}
void showTracks(bool show);
void showRoutes(bool show) {Q_UNUSED(show);}
@ -24,7 +23,6 @@ private:
QList<QPointF> _avg;
enum Units _units;
bool _showTracks;
};

View File

@ -0,0 +1,26 @@
#include "tooltip.h"
#include "cadencegraphitem.h"
CadenceGraphItem::CadenceGraphItem(const Graph &graph, GraphType type,
QGraphicsItem *parent) : GraphItem(graph, type, parent)
{
qreal sum = 0;
for (int j = 1; j < graph.size(); j++)
sum += graph.at(j).y() * (graph.at(j).s() - graph.at(j-1).s());
_avg = sum/graph.last().s();
setToolTip(toolTip());
}
QString CadenceGraphItem::toolTip() const
{
ToolTip tt;
tt.insert(tr("Maximum"), QString::number(max(), 'f', 1)
+ UNIT_SPACE + tr("1/min"));
tt.insert(tr("Average"), QString::number(avg(), 'f', 1)
+ UNIT_SPACE + tr("1/min"));
return tt.toString();
}

View File

@ -0,0 +1,23 @@
#ifndef CADENCEGRAPHITEM_H
#define CADENCEGRAPHITEM_H
#include "graphitem.h"
class CadenceGraphItem : public GraphItem
{
Q_OBJECT
public:
CadenceGraphItem(const Graph &graph, GraphType type,
QGraphicsItem *parent = 0);
qreal max() const {return -bounds().top();}
qreal avg() const {return _avg;}
private:
QString toolTip() const;
qreal _avg;
};
#endif // CADENCEGRAPHITEM_H

View File

@ -9,6 +9,8 @@
ColorBox::ColorBox(QWidget *parent) : QWidget(parent)
{
_color = Qt::red;
_alpha = true;
setSizePolicy(QSizePolicy::QSizePolicy::Minimum, QSizePolicy::Fixed);
}
@ -51,9 +53,9 @@ void ColorBox::mousePressEvent(QMouseEvent *event)
{
if (event->button() != Qt::LeftButton)
return;
QColor color = QColorDialog::getColor(_color, this, QString(),
QColorDialog::ShowAlphaChannel);
QColorDialog::ColorDialogOptions options = _alpha
? QColorDialog::ShowAlphaChannel : (QColorDialog::ColorDialogOptions)0;
QColor color = QColorDialog::getColor(_color, this, QString(), options);
if (color.isValid()) {
_color = color;
update();

View File

@ -12,6 +12,7 @@ public:
const QColor &color() const {return _color;}
void setColor(const QColor &color);
void enableAlphaChannel(bool enable) {_alpha = enable;}
QSize sizeHint() const;
@ -24,6 +25,7 @@ protected:
private:
QColor _color;
bool _alpha;
};
#endif // COLORBOX_H

View File

@ -1,6 +1,8 @@
#include <cmath>
#include "data/data.h"
#include "config.h"
#include "data.h"
#include "tooltip.h"
#include "elevationgraphitem.h"
#include "elevationgraph.h"
@ -42,11 +44,8 @@ ElevationGraph::ElevationGraph(QWidget *parent) : GraphTab(parent)
_showRoutes = true;
_showTracks = true;
_units = Metric;
setYUnits();
setYUnits(Metric);
setYLabel(tr("Elevation"));
setMinYRange(50.0);
}
@ -66,59 +65,44 @@ void ElevationGraph::setInfo()
}
}
void ElevationGraph::loadGraph(const Graph &graph, Type type, PathItem *path)
GraphItem *ElevationGraph::loadGraph(const Graph &graph, Type type)
{
qreal ascent = 0, descent = 0;
qreal min, max;
if (graph.size() < 2) {
skipColor();
return;
return 0;
}
max = min = graph.at(0).y();
for (int j = 1; j < graph.size(); j++) {
qreal cur = graph.at(j).y();
qreal prev = graph.at(j-1).y();
if (cur > prev)
ascent += cur - prev;
if (cur < prev)
descent += prev - cur;
if (cur < min)
min = cur;
if (cur > max)
max = cur;
}
ElevationGraphItem *gi = new ElevationGraphItem(graph, _graphType);
GraphView::addGraph(gi, type);
if (type == Track) {
_trackAscent += ascent;
_trackDescent += descent;
_trackMax = nMax(_trackMax, max);
_trackMin = nMin(_trackMin, min);
_trackAscent += gi->ascent();
_trackDescent += gi->descent();
_trackMax = nMax(_trackMax, gi->max());
_trackMin = nMin(_trackMin, gi->min());
} else {
_routeAscent += ascent;
_routeDescent += descent;
_routeMax = nMax(_routeMax, max);
_routeMin = nMin(_routeMin, min);
_routeAscent += gi->ascent();
_routeDescent += gi->descent();
_routeMax = nMax(_routeMax, gi->max());
_routeMin = nMin(_routeMin, gi->min());
}
GraphView::loadGraph(graph, path, type);
return gi;
}
void ElevationGraph::loadData(const Data &data, const QList<PathItem *> &paths)
QList<GraphItem*> ElevationGraph::loadData(const Data &data)
{
int p = 0;
QList<GraphItem*> graphs;
for (int i = 0; i < data.tracks().count(); i++)
loadGraph(data.tracks().at(i)->elevation(), Track, paths.at(p++));
graphs.append(loadGraph(data.tracks().at(i)->elevation(), Track));
for (int i = 0; i < data.routes().count(); i++)
loadGraph(data.routes().at(i)->elevation(), Route, paths.at(p++));
graphs.append(loadGraph(data.routes().at(i)->elevation(), Route));
setInfo();
redraw();
return graphs;
}
void ElevationGraph::clear()
@ -135,9 +119,9 @@ void ElevationGraph::clear()
GraphView::clear();
}
void ElevationGraph::setYUnits()
void ElevationGraph::setYUnits(Units units)
{
if (_units == Metric) {
if (units == Metric) {
GraphView::setYUnits(tr("m"));
setYScale(1);
} else {
@ -146,15 +130,12 @@ void ElevationGraph::setYUnits()
}
}
void ElevationGraph::setUnits(enum Units units)
void ElevationGraph::setUnits(Units units)
{
_units = units;
setYUnits();
setYUnits(units);
setInfo();
GraphView::setUnits(units);
redraw();
GraphView::setUnits(units);
}
void ElevationGraph::showTracks(bool show)

View File

@ -11,7 +11,7 @@ public:
ElevationGraph(QWidget *parent = 0);
QString label() const {return tr("Elevation");}
void loadData(const Data &data, const QList<PathItem *> &paths);
QList<GraphItem*> loadData(const Data &data);
void clear();
void setUnits(enum Units units);
void showTracks(bool show);
@ -25,17 +25,16 @@ private:
qreal ascent() const;
qreal descent() const;
void setYUnits();
void setYUnits(Units units);
void setInfo();
void loadGraph(const Graph &graph, Type type, PathItem *path);
GraphItem *loadGraph(const Graph &graph, Type type);
qreal _trackAscent, _trackDescent;
qreal _routeAscent, _routeDescent;
qreal _trackMax, _routeMax;
qreal _trackMin, _routeMin;
enum Units _units;
bool _showTracks, _showRoutes;
};

View File

@ -0,0 +1,43 @@
#include "tooltip.h"
#include "elevationgraphitem.h"
ElevationGraphItem::ElevationGraphItem(const Graph &graph, GraphType type,
QGraphicsItem *parent) : GraphItem(graph, type, parent)
{
_ascent = _descent = 0;
for (int j = 1; j < graph.size(); j++) {
qreal cur = graph.at(j).y();
qreal prev = graph.at(j-1).y();
if (cur > prev)
_ascent += cur - prev;
if (cur < prev)
_descent += prev - cur;
}
setToolTip(toolTip(Metric));
}
QString ElevationGraphItem::toolTip(Units units) const
{
ToolTip tt;
qreal scale = (units == Metric) ? 1.0 : M2FT;
QString su = (units == Metric) ? tr("m") : tr("ft");
tt.insert(tr("Ascent"), QString::number(ascent() * scale, 'f', 0)
+ UNIT_SPACE + su);
tt.insert(tr("Descent"), QString::number(descent() * scale, 'f', 0)
+ UNIT_SPACE + su);
tt.insert(tr("Maximum"), QString::number(max() * scale, 'f', 0)
+ UNIT_SPACE + su);
tt.insert(tr("Minimum"), QString::number(min() * scale, 'f', 0)
+ UNIT_SPACE + su);
return tt.toString();
}
void ElevationGraphItem::setUnits(Units units)
{
setToolTip(toolTip(units));
}

View File

@ -0,0 +1,27 @@
#ifndef ELEVATIONGRAPHITEM_H
#define ELEVATIONGRAPHITEM_H
#include "graphitem.h"
class ElevationGraphItem : public GraphItem
{
Q_OBJECT
public:
ElevationGraphItem(const Graph &graph, GraphType type,
QGraphicsItem *parent = 0);
qreal ascent() const {return _ascent;}
qreal descent() const {return _descent;}
qreal min() const {return -bounds().bottom();}
qreal max() const {return -bounds().top();}
void setUnits(Units units);
private:
QString toolTip(Units units) const;
qreal _ascent, _descent;
};
#endif // ELEVATIONGRAPHITEM_H

View File

@ -42,9 +42,9 @@ ExportDialog::ExportDialog(Export *exp, QWidget *parent)
_paperSize->setCurrentIndex(index);
_resolution = new QComboBox();
_resolution->addItem("150 DPI", 150);
_resolution->addItem("300 DPI", 300);
_resolution->addItem("600 DPI", 600);
_resolution->addItem("1200 DPI", 1200);
if ((index = _resolution->findData(_export->resolution)) >= 0)
_resolution->setCurrentIndex(index);
@ -62,12 +62,17 @@ ExportDialog::ExportDialog(Export *exp, QWidget *parent)
_bottomMargin = new QDoubleSpinBox();
_leftMargin = new QDoubleSpinBox();
_rightMargin = new QDoubleSpinBox();
QString us = (_export->units == Imperial) ? tr("in") : tr("mm");
QString us = (_export->units == Metric) ? tr("mm") : tr("in");
_topMargin->setSuffix(UNIT_SPACE + us);
_bottomMargin->setSuffix(UNIT_SPACE + us);
_leftMargin->setSuffix(UNIT_SPACE + us);
_rightMargin->setSuffix(UNIT_SPACE + us);
if (_export->units == Imperial) {
if (_export->units == Metric) {
_topMargin->setValue(_export->margins.top());
_bottomMargin->setValue(_export->margins.bottom());
_leftMargin->setValue(_export->margins.left());
_rightMargin->setValue(_export->margins.right());
} else {
_topMargin->setValue(_export->margins.top() * MM2IN);
_bottomMargin->setValue(_export->margins.bottom() * MM2IN);
_leftMargin->setValue(_export->margins.left() * MM2IN);
@ -76,11 +81,6 @@ ExportDialog::ExportDialog(Export *exp, QWidget *parent)
_bottomMargin->setSingleStep(0.1);
_leftMargin->setSingleStep(0.1);
_rightMargin->setSingleStep(0.1);
} else {
_topMargin->setValue(_export->margins.top());
_bottomMargin->setValue(_export->margins.bottom());
_leftMargin->setValue(_export->margins.left());
_rightMargin->setValue(_export->margins.right());
}
QGridLayout *marginsLayout = new QGridLayout();

101
src/GUI/format.cpp Normal file
View File

@ -0,0 +1,101 @@
#include <QApplication>
#include "common/coordinates.h"
#include "format.h"
static QString deg2DMS(double val)
{
int deg = val;
double r1 = val - deg;
int min = r1 * 60.0;
double r2 = r1 - (min / 60.0);
double sec = r2 * 3600.0;
return QString("%1°%2'%3\"").arg(deg).arg(min, 2, 10, QChar('0'))
.arg(sec, 4, 'f', 1, QChar('0'));
}
static QString deg2DMM(double val)
{
int deg = val;
double r1 = val - deg;
double min = r1 * 60.0;
return QString("%1°%2'").arg(deg).arg(min, 6, 'f', 3, QChar('0'));
}
QString Format::timeSpan(qreal time, bool full)
{
unsigned h, m, s;
h = time / 3600;
m = (time - (h * 3600)) / 60;
s = time - (h * 3600) - (m * 60);
if (full || h)
return QString("%1:%2:%3").arg(h, 2, 10, QChar('0'))
.arg(m, 2, 10, QChar('0')).arg(s, 2, 10, QChar('0'));
else
return QString("%1:%2").arg(m, 2, 10, QChar('0'))
.arg(s, 2, 10, QChar('0'));
}
QString Format::distance(qreal value, Units units)
{
if (units == Imperial) {
if (value < MIINM)
return QString::number(value * M2FT, 'f', 0) + UNIT_SPACE
+ qApp->translate("Format", "ft");
else
return QString::number(value * M2MI, 'f', 1) + UNIT_SPACE
+ qApp->translate("Format", "mi");
} else if (units == Nautical) {
if (value < NMIINM)
return QString::number(value * M2FT, 'f', 0) + UNIT_SPACE
+ qApp->translate("Format", "ft");
else
return QString::number(value * M2NMI, 'f', 1) + UNIT_SPACE
+ qApp->translate("Format", "nmi");
} else {
if (value < KMINM)
return QString::number(value, 'f', 0) + UNIT_SPACE
+ qApp->translate("Format", "m");
else
return QString::number(value * M2KM, 'f', 1) + UNIT_SPACE
+ qApp->translate("Format", "km");
}
}
QString Format::elevation(qreal value, Units units)
{
if (units == Metric)
return QString::number(qRound(value)) + UNIT_SPACE
+ qApp->translate("Format", "m");
else
return QString::number(qRound(value * M2FT)) + UNIT_SPACE
+ qApp->translate("Format", "ft");
}
QString Format::coordinates(const Coordinates &value, CoordinatesFormat type)
{
QChar yH = (value.lat() < 0) ? 'S' : 'N';
QChar xH = (value.lon() < 0) ? 'W' : 'E';
switch (type) {
case DegreesMinutes:
return deg2DMM(qAbs(value.lat())) + yH + "," + QChar(0x00A0)
+ deg2DMM(qAbs(value.lon())) + xH;
break;
case DMS:
return deg2DMS(qAbs(value.lat())) + yH + "," + QChar(0x00A0)
+ deg2DMS(qAbs(value.lon())) + xH;
break;
default:
return QString::number(qAbs(value.lat()), 'f', 5) + yH + ","
+ QChar(0x00A0) + QString::number(qAbs(value.lon()), 'f', 5) + xH;
}
}

View File

@ -6,12 +6,18 @@
class Coordinates;
enum CoordinatesFormat {
DecimalDegrees,
DegreesMinutes,
DMS
};
namespace Format
{
QString timeSpan(qreal time);
QString timeSpan(qreal time, bool full = true);
QString distance(qreal value, Units units);
QString elevation(qreal value, Units units);
QString coordinates(const Coordinates &value);
QString coordinates(const Coordinates &value, CoordinatesFormat type);
}
#endif // FORMAT_H

View File

@ -2,7 +2,7 @@
#include "graphitem.h"
GraphItem::GraphItem(const Graph &graph, QGraphicsItem *parent)
GraphItem::GraphItem(const Graph &graph, GraphType type, QGraphicsItem *parent)
: QGraphicsObject(parent)
{
_id = 0;
@ -10,7 +10,7 @@ GraphItem::GraphItem(const Graph &graph, QGraphicsItem *parent)
_pen = QPen(Qt::black, _width);
_type = Distance;
_type = type;
_graph = graph;
_sx = 1.0; _sy = 1.0;
@ -25,7 +25,17 @@ GraphItem::GraphItem(const Graph &graph, QGraphicsItem *parent)
setZValue(1.0);
updatePath();
updateShape();
updateBounds();
setAcceptHoverEvents(true);
}
void GraphItem::updateShape()
{
QPainterPathStroker s;
s.setWidth(_width + 1);
_shape = s.createStroke(_path);
}
void GraphItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
@ -46,25 +56,37 @@ void GraphItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
void GraphItem::setGraphType(GraphType type)
{
if (type == _type)
return;
prepareGeometryChange();
_type = type;
updatePath();
updateShape();
updateBounds();
}
void GraphItem::setColor(const QColor &color)
{
if (_pen.color() == color)
return;
_pen.setColor(color);
update();
}
void GraphItem::setWidth(int width)
{
if (width == _width)
return;
prepareGeometryChange();
_width = width;
_pen.setWidth(width);
updateShape();
}
qreal GraphItem::yAtX(qreal x)
@ -143,9 +165,9 @@ void GraphItem::emitSliderPositionChanged(qreal pos)
emit sliderPositionChanged(pos);
}
void GraphItem::selected(bool selected)
void GraphItem::hover(bool hover)
{
if (selected) {
if (hover) {
_pen.setWidth(_width + 1);
setZValue(zValue() + 1.0);
} else {
@ -165,6 +187,7 @@ void GraphItem::setScale(qreal sx, qreal sy)
_sx = sx; _sy = sy;
updatePath();
updateShape();
}
void GraphItem::updatePath()
@ -199,3 +222,25 @@ void GraphItem::updateBounds()
_bounds = QRectF(QPointF(left, top), QPointF(right, bottom));
}
void GraphItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
{
Q_UNUSED(event);
_pen.setWidthF(_width + 1);
setZValue(zValue() + 1.0);
update();
emit selected(true);
}
void GraphItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
{
Q_UNUSED(event);
_pen.setWidthF(_width);
setZValue(zValue() - 1.0);
update();
emit selected(false);
}

View File

@ -3,41 +3,51 @@
#include <QGraphicsObject>
#include <QPen>
#include "graph.h"
#include "data/graph.h"
#include "units.h"
class GraphItem : public QGraphicsObject
{
Q_OBJECT
public:
GraphItem(const Graph &graph, QGraphicsItem *parent = 0);
GraphItem(const Graph &graph, GraphType type, QGraphicsItem *parent = 0);
virtual ~GraphItem() {}
QRectF boundingRect() const
{return _path.boundingRect();}
QPainterPath shape() const {return _shape;}
QRectF boundingRect() const {return _shape.boundingRect();}
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
QWidget *widget);
const QRectF &bounds() const {return _bounds;}
void setScale(qreal sx, qreal sy);
void setScale(qreal sx, qreal sy);
void setGraphType(GraphType type);
int id() const {return _id;}
void setId(int id) {_id = id;}
void setColor(const QColor &color);
void setWidth(int width);
virtual void setUnits(Units units) {Q_UNUSED(units);}
qreal yAtX(qreal x);
qreal distanceAtTime(qreal time);
void redraw();
signals:
void sliderPositionChanged(qreal);
void selected(bool);
public slots:
void emitSliderPositionChanged(qreal);
void selected(bool selected);
void hover(bool hover);
private:
void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
void updatePath();
void updateShape();
void updateBounds();
int _id;
@ -48,6 +58,7 @@ private:
GraphType _type;
QPainterPath _path;
QPainterPath _shape;
QRectF _bounds;
qreal _sx, _sy;

View File

@ -7,7 +7,7 @@
#include "timetype.h"
class Data;
class PathItem;
class GraphItem;
class GraphTab : public GraphView
{
@ -16,11 +16,13 @@ class GraphTab : public GraphView
public:
GraphTab(QWidget *parent = 0) : GraphView(parent)
{setFrameShape(QFrame::NoFrame);}
virtual ~GraphTab() {}
virtual QString label() const = 0;
virtual void loadData(const Data &data, const QList<PathItem *> &paths) = 0;
virtual void clear() {}
virtual void setUnits(enum Units units) {Q_UNUSED(units)}
virtual QList<GraphItem*> loadData(const Data &data) = 0;
virtual void clear() {GraphView::clear();}
virtual void setUnits(enum Units units) {GraphView::setUnits(units);}
virtual void setGraphType(GraphType type) {GraphView::setGraphType(type);}
virtual void setTimeType(enum TimeType type) {Q_UNUSED(type)}
virtual void showTracks(bool show) {Q_UNUSED(show)}
virtual void showRoutes(bool show) {Q_UNUSED(show)}

View File

@ -3,6 +3,7 @@
#include <QMouseEvent>
#include <QPaintEngine>
#include <QPaintDevice>
#include "data/graph.h"
#include "opengl.h"
#include "config.h"
#include "axisitem.h"
@ -10,9 +11,9 @@
#include "sliderinfoitem.h"
#include "infoitem.h"
#include "griditem.h"
#include "graph.h"
#include "graphitem.h"
#include "pathitem.h"
#include "format.h"
#include "graphview.h"
@ -80,12 +81,12 @@ GraphView::~GraphView()
void GraphView::createXLabel()
{
_xAxis->setLabel(QString("%1 [%2]").arg(_xLabel).arg(_xUnits));
_xAxis->setLabel(QString("%1 [%2]").arg(_xLabel, _xUnits));
}
void GraphView::createYLabel()
{
_yAxis->setLabel(QString("%1 [%2]").arg(_yLabel).arg(_yUnits));
_yAxis->setLabel(QString("%1 [%2]").arg(_yLabel, _yUnits));
}
void GraphView::setYLabel(const QString &label)
@ -103,15 +104,7 @@ void GraphView::setYUnits(const QString &units)
void GraphView::setXUnits()
{
if (_graphType == Distance) {
if (_units == Metric) {
if (bounds().width() < KMINM) {
_xUnits = tr("m");
_xScale = 1;
} else {
_xUnits = tr("km");
_xScale = M2KM;
}
} else {
if (_units == Imperial) {
if (bounds().width() < MIINM) {
_xUnits = tr("ft");
_xScale = M2FT;
@ -119,6 +112,22 @@ void GraphView::setXUnits()
_xUnits = tr("mi");
_xScale = M2MI;
}
} else if (_units == Nautical) {
if (bounds().width() < NMIINM) {
_xUnits = tr("ft");
_xScale = M2FT;
} else {
_xUnits = tr("nmi");
_xScale = M2NMI;
}
} else {
if (bounds().width() < KMINM) {
_xUnits = tr("m");
_xScale = 1;
} else {
_xUnits = tr("km");
_xScale = M2KM;
}
}
} else {
if (bounds().width() < MININS) {
@ -139,7 +148,13 @@ void GraphView::setXUnits()
void GraphView::setUnits(Units units)
{
_units = units;
for (int i = 0; i < _graphs.count(); i++)
_graphs.at(i)->setUnits(units);
setXUnits();
redraw();
}
void GraphView::setGraphType(GraphType type)
@ -167,29 +182,30 @@ void GraphView::showGrid(bool show)
_grid->setVisible(show);
}
void GraphView::loadGraph(const Graph &graph, PathItem *path, int id)
void GraphView::showSliderInfo(bool show)
{
if (graph.size() < 2)
return;
_sliderInfo->setVisible(show);
}
GraphItem *gi = new GraphItem(graph);
gi->setGraphType(_graphType);
gi->setId(id);
gi->setColor(_palette.nextColor());
gi->setWidth(_width);
void GraphView::addGraph(GraphItem *graph, int id)
{
QColor color(_palette.nextColor());
color.setAlpha(255);
connect(this, SIGNAL(sliderPositionChanged(qreal)), gi,
graph->setUnits(_units);
graph->setId(id);
graph->setColor(color);
graph->setWidth(_width);
connect(this, SIGNAL(sliderPositionChanged(qreal)), graph,
SLOT(emitSliderPositionChanged(qreal)));
connect(gi, SIGNAL(sliderPositionChanged(qreal)), path,
SLOT(moveMarker(qreal)));
connect(path, SIGNAL(selected(bool)), gi, SLOT(selected(bool)));
_graphs.append(gi);
_graphs.append(graph);
if (!_hide.contains(id)) {
_visible.append(gi);
_scene->addItem(gi);
_bounds |= gi->bounds();
_visible.append(graph);
_scene->addItem(graph);
_bounds |= graph->bounds();
setXUnits();
}
}
@ -227,11 +243,6 @@ void GraphView::showGraph(bool show, int id)
}
}
void GraphView::redraw()
{
redraw(viewport()->size() - QSizeF(MARGIN, MARGIN));
}
QRectF GraphView::bounds() const
{
QRectF br(_bounds);
@ -239,6 +250,11 @@ QRectF GraphView::bounds() const
return br;
}
void GraphView::redraw()
{
redraw(viewport()->size() - QSizeF(MARGIN, MARGIN));
}
void GraphView::redraw(const QSizeF &size)
{
QRectF r;
@ -372,22 +388,26 @@ void GraphView::updateSliderPosition()
_slider->setVisible(false);
}
updateSliderInfo();
if (_slider->isVisible())
updateSliderInfo();
}
void GraphView::updateSliderInfo()
{
_sliderInfo->setVisible(_visible.count() == 1);
if (!_sliderInfo->isVisible())
return;
qreal r, y;
QRectF br(_visible.first()->bounds());
if (br.height() < _minYRange)
br.adjust(0, -(_minYRange/2 - br.height()/2), 0,
_minYRange/2 - br.height()/2);
if (_visible.count() > 1) {
r = 0;
y = 0;
} else {
QRectF br(_visible.first()->bounds());
if (br.height() < _minYRange)
br.adjust(0, -(_minYRange/2 - br.height()/2), 0,
_minYRange/2 - br.height()/2);
qreal y = _visible.first()->yAtX(_sliderPos);
qreal r = (y - br.bottom()) / br.height();
y = _visible.first()->yAtX(_sliderPos);
r = (y - br.bottom()) / br.height();
}
qreal pos = (_sliderPos / bounds().width()) * _slider->area().width();
SliderInfoItem::Side s = (pos + _sliderInfo->boundingRect().width()
@ -395,8 +415,11 @@ void GraphView::updateSliderInfo()
_sliderInfo->setSide(s);
_sliderInfo->setPos(QPointF(0, _slider->boundingRect().height() * r));
_sliderInfo->setText(QString::number(-y * _yScale + _yOffset, 'f',
_precision));
_sliderInfo->setText(_graphType == Time ? Format::timeSpan(_sliderPos,
bounds().width() > 3600) : QString::number(_sliderPos * _xScale, 'f', 1)
+ UNIT_SPACE + _xUnits, (_visible.count() > 1) ? QString()
: QString::number(-y * _yScale + _yOffset, 'f', _precision) + UNIT_SPACE
+ _yUnits);
}
void GraphView::emitSliderPositionChanged(const QPointF &pos)
@ -442,8 +465,11 @@ void GraphView::setPalette(const Palette &palette)
_palette = palette;
_palette.reset();
for (int i = 0; i < _graphs.count(); i++)
_graphs.at(i)->setColor(_palette.nextColor());
for (int i = 0; i < _graphs.count(); i++) {
QColor color(_palette.nextColor());
color.setAlpha(255);
_graphs.at(i)->setColor(color);
}
}
void GraphView::setGraphWidth(int width)
@ -452,6 +478,8 @@ void GraphView::setGraphWidth(int width)
for (int i = 0; i < _graphs.count(); i++)
_graphs.at(i)->setWidth(width);
redraw();
}
void GraphView::useOpenGL(bool use)
@ -461,3 +489,14 @@ void GraphView::useOpenGL(bool use)
else
setViewport(new QWidget);
}
void GraphView::useAntiAliasing(bool use)
{
setRenderHint(QPainter::Antialiasing, use);
}
void GraphView::setSliderColor(const QColor &color)
{
_slider->setColor(color);
_sliderInfo->setColor(color);
}

View File

@ -4,9 +4,9 @@
#include <QGraphicsView>
#include <QList>
#include <QSet>
#include "data/graph.h"
#include "palette.h"
#include "units.h"
#include "graph.h"
class AxisItem;
@ -25,18 +25,30 @@ public:
GraphView(QWidget *parent = 0);
~GraphView();
void loadGraph(const Graph &graph, PathItem *path, int id = 0);
int count() const {return _graphs.count();}
void redraw();
bool isEmpty() const {return _graphs.isEmpty();}
void clear();
void plot(QPainter *painter, const QRectF &target, qreal scale);
void setPalette(const Palette &palette);
void setGraphWidth(int width);
void showGrid(bool show);
void showSliderInfo(bool show);
void useOpenGL(bool use);
void useAntiAliasing(bool use);
void setSliderPosition(qreal pos);
void setSliderColor(const QColor &color);
signals:
void sliderPositionChanged(qreal);
protected:
void addGraph(GraphItem *graph, int id = 0);
void showGraph(bool show, int id = 0);
void setGraphType(GraphType type);
void setUnits(Units units);
void showGrid(bool show);
void setPalette(const Palette &palette);
void setGraphWidth(int width);
const QString &yLabel() const {return _yLabel;}
const QString &yUnits() const {return _yUnits;}
@ -50,23 +62,16 @@ public:
void setSliderPrecision(int precision) {_precision = precision;}
void setMinYRange(qreal range) {_minYRange = range;}
qreal sliderPosition() const {return _sliderPos;}
void setSliderPosition(qreal pos);
void plot(QPainter *painter, const QRectF &target, qreal scale);
void useOpenGL(bool use);
signals:
void sliderPositionChanged(qreal);
protected:
QRectF bounds() const;
void redraw();
void redraw(const QSizeF &size);
void addInfo(const QString &key, const QString &value);
void clearInfo();
void skipColor() {_palette.nextColor();}
QList<GraphItem*> _graphs;
GraphType _graphType;
private slots:
void emitSliderPositionChanged(const QPointF &pos);
void newSliderPosition(const QPointF &pos);
@ -83,6 +88,7 @@ private:
void resizeEvent(QResizeEvent *);
void mousePressEvent(QMouseEvent *);
Units _units;
qreal _xScale, _yScale;
qreal _yOffset;
QString _xUnits, _yUnits;
@ -99,15 +105,11 @@ private:
InfoItem *_info;
GridItem *_grid;
QList<GraphItem*> _graphs;
QList<GraphItem*> _visible;
QSet<int> _hide;
QRectF _bounds;
Palette _palette;
int _width;
Units _units;
GraphType _graphType;
};
#endif // GRAPHVIEW_H

File diff suppressed because it is too large Load Diff

View File

@ -6,25 +6,26 @@
#include <QList>
#include <QDate>
#include <QPrinter>
#include "data/graph.h"
#include "data/poi.h"
#include "units.h"
#include "timetype.h"
#include "graph.h"
#include "poi.h"
#include "format.h"
#include "exportdialog.h"
#include "optionsdialog.h"
class QMenu;
class QToolBar;
class QTabWidget;
class QActionGroup;
class QAction;
class QLabel;
class QSplitter;
class QSignalMapper;
class QPrinter;
class FileBrowser;
class GraphTab;
class PathView;
class MapView;
class Map;
class MapList;
@ -41,7 +42,7 @@ public:
private slots:
void about();
void keys();
void dataSources();
void paths();
void printFile();
void exportFile();
void openFile();
@ -51,12 +52,12 @@ private slots:
void closePOIFiles();
void showGraphs(bool show);
void showGraphGrids(bool show);
void showGraphSliderInfo(bool show);
void showToolbars(bool show);
void showFullscreen(bool show);
void showTracks(bool show);
void showRoutes(bool show);
void loadMap();
void clearMapCache();
void nextMap();
void prevMap();
void openOptions();
@ -74,15 +75,18 @@ private slots:
void setMovingTime() {setTimeType(Moving);}
void setMetricUnits() {setUnits(Metric);}
void setImperialUnits() {setUnits(Imperial);}
void setNauticalUnits() {setUnits(Nautical);}
void setDistanceGraph() {setGraphType(Distance);}
void setTimeGraph() {setGraphType(Time);}
void setDecimalDegrees() {setCoordinatesFormat(DecimalDegrees);}
void setDegreesMinutes() {setCoordinatesFormat(DegreesMinutes);}
void setDMS() {setCoordinatesFormat(DMS);}
void sliderPositionChanged(qreal pos);
private:
typedef QPair<QDate, QDate> DateRange;
void loadDatums();
void loadMaps();
void loadPOIs();
void closeFiles();
@ -95,23 +99,25 @@ private:
void createMenus();
void createToolBars();
void createStatusBar();
void createPathView();
void createMapView();
void createGraphTabs();
void createBrowser();
bool openPOIFile(const QString &fileName);
bool loadFile(const QString &fileName);
bool loadMap(const QString &fileName);
void exportFile(const QString &fileName);
void updateStatusBarInfo();
void updateWindowTitle();
void updateNavigationActions();
void updateGraphTabs();
void updatePathView();
bool updateGraphTabs();
bool updateMapView();
TimeType timeType() const;
Units units() const;
void setTimeType(TimeType type);
void setUnits(Units units);
void setCoordinatesFormat(CoordinatesFormat format);
void setGraphType(GraphType type);
qreal distance() const;
@ -137,7 +143,7 @@ private:
QActionGroup *_mapsActionGroup;
QAction *_exitAction;
QAction *_keysAction;
QAction *_dataSourcesAction;
QAction *_pathsAction;
QAction *_aboutAction;
QAction *_aboutQtAction;
QAction *_printFileAction;
@ -156,6 +162,7 @@ private:
QAction *_clearMapCacheAction;
QAction *_showGraphsAction;
QAction *_showGraphGridAction;
QAction *_showGraphSliderInfoAction;
QAction *_distanceGraphAction;
QAction *_timeGraphAction;
QAction *_showToolbarsAction;
@ -165,6 +172,10 @@ private:
QAction *_firstAction;
QAction *_metricUnitsAction;
QAction *_imperialUnitsAction;
QAction *_nauticalUnitsAction;
QAction *_decimalDegreesAction;
QAction *_degreesMinutesAction;
QAction *_DMSAction;
QAction *_totalTimeAction;
QAction *_movingTimeAction;
QAction *_nextMapAction;
@ -186,17 +197,18 @@ private:
QLabel *_distanceLabel;
QLabel *_timeLabel;
PathView *_pathView;
QSplitter *_splitter;
MapView *_mapView;
QTabWidget *_graphTabWidget;
QList<GraphTab*> _tabs;
POI *_poi;
MapList *_ml;
Map *_map;
FileBrowser *_browser;
QList<QString> _files;
Map *_map;
int _trackCount;
int _routeCount;
int _waypointCount;
@ -214,6 +226,8 @@ private:
Export _export;
Options _options;
QString _dataDir, _mapDir, _poiDir;
};
#endif // GUI_H

View File

@ -1,10 +1,10 @@
#include "data.h"
#include "data/data.h"
#include "heartrategraphitem.h"
#include "heartrategraph.h"
HeartRateGraph::HeartRateGraph(QWidget *parent) : GraphTab(parent)
{
_units = Metric;
_showTracks = true;
GraphView::setYUnits(tr("1/min"));
@ -24,33 +24,33 @@ void HeartRateGraph::setInfo()
clearInfo();
}
void HeartRateGraph::loadData(const Data &data, const QList<PathItem *> &paths)
QList<GraphItem*> HeartRateGraph::loadData(const Data &data)
{
QList<GraphItem*> graphs;
for (int i = 0; i < data.tracks().count(); i++) {
const Graph &graph = data.tracks().at(i)->heartRate();
qreal sum = 0, w = 0;
if (graph.size() < 2) {
skipColor();
continue;
graphs.append(0);
} else {
HeartRateGraphItem *gi = new HeartRateGraphItem(graph, _graphType);
GraphView::addGraph(gi);
_avg.append(QPointF(data.tracks().at(i)->distance(), gi->avg()));
graphs.append(gi);
}
for (int j = 1; j < graph.size(); j++) {
qreal ds = graph.at(j).s() - graph.at(j-1).s();
sum += graph.at(j).y() * ds;
w += ds;
}
_avg.append(QPointF(data.tracks().at(i)->distance(), sum/w));
GraphView::loadGraph(graph, paths.at(i));
}
for (int i = 0; i < data.routes().count(); i++)
for (int i = 0; i < data.routes().count(); i++) {
skipColor();
graphs.append(0);
}
setInfo();
redraw();
return graphs;
}
qreal HeartRateGraph::avg() const

View File

@ -11,7 +11,7 @@ public:
HeartRateGraph(QWidget *parent = 0);
QString label() const {return tr("Heart rate");}
void loadData(const Data &data, const QList<PathItem *> &paths);
QList<GraphItem*> loadData(const Data &data);
void clear();
void showTracks(bool show);
@ -22,7 +22,6 @@ private:
QList<QPointF> _avg;
enum Units _units;
bool _showTracks;
};

View File

@ -0,0 +1,26 @@
#include "tooltip.h"
#include "heartrategraphitem.h"
HeartRateGraphItem::HeartRateGraphItem(const Graph &graph, GraphType type,
QGraphicsItem *parent) : GraphItem(graph, type, parent)
{
qreal sum = 0;
for (int j = 1; j < graph.size(); j++)
sum += graph.at(j).y() * (graph.at(j).s() - graph.at(j-1).s());
_avg = sum/graph.last().s();
setToolTip(toolTip());
}
QString HeartRateGraphItem::toolTip() const
{
ToolTip tt;
tt.insert(tr("Maximum"), QString::number(max(), 'f', 0)
+ UNIT_SPACE + tr("1/min"));
tt.insert(tr("Average"), QString::number(avg(), 'f', 0)
+ UNIT_SPACE + tr("1/min"));
return tt.toString();
}

View File

@ -0,0 +1,23 @@
#ifndef HEARTRATEGRAPHITEM_H
#define HEARTRATEGRAPHITEM_H
#include "graphitem.h"
class HeartRateGraphItem : public GraphItem
{
Q_OBJECT
public:
HeartRateGraphItem(const Graph &graph, GraphType type,
QGraphicsItem *parent = 0);
qreal max() const {return -bounds().top();}
qreal avg() const {return _avg;}
private:
QString toolTip() const;
qreal _avg;
};
#endif // HEARTRATEGRAPHITEM_H

View File

@ -23,7 +23,7 @@ void InfoItem::updateBoundingRect()
for (i = _list.constBegin(); i != _list.constEnd(); i++) {
width += fm.width(i->key + ": ");
width += fm.width(i->value) + ((i == _list.end() - 1) ? 0 : PADDING);
width += fm.width(i->value) + ((i == _list.constEnd() - 1) ? 0 : PADDING);
}
_boundingRect = QRectF(0, 0, width, _list.isEmpty() ? 0 : fm.height());
@ -49,8 +49,8 @@ void InfoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
painter->drawText(width, fm.height() - fm.descent(), i->key + ": ");
width += fm.width(i->key + ": ");
painter->drawText(width, fm.height() - fm.descent(), i->value);
width += fm.width(i->value) + ((i == _list.end() - 1) ? 0 : PADDING);
if (i != _list.end() - 1) {
width += fm.width(i->value) + ((i == _list.constEnd() - 1) ? 0 : PADDING);
if (i != _list.constEnd() - 1) {
painter->save();
painter->setPen(Qt::gray);
painter->drawLine(width - PADDING/2, fm.descent(),

View File

@ -9,9 +9,10 @@
#define FIRST_KEY Qt::Key_Home
#define LAST_KEY Qt::Key_End
#define MODIFIER Qt::ShiftModifier
#define ZOOM_IN QKeySequence::ZoomIn
#define ZOOM_OUT QKeySequence::ZoomOut
#define ZOOM_IN Qt::Key_Plus
#define ZOOM_OUT Qt::Key_Minus
#define TOGGLE_GRAPH_TYPE_KEY Qt::Key_X
#define TOGGLE_TIME_TYPE_KEY Qt::Key_T
#define QUIT_SHORTCUT QKeySequence(QKeySequence::Quit)
#define OPEN_SHORTCUT QKeySequence(QKeySequence::Open)
@ -23,8 +24,6 @@
#define NEXT_MAP_SHORTCUT QKeySequence(QKeySequence::Forward)
#define PREV_MAP_SHORTCUT QKeySequence(QKeySequence::Back)
#define SHOW_GRAPHS_SHORTCUT QKeySequence(Qt::CTRL + Qt::Key_G)
#define DISTANCE_GRAPH_SHORTCUT QKeySequence(Qt::CTRL + Qt::Key_D)
#define TIME_GRAPH_SHORTCUT QKeySequence(Qt::CTRL + Qt::Key_T)
#ifdef Q_OS_MAC
#define FULLSCREEN_SHORTCUT QKeySequence(Qt::META + Qt::CTRL + Qt::Key_F)

Some files were not shown because too many files have changed in this diff Show More