Compare commits
229 Commits
Author | SHA1 | Date | |
---|---|---|---|
372f2966bb | |||
1aa0fa4be4 | |||
f4e19d0917 | |||
91376fd609 | |||
92b2fbaf04 | |||
a21096a0a9 | |||
920cf03d1b | |||
72155beb6b | |||
|
88acc78e1c | ||
|
1583794329 | ||
|
beb2f6d70c | ||
|
afd3a09f50 | ||
|
2a247a2a38 | ||
44af6eea4d | |||
40c396a8c8 | |||
5018aecb42 | |||
a2d56236b6 | |||
b20a6cd479 | |||
7bbf6fba97 | |||
d2ac9f2ee6 | |||
|
fa344e94e4 | ||
|
dd53293229 | ||
355f451e5c | |||
0b61fb0470 | |||
af18c98a03 | |||
e9a8112196 | |||
|
bca335d4b2 | ||
|
f3b1fa8eb7 | ||
|
fac377e746 | ||
7184c691d3 | |||
381ab1516d | |||
cf84680bc6 | |||
|
74e322860f | ||
38abffda17 | |||
|
304d4f770e | ||
|
739564955e | ||
|
4e45cf6d40 | ||
|
644e14947d | ||
c171e8088c | |||
|
431357b08d | ||
af03a85fdb | |||
|
003bdd8814 | ||
91c0e2a83d | |||
496a474bd2 | |||
f1b7d57027 | |||
2e4e702640 | |||
9d3cdbbd42 | |||
0e329f4b22 | |||
2041cc7ff5 | |||
8169015f70 | |||
28f55b7e0d | |||
912a00c80e | |||
8de6bbe4fb | |||
f34d6b0540 | |||
|
2eb527f2f3 | ||
94785ee2ec | |||
a2f1ef7572 | |||
7731cfaa4f | |||
a9572d05fe | |||
fdd5d46c03 | |||
39ed798a48 | |||
64b29f8aac | |||
8ea84c5c86 | |||
db6e891c30 | |||
d91acb66f2 | |||
|
3804e8ca7c | ||
2595926b7f | |||
|
0d38603332 | ||
66693cd5c9 | |||
4eec328dbf | |||
|
4121c99e56 | ||
a3f1d25d63 | |||
6c80d89c89 | |||
7cf957a48d | |||
792ede2a96 | |||
|
cee53eab90 | ||
|
1f81d867d5 | ||
|
39edcd4a1e | ||
2808768f13 | |||
451782ce20 | |||
5d1ba90f09 | |||
60fd7fb7c3 | |||
7249c85a02 | |||
099ce0ad6c | |||
b1aa32d23b | |||
1f31a5d6c5 | |||
044770bc84 | |||
c5f51e935e | |||
17ad10ba23 | |||
f5f27c0212 | |||
7e1bbbbd6a | |||
71a757983f | |||
cc7209ad70 | |||
ba49497608 | |||
48404ea43b | |||
b9fb9eece3 | |||
0cac0369aa | |||
cdf198ec1d | |||
0896b54831 | |||
9f1808274f | |||
5d2465cffc | |||
2ab7bff3f8 | |||
060cfb574d | |||
5c178b4088 | |||
2f4a7f8053 | |||
5f1838ea30 | |||
bdf75169c5 | |||
|
9295f8f4a9 | ||
3fc8e69ebb | |||
4438bc8d52 | |||
|
f9e99fcc73 | ||
8041aa454c | |||
|
f494543e54 | ||
1ee60b4f96 | |||
|
70936cafe3 | ||
ca17ec9e5f | |||
|
74781d6462 | ||
d3781e7f0b | |||
|
466e8f2909 | ||
c4e44c8796 | |||
|
1c9dd610d5 | ||
59be4aaf1a | |||
|
538ec4f71b | ||
398ef2c4f5 | |||
|
9bb56032b0 | ||
5df43d3fb5 | |||
|
c3e76e1d3d | ||
ac41483530 | |||
|
766000458d | ||
e0000d7299 | |||
9059e6d30d | |||
|
0d029636be | ||
819a67158a | |||
|
89b4bc56e4 | ||
610dd0a009 | |||
|
08d09d038e | ||
41e8b7094a | |||
|
02c236a49e | ||
0ee28d7f45 | |||
98acd3f75a | |||
|
f67c262292 | ||
|
7cfd62ca97 | ||
a3459e34e0 | |||
d43f58deb9 | |||
73e7a1dbf4 | |||
319cdbf838 | |||
213ab73ceb | |||
db2d81042b | |||
e27bc437fa | |||
3dd21ade19 | |||
46ea3dd257 | |||
0ed630dd20 | |||
9cd82319e9 | |||
335df85fae | |||
f1b52c7005 | |||
b3fd46a225 | |||
c678866c22 | |||
e2764b6232 | |||
ad13a5b0cf | |||
2b967ce05e | |||
5ff99b13a2 | |||
7a161fa364 | |||
7ee681313f | |||
871cb8433c | |||
2a925b0c84 | |||
1219801910 | |||
25fb9e5f9b | |||
701f392a29 | |||
699e086618 | |||
eeee16ff9b | |||
001fa34cdd | |||
a97dc3b6c2 | |||
f2ae75d7f5 | |||
816681f267 | |||
d738555a68 | |||
4e466d16a1 | |||
b7bb3b649a | |||
e0e9fa660a | |||
67b91f62a0 | |||
0ab6e02e6c | |||
7f20e2e307 | |||
68f1f1fc3f | |||
a4449897a7 | |||
80a8ac260d | |||
6673281e1c | |||
30157f8e4a | |||
12e3bbc988 | |||
9d5ac81f2f | |||
c0f97ddbd4 | |||
d7d193871a | |||
|
4b9bb04cec | ||
d3889b6dfe | |||
240ddaf39c | |||
53685253d7 | |||
38486e594b | |||
47dd212f47 | |||
a11ba0487c | |||
c014526bd9 | |||
f620bbc383 | |||
9ac10e2909 | |||
5f623975f9 | |||
bd266ea73c | |||
6774e29d3f | |||
a02f157bd8 | |||
4bad7c9b46 | |||
93402dd4cd | |||
f6dcf43c1a | |||
7452650999 | |||
863f6ac58f | |||
a57b50e07c | |||
450b8aad59 | |||
|
2fcee5aae0 | ||
2fefd3ec55 | |||
8a3808248a | |||
7d2bbfe12a | |||
929035eee9 | |||
cccda7395e | |||
93775a5adf | |||
f5b0c3f041 | |||
c1eca4eacf | |||
6b0a08ae91 | |||
81751a2564 | |||
4281e809be | |||
67820d7c4d | |||
2a16a1f34c | |||
a086c13648 | |||
85fd574b38 | |||
62ae50ecda | |||
b969eef432 |
@ -1,4 +1,4 @@
|
||||
version: 13.31.{build}
|
||||
version: 13.39.{build}
|
||||
|
||||
configuration:
|
||||
- Release
|
||||
@ -8,24 +8,24 @@ image:
|
||||
|
||||
environment:
|
||||
NSISDIR: C:\Program Files (x86)\NSIS
|
||||
JOMDIR: C:\Qt\Tools\QtCreator\bin\jom
|
||||
matrix:
|
||||
- QTDIR: C:\Qt\5.15\msvc2019_64
|
||||
OPENSSLDIR: C:\OpenSSL-v111-Win64\bin
|
||||
NSISDEF: /DOPENSSL /DANGLE
|
||||
- QTDIR: C:\Qt\6.7\msvc2019_64
|
||||
OPENSSLDIR: C:\OpenSSL-v33-Win64\bin
|
||||
NSISDEF: /DQT6 /DOPENSSL
|
||||
- QTDIR: C:\Qt\6.8\msvc2022_64
|
||||
NSISDEF: /DQT6
|
||||
|
||||
install:
|
||||
- cmd: |-
|
||||
set PATH=%QTDIR%\bin;%NSISDIR%;%PATH%
|
||||
set PATH=%QTDIR%\bin;%NSISDIR%;%JOMDIR%;%PATH%
|
||||
call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat
|
||||
|
||||
build_script:
|
||||
- cmd: |-
|
||||
lrelease gpxsee.pro
|
||||
qmake gpxsee.pro
|
||||
nmake release
|
||||
jom release
|
||||
|
||||
md installer
|
||||
copy release\GPXSee.exe installer
|
||||
@ -36,8 +36,8 @@ build_script:
|
||||
xcopy lang\*.qm installer\translations\ /sy
|
||||
xcopy icons\symbols installer\symbols /i
|
||||
copy licence.txt installer
|
||||
copy %OPENSSLDIR%\libcrypto-*-x64.dll installer
|
||||
copy %OPENSSLDIR%\libssl-*-x64.dll installer
|
||||
IF DEFINED OPENSSLDIR (copy %OPENSSLDIR%\libcrypto-*-x64.dll installer)
|
||||
IF DEFINED OPENSSLDIR (copy %OPENSSLDIR%\libssl-*-x64.dll installer)
|
||||
|
||||
makensis.exe %NSISDEF% installer\gpxsee64.nsi
|
||||
|
||||
|
2
.github/workflows/android.yml
vendored
@ -43,7 +43,7 @@ jobs:
|
||||
- name: Configure build
|
||||
run: qmake gpxsee.pro OPENSSL_PATH=android_openssl
|
||||
- name: Build project
|
||||
run: make -j2 apk
|
||||
run: make -j4 apk
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
|
9
.github/workflows/linux.yml
vendored
@ -8,7 +8,10 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
name: GPXSee
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
matrix:
|
||||
config: ['release', 'debug']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
@ -19,6 +22,6 @@ jobs:
|
||||
- name: Create localization
|
||||
run: lrelease gpxsee.pro
|
||||
- name: Configure build
|
||||
run: qmake gpxsee.pro
|
||||
run: qmake CONFIG+=${{ matrix.config }} gpxsee.pro
|
||||
- name: Build project
|
||||
run: make -j2
|
||||
run: make -j4
|
||||
|
2
.github/workflows/osx.yml
vendored
@ -15,7 +15,7 @@ jobs:
|
||||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v4
|
||||
with:
|
||||
version: '6.8.0'
|
||||
version: '6.8.2'
|
||||
modules: qtpositioning qtserialport qtimageformats
|
||||
- name: Create localization
|
||||
run: lrelease gpxsee.pro
|
||||
|
@ -5,7 +5,9 @@ GPS log file formats.
|
||||
## Features
|
||||
* Opens GPX, TCX, FIT, KML, NMEA, IGC, CUP, SIGMA SLF, Suunto SML, LOC, GeoJSON,
|
||||
OziExplorer (PLT, RTE, WPT), Garmin GPI&CSV, TomTom OV2&ITN, ONmove OMD/GHP,
|
||||
TwoNav (TRK, RTE, WPT), GPSDump WPT and geotagged JPEG files.
|
||||
TwoNav (TRK, RTE, WPT), GPSDump WPT, Velocitek VTK, Vakaros VKX, 70mai GPS logs
|
||||
and geotagged JPEG files.
|
||||
* Opens geo URIs (RFC 5870).
|
||||
* User-definable online maps (OpenStreetMap/Google tiles, WMTS, WMS, TMS,
|
||||
QuadTiles).
|
||||
* Offline maps (MBTiles, OziExplorer maps, TrekBuddy maps/atlases,
|
||||
@ -28,8 +30,8 @@ GPS log file formats.
|
||||
|
||||
## Build
|
||||
Build requirements:
|
||||
* Qt5 >= 5.11 or Qt6 >= 6.2 (Android builds require Qt6)
|
||||
* C++11 or newer compiler (tested: msvc2019, gcc 7.5.0, clang/Apple LLVM version
|
||||
* Qt5 >= 5.15 or Qt6 >= 6.2 (Android builds require Qt6)
|
||||
* C++11 or newer compiler (tested: msvc2022, gcc 11, clang/Apple LLVM version
|
||||
10.0.0)
|
||||
|
||||
Build steps:
|
||||
|
@ -21,9 +21,9 @@
|
||||
</rule>
|
||||
|
||||
<rule e="way" closed="yes" k="natural" v="rock|stone|bare_rock|bedrock" zoom-min="14">
|
||||
<area fill="#60000000"/>
|
||||
<area fill="#96968f"/>
|
||||
</rule>
|
||||
<rule e="way" closed="yes" k="natural" v="glacier" zoom-min="12">
|
||||
<rule e="way" closed="yes" k="natural" v="glacier" zoom-min="10">
|
||||
<area fill="#ddf1fd"/>
|
||||
</rule>
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
<area fill="#e4efcf"/>
|
||||
</rule>
|
||||
|
||||
<rule e="way" closed="yes" k="landuse" v="construction|quarry|landfill|industrial|farm|farmyard" zoom-min="10">
|
||||
<rule e="way" closed="yes" k="landuse" v="construction|quarry|landfill|industrial|farm|farmyard|railway" zoom-min="10">
|
||||
<area fill="#d6d4ce"/>
|
||||
</rule>
|
||||
<rule e="way" closed="yes" k="landuse" v="allotments" zoom-min="10">
|
||||
@ -82,7 +82,13 @@
|
||||
<!-- Water -->
|
||||
<rule e="way" closed="yes" k="natural" v="water">
|
||||
<area fill="#9fc4e1"/>
|
||||
<rule e="way" k="*" v="*" zoom-min="14">
|
||||
<rule e="way" k="bBoxWeight" v="~|mid|large|xlarge|xxlarge|xxxlarge" zoom-min="14" zoom-max="15">
|
||||
<caption fill="#ffffff" font-size="12" font-family="serif" font-style="italic" k="name" stroke="#9fc4e1" stroke-width="2"/>
|
||||
</rule>
|
||||
<rule e="way" k="bBoxWeight" v="~|xsmall|small|mid|large|xlarge|xxlarge|xxxlarge" zoom-min="16" zoom-max="16">
|
||||
<caption fill="#ffffff" font-size="12" font-family="serif" font-style="italic" k="name" stroke="#9fc4e1" stroke-width="2"/>
|
||||
</rule>
|
||||
<rule e="way" k="*" v="*" zoom-min="17">
|
||||
<caption fill="#ffffff" font-size="12" font-family="serif" font-style="italic" k="name" stroke="#9fc4e1" stroke-width="2"/>
|
||||
</rule>
|
||||
</rule>
|
||||
@ -167,21 +173,28 @@
|
||||
</rule>
|
||||
<rule e="way" closed="yes" k="amenity" v="parking" zoom-min="10">
|
||||
<area fill="#ffffff" stroke="#d5cdc0" stroke-width="0.1"/>
|
||||
<rule e="way" k="*" v="*" zoom-min="17">
|
||||
<rule e="way" k="parking" v="~|surface|street_side|lane" zoom-min="17">
|
||||
<symbol id="parking" src=":/POI/parking-11.svg" symbol-width="11"/>
|
||||
</rule>
|
||||
<rule e="way" k="parking" v="underground|multi-storey" zoom-min="17">
|
||||
<symbol id="garage" src=":/POI/parking-garage-11.svg" symbol-width="11"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="way" closed="yes" k="highway" v="pedestrian" zoom-min="10">
|
||||
<area fill="#ffffff"/>
|
||||
</rule>
|
||||
<rule e="way" closed="yes" k="leisure" v="pitch|playground|track" zoom-min="10">
|
||||
<rule e="way" closed="yes" k="leisure" v="pitch|playground|track|ls_track" zoom-min="10">
|
||||
<area fill="#e3edc6" stroke="#c9d3a5" stroke-width="1" scale="none"/>
|
||||
</rule>
|
||||
<rule e="way" closed="yes" k="leisure" v="swimming_pool" zoom-min="10">
|
||||
<rule e="way" closed="no" k="leisure" v="track|ls_track" zoom-min="10">
|
||||
<line stroke="#c9d3a5" stroke-width="0.3"/>
|
||||
<line stroke="#e3edc6" stroke-width="0.2"/>
|
||||
</rule>
|
||||
<rule e="way" closed="yes" k="leisure" v="swimming_pool" zoom-min="12">
|
||||
<area fill="#9fc4e1" stroke="#4398d9" stroke-width="1" scale="none"/>
|
||||
</rule>
|
||||
<rule e="way" k="leisure" v="track" zoom-min="10">
|
||||
<line stroke="#e3edc6" stroke-width="1"/>
|
||||
<rule e="way" closed="yes" k="amenity" v="fountain" zoom-min="12">
|
||||
<area fill="#9fc4e1"/>
|
||||
</rule>
|
||||
|
||||
<!-- Area overlays -->
|
||||
@ -201,10 +214,11 @@
|
||||
</rule>
|
||||
|
||||
<!-- Buildings -->
|
||||
<rule e="way" k="building" v="*">
|
||||
<rule e="way" k="building" v="-|civic|office|cathedral|church|basilica">
|
||||
<area fill="#dbd0b6" stroke="#cdccc4" stroke-width="0.1"/>
|
||||
</rule>
|
||||
<rule e="way" k="building" v="civic">
|
||||
|
||||
<rule e="way" k="building" v="civic|office">
|
||||
<area fill="#cfc4b3" stroke="#cdccc4" stroke-width="0.1"/>
|
||||
<rule e="way" k="*" v="*" zoom-min="16">
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" priority="-10"/>
|
||||
@ -390,7 +404,7 @@
|
||||
<rule e="way" k="*" v="*" zoom-min="14">
|
||||
<pathText fill="#000000" font-size="10" k="name" priority="-5" stroke="#FFFFFF" stroke-width="2"/>
|
||||
<rule e="way" k="oneway" v="yes|true|1" zoom-min="16">
|
||||
<lineSymbol priority="-50" src=":/symbols/arrow.svg" symbol-width="16" symbol-height="8"/>
|
||||
<lineSymbol priority="-50" src=":/symbols/oneway.svg" symbol-width="16" symbol-height="8"/>
|
||||
</rule>
|
||||
</rule>
|
||||
</rule>
|
||||
@ -415,6 +429,12 @@
|
||||
<line stroke="#f7d9a6" stroke-width="1" stroke-linecap="butt"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="way" k="*" v="*" zoom-min="14">
|
||||
<pathText fill="#000000" font-size="10" k="name" priority="-3" stroke="#FFFFFF" stroke-width="2"/>
|
||||
<rule e="way" k="oneway" v="yes|true|1" zoom-min="16">
|
||||
<lineSymbol priority="-50" src=":/symbols/oneway.svg" symbol-width="16" symbol-height="8"/>
|
||||
</rule>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="way" k="highway" v="motorway|motorway_link">
|
||||
<rule e="way" k="tunnel" v="~|false|no">
|
||||
@ -449,7 +469,7 @@
|
||||
|
||||
<!-- Railways -->
|
||||
<rule e="way" k="tunnel" v="~|false|no">
|
||||
<rule e="way" k="railway" v="rail">
|
||||
<rule e="way" k="railway" v="rail|preserved|disused">
|
||||
<rule e="way" k="*" v="*" zoom-min="10" zoom-max="12">
|
||||
<line stroke="#717171" stroke-width="1" stroke-linecap="butt"/>
|
||||
</rule>
|
||||
@ -466,7 +486,7 @@
|
||||
<line stroke="#ffffff" stroke-width="0.4608" stroke-dasharray="2,2" stroke-linecap="butt" scale="all"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="way" k="railway" v="narrow_gauge|light_rail|funicular" zoom-min="15">
|
||||
<rule e="way" k="railway" v="narrow_gauge|light_rail|funicular" zoom-min="14">
|
||||
<line stroke="#414141" stroke-width="0.2" stroke-linecap="butt"/>
|
||||
</rule>
|
||||
<rule e="way" k="railway" v="tram" zoom-min="15">
|
||||
@ -474,7 +494,7 @@
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="way" k="tunnel" v="yes|true">
|
||||
<rule e="way" k="railway" v="rail">
|
||||
<rule e="way" k="railway" v="rail|preserved|disused">
|
||||
<rule e="way" k="*" v="*" zoom-min="10" zoom-max="12">
|
||||
<line stroke="#717171" stroke-width="1" stroke-linecap="butt" stroke-dasharray="10,8"/>
|
||||
</rule>
|
||||
@ -488,7 +508,7 @@
|
||||
<line stroke="#878787" stroke-width="0.4144" stroke-linecap="butt" stroke-dasharray="2,1" scale="all"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="way" k="railway" v="narrow_gauge|light_rail|funicular" zoom-min="15">
|
||||
<rule e="way" k="railway" v="narrow_gauge|light_rail|funicular" zoom-min="14">
|
||||
<line stroke="#414141" stroke-width="0.2" stroke-linecap="butt" stroke-dasharray="12,4"/>
|
||||
</rule>
|
||||
<rule e="way" k="railway" v="tram" zoom-min="15">
|
||||
@ -533,45 +553,91 @@
|
||||
</rule>
|
||||
</rule>
|
||||
|
||||
<!-- Town & vilage names -->
|
||||
<!-- Town & village names -->
|
||||
<rule e="node" k="place" v="locality|isolated_dwelling|farm" zoom-min="14">
|
||||
<caption fill="#000000" font-size="10" k="name" priority="10" stroke="#FFFFFF" stroke-width="2"/>
|
||||
</rule>
|
||||
<rule e="node" k="place" v="hamlet" zoom-min="12">
|
||||
<caption fill="#000000" font-size="12" k="name" priority="20" stroke="#FFFFFF" stroke-width="2"/>
|
||||
<caption fill="#000000" font-size="14" k="name" priority="20" stroke="#FFFFFF" stroke-width="2"/>
|
||||
</rule>
|
||||
<rule e="node" k="place" v="village" zoom-min="11">
|
||||
<caption fill="#000000" font-size="12" k="name" priority="20" stroke="#FFFFFF" stroke-width="2"/>
|
||||
<caption fill="#000000" font-size="14" k="name" priority="20" stroke="#FFFFFF" stroke-width="2"/>
|
||||
</rule>
|
||||
<rule e="node" k="place" v="town" zoom-min="9">
|
||||
<caption fill="#000000" font-size="14" k="name" priority="30" stroke="#FFFFFF" stroke-width="2"/>
|
||||
<rule e="node" k="place" v="town" zoom-min="9" zoom-max="14">
|
||||
<rule e="node" k="*" v="*" zoom-max="10">
|
||||
<caption fill="#000000" font-size="14" k="name" priority="30" stroke="#FFFFFF" stroke-width="2"/>
|
||||
</rule>
|
||||
<rule e="node" k="*" v="*" zoom-min="11">
|
||||
<caption fill="#000000" font-size="16" k="name" font-style="bold" priority="30" stroke="#FFFFFF" stroke-width="2"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="node" k="place" v="city">
|
||||
<rule e="node" k="capital" v="yes|1|2">
|
||||
<caption fill="#000000" font-size="16" font-style="bold" k="name" priority="40" stroke="#FFFFFF" stroke-width="2" text-transform="uppercase"/>
|
||||
<rule e="node" k="*" v="*" zoom-max="10">
|
||||
<rule e="node" k="capital" v="2">
|
||||
<caption fill="#000000" font-size="18" font-style="bold" k="name" priority="40" stroke="#FFFFFF" stroke-width="2" text-transform="uppercase"/>
|
||||
</rule>
|
||||
<rule e="node" k="capital" v="4|~">
|
||||
<caption fill="#000000" font-size="18" font-style="bold" k="name" priority="35" stroke="#FFFFFF" stroke-width="2"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="node" k="capital" v="no|~">
|
||||
<caption fill="#000000" font-size="16" font-style="bold" k="name" priority="35" stroke="#FFFFFF" stroke-width="2"/>
|
||||
<rule e="node" k="*" v="*" zoom-min="11" zoom-max="14">
|
||||
<rule e="node" k="capital" v="2">
|
||||
<caption fill="#000000" font-size="22" font-style="bold" k="name" priority="40" stroke="#FFFFFF" stroke-width="2" text-transform="uppercase"/>
|
||||
</rule>
|
||||
<rule e="node" k="capital" v="4|~">
|
||||
<caption fill="#000000" font-size="22" font-style="bold" k="name" priority="35" stroke="#FFFFFF" stroke-width="2"/>
|
||||
</rule>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="node" k="place" v="suburb">
|
||||
<rule e="node" k="*" v="*" zoom-min="12" zoom-max="13">
|
||||
<caption fill="#000000" font-size="14" k="name" priority="25" stroke="#FFFFFF" stroke-width="2"/>
|
||||
</rule>
|
||||
<rule e="node" k="*" v="*" zoom-min="14" zoom-max="17">
|
||||
<caption fill="#000000" font-size="16" k="name" priority="25" stroke="#FFFFFF" stroke-width="2"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="node" k="place" v="quarter" zoom-min="14" zoom-max="17">
|
||||
<caption fill="#000000" font-size="14" k="name" priority="20" stroke="#FFFFFF" stroke-width="2"/>
|
||||
</rule>
|
||||
<rule e="node" k="place" v="neighbourhood" zoom-min="15" zoom-max="17">
|
||||
<caption fill="#000000" font-size="12" k="name" priority="15" stroke="#FFFFFF" stroke-width="2"/>
|
||||
</rule>
|
||||
|
||||
<!-- Nature POIs -->
|
||||
<rule e="node" k="natural" v="peak" zoom-min="13">
|
||||
<rule e="node" k="name" v="*">
|
||||
<symbol id="peak" src=":/POI/mountain-11.svg" symbol-width="11" priority="10"/>
|
||||
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="peak"/>
|
||||
<rule e="node" k="ele" v="*">
|
||||
<rule e="node" k="name" v="*">
|
||||
<symbol id="peak" src=":/POI/triangle-11.svg" symbol-width="11" priority="10"/>
|
||||
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="peak"/>
|
||||
<rule e="node" k="*" v="*" zoom-min="14">
|
||||
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="ele" stroke="#FFFFFF" stroke-width="2" symbol-id="peak" priority="-1"/>
|
||||
</rule>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="node" k="ele" v="~" zoom-min="15">
|
||||
<rule e="node" k="name" v="*">
|
||||
<symbol id="peak-minor" src=":/POI/triangle-stroked-11.svg" symbol-width="11" priority="5"/>
|
||||
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="peak-minor"/>
|
||||
</rule>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="node" k="natural" v="saddle" zoom-min="13">
|
||||
<rule e="node" k="name" v="*">
|
||||
<symbol id="saddle" src=":/symbols/saddle.svg" symbol-width="9" symbol-height="11" priority="9"/>
|
||||
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="saddle"/>
|
||||
<rule e="node" k="*" v="*" zoom-min="14">
|
||||
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="ele" stroke="#FFFFFF" stroke-width="2" symbol-id="saddle" priority="-1"/>
|
||||
</rule>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="node" k="natural" v="volcano" zoom-min="13">
|
||||
<rule e="node" k="name" v="*">
|
||||
<symbol id="volcano" src=":/POI/volcano-11.svg" symbol-width="11" priority="10"/>
|
||||
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="volcano"/>
|
||||
<rule e="node" k="*" v="*" zoom-min="14">
|
||||
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="ele" stroke="#FFFFFF" stroke-width="2" symbol-id="volcano" priority="-1"/>
|
||||
</rule>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="node" k="waterway" v="waterfall" zoom-min="15">
|
||||
@ -788,7 +854,7 @@
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="post"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="any" k="historic" v="memorial" zoom-min="17">
|
||||
<rule e="any" k="historic" v="memorial|monument" zoom-min="17">
|
||||
<symbol id="memorial" src=":/POI/monument-11.svg" symbol-width="11"/>
|
||||
<rule e="any" k="*" v="*" zoom-min="18">
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="memorial"/>
|
||||
@ -821,7 +887,7 @@
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="townhall"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="any" k="amenity" v="university" zoom-min="16">
|
||||
<rule e="any" k="amenity" v="university|college" zoom-min="16">
|
||||
<symbol id="university" src=":/POI/college-11.svg" symbol-width="11"/>
|
||||
<rule e="any" k="*" v="*" zoom-min="17">
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="university"/>
|
||||
@ -896,6 +962,36 @@
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="skateboard"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="any" k="sport" v="baseball" zoom-min="17">
|
||||
<symbol id="baseball" src=":/POI/baseball-11.svg" symbol-width="11"/>
|
||||
<rule e="any" k="*" v="*" zoom-min="18">
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="baseball"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="any" k="sport" v="basketball" zoom-min="17">
|
||||
<symbol id="basketball" src=":/POI/basketball-11.svg" symbol-width="11"/>
|
||||
<rule e="any" k="*" v="*" zoom-min="18">
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="basketball"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="any" k="sport" v="volleyball" zoom-min="17">
|
||||
<symbol id="volleyball" src=":/POI/volleyball-11.svg" symbol-width="11"/>
|
||||
<rule e="any" k="*" v="*" zoom-min="18">
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="volleyball"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="any" k="sport" v="equestrian" zoom-min="17">
|
||||
<symbol id="equestrian" src=":/POI/horse-riding-11.svg" symbol-width="11"/>
|
||||
<rule e="any" k="*" v="*" zoom-min="18">
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="equestrian"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="any" k="sport" v="cricket" zoom-min="17">
|
||||
<symbol id="cricket" src=":/POI/cricket-11.svg" symbol-width="11"/>
|
||||
<rule e="any" k="*" v="*" zoom-min="18">
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="cricket"/>
|
||||
</rule>
|
||||
</rule>
|
||||
|
||||
<rule e="any" k="amenity" v="restaurant" zoom-min="17">
|
||||
<symbol id="restaurant" src=":/POI/restaurant-11.svg" symbol-width="11" priority="-5"/>
|
||||
@ -1005,4 +1101,37 @@
|
||||
</rule>
|
||||
</rule>
|
||||
|
||||
<rule e="any" k="military" v="bunker|bunker_disused" zoom-min="17">
|
||||
<symbol id="bunker" src=":/symbols/bunker.svg" symbol-width="11" symbol-height="9"/>
|
||||
<rule e="any" k="*" v="*" zoom-min="18">
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="bunker"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="any" k="historic" v="wayside_cross|wayside_shrine" zoom-min="17">
|
||||
<symbol id="wayside-cross" src=":/symbols/cross.svg" symbol-width="6" symbol-height="8"/>
|
||||
<rule e="any" k="*" v="*" zoom-min="18">
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="wayside-cross"/>
|
||||
</rule>
|
||||
</rule>
|
||||
<rule e="any" k="leisure" v="slipway" zoom-min="16">
|
||||
<symbol id="slipway" src=":/POI/slipway-11.svg" symbol-width="11"/>
|
||||
<rule e="any" k="*" v="*" zoom-min="17">
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="slipway"/>
|
||||
</rule>
|
||||
</rule>
|
||||
|
||||
<rule e="any" k="power" v="plant" zoom-min="15">
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" priority="1"/>
|
||||
</rule>
|
||||
<rule e="any" k="landuse" v="quarry" zoom-min="14">
|
||||
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2"/>
|
||||
</rule>
|
||||
|
||||
<rule e="any" k="emergency" v="phone" zoom-min="16">
|
||||
<symbol id="phone" src=":/POI/telephone-11.svg" symbol-width="11"/>
|
||||
</rule>
|
||||
<rule e="any" k="emergency" v="defibrillator" zoom-min="16">
|
||||
<symbol id="defibrillator" src=":/POI/defibrillator-11.svg" symbol-width="11"/>
|
||||
</rule>
|
||||
|
||||
</rendertheme>
|
||||
|
17
gpxsee.pro
@ -3,8 +3,7 @@ unix:!macx:!android {
|
||||
} else {
|
||||
TARGET = GPXSee
|
||||
}
|
||||
VERSION = 13.31
|
||||
|
||||
VERSION = 13.39
|
||||
|
||||
QT += core \
|
||||
gui \
|
||||
@ -118,6 +117,11 @@ HEADERS += src/common/config.h \
|
||||
src/data/gpsdumpparser.h \
|
||||
src/data/style.h \
|
||||
src/data/twonavparser.h \
|
||||
src/data/txtparser.h \
|
||||
src/data/vkxparser.h \
|
||||
src/data/vtkparser.h \
|
||||
src/map/ENC/data.h \
|
||||
src/map/IMG/light.h \
|
||||
src/map/downloader.h \
|
||||
src/map/demloader.h \
|
||||
src/map/ENC/attributes.h \
|
||||
@ -343,6 +347,9 @@ SOURCES += src/main.cpp \
|
||||
src/GUI/pngexportdialog.cpp \
|
||||
src/GUI/projectioncombobox.cpp \
|
||||
src/GUI/passwordedit.cpp \
|
||||
src/data/txtparser.cpp \
|
||||
src/data/vkxparser.cpp \
|
||||
src/data/vtkparser.cpp \
|
||||
src/map/downloader.cpp \
|
||||
src/map/demloader.cpp \
|
||||
src/map/ENC/atlasdata.cpp \
|
||||
@ -523,7 +530,7 @@ win32 {
|
||||
RESOURCES += theme-color.qrc
|
||||
|
||||
QMAKE_TARGET_DESCRIPTION = GPXSee
|
||||
QMAKE_TARGET_COPYRIGHT = Copyright (c) 2015-2024 Martin Tuma
|
||||
QMAKE_TARGET_COPYRIGHT = Copyright (c) 2015-2025 Martin Tuma
|
||||
RC_ICONS = icons/app/gpxsee.ico \
|
||||
icons/formats/gpx.ico \
|
||||
icons/formats/tcx.ico \
|
||||
@ -558,7 +565,9 @@ win32 {
|
||||
icons/formats/trk.ico \
|
||||
icons/formats/gemf.ico \
|
||||
icons/formats/000.ico \
|
||||
icons/formats/031.ico
|
||||
icons/formats/031.ico \
|
||||
icons/formats/vtk.ico \
|
||||
icons/formats/vkx.ico
|
||||
DEFINES += _USE_MATH_DEFINES \
|
||||
NOGDI
|
||||
}
|
||||
|
23
gpxsee.qrc
@ -6,7 +6,9 @@
|
||||
|
||||
<!-- Common map stuff -->
|
||||
<qresource prefix="/symbols">
|
||||
<file alias="bunker.svg">icons/map/symbols/bunker.svg</file>
|
||||
<file alias="cliff.svg">icons/map/symbols/cliff.svg</file>
|
||||
<file alias="cross.svg">icons/map/symbols/cross.svg</file>
|
||||
<file alias="exit.svg">icons/map/symbols/exit.svg</file>
|
||||
<file alias="flow.svg">icons/map/symbols/flow.svg</file>
|
||||
<file alias="oneway.svg">icons/map/symbols/oneway.svg</file>
|
||||
@ -23,6 +25,8 @@
|
||||
<file alias="bank-11.svg">icons/map/POI/bank-11.svg</file>
|
||||
<file alias="bar-11.svg">icons/map/POI/bar-11.svg</file>
|
||||
<file alias="barrier-11.svg">icons/map/POI/barrier-11.svg</file>
|
||||
<file alias="baseball-11.svg">icons/map/POI/baseball-11.svg</file>
|
||||
<file alias="basketball-11.svg">icons/map/POI/basketball-11.svg</file>
|
||||
<file alias="bbq-11.svg">icons/map/POI/bbq-11.svg</file>
|
||||
<file alias="beach-11.svg">icons/map/POI/beach-11.svg</file>
|
||||
<file alias="beer-11.svg">icons/map/POI/beer-11.svg</file>
|
||||
@ -44,9 +48,11 @@
|
||||
<file alias="college-11.svg">icons/map/POI/college-11.svg</file>
|
||||
<file alias="communications-tower-11.svg">icons/map/POI/communications-tower-11.svg</file>
|
||||
<file alias="convenience-11.svg">icons/map/POI/convenience-11.svg</file>
|
||||
<file alias="cricket-11.svg">icons/map/POI/cricket-11.svg</file>
|
||||
<file alias="cross-11.svg">icons/map/POI/cross-11.svg</file>
|
||||
<file alias="dam-11.svg">icons/map/POI/dam-11.svg</file>
|
||||
<file alias="danger-11.svg">icons/map/POI/danger-11.svg</file>
|
||||
<file alias="defibrillator-11.svg">icons/map/POI/defibrillator-11.svg</file>
|
||||
<file alias="doctor-11.svg">icons/map/POI/doctor-11.svg</file>
|
||||
<file alias="drinking-water-11.svg">icons/map/POI/drinking-water-11.svg</file>
|
||||
<file alias="fast-food-11.svg">icons/map/POI/fast-food-11.svg</file>
|
||||
@ -66,6 +72,7 @@
|
||||
<file alias="hardware-11.svg">icons/map/POI/hardware-11.svg</file>
|
||||
<file alias="heliport-11.svg">icons/map/POI/heliport-11.svg</file>
|
||||
<file alias="home-11.svg">icons/map/POI/home-11.svg</file>
|
||||
<file alias="horse-riding-11.svg">icons/map/POI/horse-riding-11.svg</file>
|
||||
<file alias="hospital-11.svg">icons/map/POI/hospital-11.svg</file>
|
||||
<file alias="hot-spring.svg">icons/map/POI/hot-spring.svg</file>
|
||||
<file alias="ice-cream-11.svg">icons/map/POI/ice-cream-11.svg</file>
|
||||
@ -81,6 +88,7 @@
|
||||
<file alias="observation-tower.svg">icons/map/POI/observation-tower.svg</file>
|
||||
<file alias="park-11.svg">icons/map/POI/park-11.svg</file>
|
||||
<file alias="parking-11.svg">icons/map/POI/parking-11.svg</file>
|
||||
<file alias="parking-garage-11.svg">icons/map/POI/parking-garage-11.svg</file>
|
||||
<file alias="pharmacy-11.svg">icons/map/POI/pharmacy-11.svg</file>
|
||||
<file alias="picnic-site-11.svg">icons/map/POI/picnic-site-11.svg</file>
|
||||
<file alias="place-of-worship-11.svg">icons/map/POI/place-of-worship-11.svg</file>
|
||||
@ -103,6 +111,7 @@
|
||||
<file alias="skateboard-11.svg">icons/map/POI/skateboard-11.svg</file>
|
||||
<file alias="skiing-11.svg">icons/map/POI/skiing-11.svg</file>
|
||||
<file alias="slaughterhouse-11.svg">icons/map/POI/slaughterhouse-11.svg</file>
|
||||
<file alias="slipway-11.svg">icons/map/POI/slipway-11.svg</file>
|
||||
<file alias="soccer-11.svg">icons/map/POI/soccer-11.svg</file>
|
||||
<file alias="stadium-11.svg">icons/map/POI/stadium-11.svg</file>
|
||||
<file alias="swimming-11.svg">icons/map/POI/swimming-11.svg</file>
|
||||
@ -111,9 +120,12 @@
|
||||
<file alias="theatre-11.svg">icons/map/POI/theatre-11.svg</file>
|
||||
<file alias="toilet-11.svg">icons/map/POI/toilet-11.svg</file>
|
||||
<file alias="town-hall-11.svg">icons/map/POI/town-hall-11.svg</file>
|
||||
<file alias="triangle-11.svg">icons/map/POI/triangle-11.svg</file>
|
||||
<file alias="triangle-stroked-11.svg">icons/map/POI/triangle-stroked-11.svg</file>
|
||||
<file alias="viewpoint-11.svg">icons/map/POI/viewpoint-11.svg</file>
|
||||
<file alias="village-11.svg">icons/map/POI/village-11.svg</file>
|
||||
<file alias="volcano-11.svg">icons/map/POI/volcano-11.svg</file>
|
||||
<file alias="volleyball-11.svg">icons/map/POI/volleyball-11.svg</file>
|
||||
<file alias="water-11.svg">icons/map/POI/water-11.svg</file>
|
||||
<file alias="waterfall-11.svg">icons/map/POI/waterfall-11.svg</file>
|
||||
<file alias="watermill-11.svg">icons/map/POI/watermill-11.svg</file>
|
||||
@ -181,6 +193,10 @@
|
||||
<file alias="overfalls.png">icons/map/marine/overfalls.png</file>
|
||||
<file alias="boarding-place.png">icons/map/marine/boarding-place.png</file>
|
||||
<file alias="light.png">icons/map/marine/light.png</file>
|
||||
<file alias="light-red.png">icons/map/marine/light-red.png</file>
|
||||
<file alias="light-green.png">icons/map/marine/light-green.png</file>
|
||||
<file alias="light-yellow.png">icons/map/marine/light-yellow.png</file>
|
||||
<file alias="light-white.png">icons/map/marine/light-white.png</file>
|
||||
<file alias="building.png">icons/map/marine/building.png</file>
|
||||
<file alias="fog-signal.png">icons/map/marine/fog-signal.png</file>
|
||||
<file alias="construction.png">icons/map/marine/construction.png</file>
|
||||
@ -194,6 +210,13 @@
|
||||
<file alias="kelp.png">icons/map/marine/kelp.png</file>
|
||||
<file alias="eddies.png">icons/map/marine/eddies.png</file>
|
||||
<file alias="dome.png">icons/map/marine/dome.png</file>
|
||||
<file alias="radar-reflector.png">icons/map/marine/radar-reflector.png</file>
|
||||
<file alias="24h-anchorage.png">icons/map/marine/24h-anchorage.png</file>
|
||||
<file alias="dw-anchorage.png">icons/map/marine/dw-anchorage.png</file>
|
||||
<file alias="tanker-anchorage.png">icons/map/marine/tanker-anchorage.png</file>
|
||||
<file alias="nature-reserve-line.png">icons/map/marine/nature-reserve-line.png</file>
|
||||
<file alias="sanctuary-line.png">icons/map/marine/sanctuary-line.png</file>
|
||||
<file alias="fishing-farm.png">icons/map/marine/fishing-farm.png</file>
|
||||
</qresource>
|
||||
|
||||
<!-- Patterns (Mapsforge) -->
|
||||
|
@ -32,3 +32,5 @@ trk:#cccccc
|
||||
gemf:#147085
|
||||
000:#000000
|
||||
031:#000000
|
||||
vtk:#632433
|
||||
vkx:#00ccff
|
||||
|
BIN
icons/formats/vkx.icns
Normal file
BIN
icons/formats/vkx.ico
Normal file
After Width: | Height: | Size: 331 KiB |
BIN
icons/formats/vtk.icns
Normal file
BIN
icons/formats/vtk.ico
Normal file
After Width: | Height: | Size: 331 KiB |
4
icons/map/POI/baseball-11.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg version="1.1" id="baseball-11" xmlns="http://www.w3.org/2000/svg" width="11px" height="11px" viewBox="0 0 11 11">
|
||||
<path d="M7,3c0,0.5523-0.4477,1-1,1S5,3.5523,5,3s0.4477-1,1-1S7,2.4477,7,3z M9.85,10.24L9.85,10.24l-3-4.85
	C6.7391,5.2011,6.5603,5.0616,6.35,5H2.5C2.2239,5,2,5.2239,2,5.5S2.2239,6,2.5,6H5l0.92,1.09l-2.73,3l0,0
	C3.0637,10.1876,2.9928,10.3405,3,10.5C3,10.7761,3.2239,11,3.5,11c0.1224-0.0006,0.2401-0.047,0.33-0.13l0,0l3-2.71L9,10.81l0,0
	c0.0912,0.1178,0.231,0.1877,0.38,0.19c0.2761,0,0.5-0.2239,0.5-0.5C9.8938,10.4122,9.8834,10.3223,9.85,10.24z M4,0.28
	C4,0.1254,3.8746,0,3.72,0C3.6221,0.0262,3.5348,0.0821,3.47,0.16L2,4.59C1.9941,4.6331,1.9941,4.6769,2,4.72
	C2,4.8746,2.1254,5,2.28,5c0.1015-0.0243,0.1926-0.0803,0.26-0.16L4,0.41C4.006,0.3669,4.006,0.3231,4,0.28z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 876 B |
4
icons/map/POI/basketball-11.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="basketball-11" xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11">
|
||||
<path id="icon_concepts:_sports_leisure" d="M2.63,3.51a5.1555,5.1555,0,0,1,.34,1.48H2.04A3.2586,3.2586,0,0,1,2.63,3.51Zm.55-.63a6.2022,6.2022,0,0,1,.55,2.11H5.12V2.01A3.4256,3.4256,0,0,0,3.18,2.88Zm2.7-.87V4.99H7.27a6.2022,6.2022,0,0,1,.55-2.11A3.4256,3.4256,0,0,0,5.88,2.01Zm2.49,1.5a5.1555,5.1555,0,0,0-.34,1.48h.93A3.2586,3.2586,0,0,0,8.37,3.51ZM9.9,6.5a.4952.4952,0,0,1-.49.5H8.44L7.91,8.05v1.7a.2176.2176,0,0,1-.14.2.236.236,0,0,1-.08.02.1987.1987,0,0,1-.16-.07l-.75-.74-1.16.77a.2107.2107,0,0,1-.24,0L4.22,9.16l-.75.74a.2222.2222,0,0,1-.38-.15V8.05L2.57,7H1.6a.5.5,0,1,1,0-1H9.4a.4951.4951,0,0,1,.5.49ZM3.53,8V9.22l.5-.5c.01,0,.01-.01.02-.01L5.1,7H3.06l.45.9A.3561.3561,0,0,1,3.53,8Zm2.97.82-1-1.63-1,1.63,1,.67ZM7.94,7H5.9L6.95,8.71c.01,0,.01.01.02.01l.5.5V8a.3561.3561,0,0,1,.02-.1Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 944 B |
4
icons/map/POI/cricket-11.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg version="1.1" id="cricket-11" xmlns="http://www.w3.org/2000/svg" width="11px" height="11px" viewBox="0 0 11 11">
|
||||
<path d="M6,1c0,0.5523-0.4477,1-1,1S4,1.5523,4,1s0.4477-1,1-1S6,0.4477,6,1z M8.88,5.18l-1-2l0,0l0,0
	C7.7859,3.0671,7.647,3.0012,7.5,3H2.77C2.3827,2.9815,2.0467,3.2651,2,3.65l0,0l-1,6.71l0,0c-0.0068,0.0464-0.0068,0.0936,0,0.14
	C1,10.7761,1.2239,11,1.5,11c0.2307,0.0129,0.4391-0.1371,0.5-0.36l0,0l1.22-3.89l0,0l0.21-0.83l0.4,0.44l0,0L5,7.6v2.9
	C5,10.7761,5.2239,11,5.5,11S6,10.7761,6,10.5v-3l0,0l0,0C5.9971,7.3984,5.9621,7.3004,5.9,7.22l0,0L4.45,5.5L5.5,4h1.71l0.92,1.84
	l0,0C8.2247,5.9439,8.3594,6.0022,8.5,6C8.7723,6.0001,8.9946,5.7822,9,5.51C8.9826,5.3931,8.9418,5.2808,8.88,5.18z M10.5,8
	C10.2239,8,10,8.2239,10,8.5S10.2239,9,10.5,9S11,8.7761,11,8.5S10.7761,8,10.5,8z M8.69,8V7.25C8.69,7.1119,8.5781,7,8.44,7
	S8.19,7.1119,8.19,7.25V8C8.0378,8.0855,7.9426,8.2455,7.94,8.42v2.08c0,0.2761,0.2239,0.5,0.5,0.5s0.5-0.2239,0.5-0.5V8.41
	C8.9339,8.2391,8.8392,8.0837,8.69,8z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
4
icons/map/POI/defibrillator-11.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11" id="defibrillator-11">
|
||||
<path d="M1.42,4.7955C-0.2131,1.5291,3.9327-.6514,5.512,2.6149,7.0914-.6514,11.2371,1.5291,9.6039,4.7955c-0.0225.0377-.0483,0.0732-0.071,0.1108H8.3867L7.5586,3.252a0.65,0.65,0,0,0-1.1172,0L5,6.1338,4.5586,5.252A0.6243,0.6243,0,0,0,4,4.9063H1.4913C1.4685,4.8687,1.4427,4.8332,1.42,4.7955ZM8,6.1563a0.6243,0.6243,0,0,1-.5586-0.3457L7,4.9287,5.5586,7.8105a0.6241,0.6241,0,0,1-1.1172,0L3.6133,6.1563H2.3006a24.2269,24.2269,0,0,0,2.8973,3.449L5.2134,9.6208A0.44,0.44,0,0,0,5.835,9.6053a24.2289,24.2289,0,0,0,2.8905-3.449H8Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 675 B |
4
icons/map/POI/horse-riding-11.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="horse-riding-11" xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11">
|
||||
<path d="M4,1A1,1,0,1,1,5,2,1,1,0,0,1,4,1Zm6.88,3.5L9,3V2.5L7,5H6L7,6V7.014a.5.5,0,1,1-1,0V6.5L4,5H3a1,1,0,0,0-.8.446A1.189,1.189,0,0,0,1.247,5,1.076,1.076,0,0,0,0,5.988C0,7.3.635,7.471.635,7.471a.33.33,0,0,0,.115.023A.253.253,0,0,0,1,7.25V6a.49.49,0,0,1,.48-.5H1.5A.5.5,0,0,1,2,6V8.014l-.3.6a1.609,1.609,0,0,0-.2.6v1.542A.244.244,0,0,0,1.744,11,.255.255,0,0,0,2,10.756V9.514a.367.367,0,0,1,.1-.3l.9-1.2V9l.467,1.816A.256.256,0,0,0,3.709,11a.25.25,0,0,0,.25-.25v-.016l-.242-1.61a.6.6,0,0,1,.025-.236L3.8,8.714,4,8H6V9l.466,1.816A.256.256,0,0,0,6.709,11a.25.25,0,0,0,.25-.25L6.718,9.124a.6.6,0,0,1,.025-.236L7,8a.877.877,0,0,0,.934-.661L8.5,4.5a.6.6,0,0,0,.71.454.562.562,0,0,0,.143-.07l.9.116a.721.721,0,0,0,.392.1A.331.331,0,0,0,11,4.784.406.406,0,0,0,10.88,4.5ZM6,3.5A.51.51,0,0,0,5.5,3h-1a.482.482,0,0,0-.5.5V5H6Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 972 B |
4
icons/map/POI/parking-garage-11.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg version="1.1" id="parking-garage-11" xmlns="http://www.w3.org/2000/svg" width="11px" height="11px" viewBox="0 0 11 11">
|
||||
<path d="M7.25,7.44C6.8067,7.7602,6.2657,7.9158,5.72,7.88H4.45V10H3.19V4H5.8c0.5201-0.0279,1.0324,0.1358,1.44,0.46
	c0.3847,0.372,0.5828,0.8966,0.54,1.43C7.8557,6.4611,7.6596,7.0348,7.25,7.44z M6.25,5.28c-0.1946-0.1475-0.4365-0.2186-0.68-0.2
	H4.45v1.76H5.6c0.246,0.0129,0.4882-0.0654,0.68-0.22c0.1746-0.1813,0.2621-0.4293,0.24-0.68c0.023-0.2449-0.0651-0.4871-0.24-0.66
	L6.25,5.28z M10.41,3.28c0.1349-0.2403,0.0499-0.5444-0.19-0.68l-4.5-2.5c-0.1521-0.0855-0.3379-0.0855-0.49,0l-4.5,2.5
	C0.4972,2.7485,0.4288,3.0576,0.5773,3.2904C0.7144,3.5054,0.9913,3.5828,1.22,3.47l4.28-2.4l4.26,2.37
	c0.2421,0.1328,0.546,0.0442,0.6789-0.1979C10.4392,3.2414,10.4396,3.2407,10.44,3.24L10.41,3.28z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 899 B |
6
icons/map/POI/slipway-11.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="slipway-11" xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11">
|
||||
<g id="slipway-final">
|
||||
<path d="M1.0417,8l8,1.3794V10h-8Zm8-4-1,1v.625L3.7345,4.01l.0777-.2852.86-.8447H5.5a.35.35,0,0,0,0-.6992H4.529a.3478.3478,0,0,0-.2451.1L3.2546,3.291a.3566.3566,0,0,0-.0928.1582l-.0856.3137L1.0417,3C1.0948,4,1,5.5094,3,5.8844,3.9829,6.0687,8.0948,7,8.0948,7l1.9469-2Z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 452 B |
4
icons/map/POI/triangle-11.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg version="1.1" id="triangle-11" xmlns="http://www.w3.org/2000/svg" width="11px" height="11px" viewBox="0 0 11 11">
|
||||
<path id="rect3338" d="M5.5174,1.2315
	C5.3163,1.2253,5.1276,1.328,5.024,1.5l-4,6.6598C0.8013,8.5293,1.0679,8.9999,1.5,9h8c0.4321-0.0001,0.6987-0.4707,0.476-0.8402
	l-4-6.6598C5.8787,1.3386,5.706,1.2375,5.5174,1.2315z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 403 B |
4
icons/map/POI/triangle-stroked-11.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg version="1.1" id="triangle-stroked-11" xmlns="http://www.w3.org/2000/svg" width="11px" height="11px" viewBox="0 0 11 11">
|
||||
<path id="rect3338" d="M5.5174,1.2315
	C5.3163,1.2253,5.1276,1.328,5.024,1.5l-4,6.6598C0.8013,8.5293,1.0679,8.9999,1.5,9h8c0.4321-0.0001,0.6987-0.4707,0.476-0.8402
	l-4-6.6598C5.8787,1.3386,5.706,1.2375,5.5174,1.2315z M5.5,2.8627l3.0191,5.0286H2.4809L5.5,2.8627z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 456 B |
4
icons/map/POI/volleyball-11.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="volleyball-11" xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11">
|
||||
<path d="M9.99,5.73a3.6572,3.6572,0,0,1-.1.74A6.3224,6.3224,0,0,0,7.44,5.05a5.9537,5.9537,0,0,0-1.32-.27c-.03,0-.07-.01-.11-.01A4.6052,4.6052,0,0,1,5.5,3.64a1.0563,1.0563,0,0,1-.06-.24h.12a4.8784,4.8784,0,0,1,1.01.11,5.0388,5.0388,0,0,1,1.14.36,4.8341,4.8341,0,0,1,.94.53A5.1356,5.1356,0,0,1,9.99,5.73ZM9.33,7.31a5.1964,5.1964,0,0,0-1.36-.97c-.05.1-.11.19-.17.29a5.8645,5.8645,0,0,1-.59.82,7.1807,7.1807,0,0,1-.78.78,6.72,6.72,0,0,1-.93.65,6.3643,6.3643,0,0,1-1.86.72,4.524,4.524,0,0,0,3.72,0,4.1584,4.1584,0,0,0,1.25-.86,3.1983,3.1983,0,0,0,.43-.47,3.7473,3.7473,0,0,0,.48-.76A1.1915,1.1915,0,0,0,9.33,7.31ZM8.68,2.32a4.5077,4.5077,0,0,0-1.24-.88,3.979,3.979,0,0,0-.75-.28,4.3423,4.3423,0,0,0-1.03-.15,1.2787,1.2787,0,0,0-.32,0A5.3628,5.3628,0,0,0,5.25,2c0,.14.01.28.02.41a1.6165,1.6165,0,0,1,.22-.01,1.9237,1.9237,0,0,1,.24.01,6.6508,6.6508,0,0,1,1,.11,5.6947,5.6947,0,0,1,1,.28,6.7814,6.7814,0,0,1,1.02.47,6.6645,6.6645,0,0,1,.98.69A4.5655,4.5655,0,0,0,8.68,2.32ZM3.03,6.34a5.808,5.808,0,0,1-.4-.92,5.7849,5.7849,0,0,1-.28-1.03,6.86,6.86,0,0,1-.1-1.12V3.25a5.656,5.656,0,0,1,.07-.93A4.3939,4.3939,0,0,0,1.27,3.97,4.3206,4.3206,0,0,0,1,5.5a1.7671,1.7671,0,0,0,.01.23,4.4161,4.4161,0,0,0,.09.73,4.0749,4.0749,0,0,0,.31.91,1.0685,1.0685,0,0,0,.27-.07A5.0679,5.0679,0,0,0,3.2,6.63C3.14,6.53,3.08,6.44,3.03,6.34Zm3.88-.4a5.4992,5.4992,0,0,0-1.35-.19c-.02.03-.04.05-.06.08a6.2466,6.2466,0,0,1-.91,1.01,5.8334,5.8334,0,0,1-.8.61,6.5727,6.5727,0,0,1-1.83.82,3.1983,3.1983,0,0,0,.43.47,5.1724,5.1724,0,0,0,2.18-.51,5.4146,5.4146,0,0,0,.93-.55,5.5958,5.5958,0,0,0,.91-.84A4.8049,4.8049,0,0,0,7,6.01a.0517.0517,0,0,0,.02-.04A.2283.2283,0,0,0,6.91,5.94ZM4.88,4.78a5.6391,5.6391,0,0,1-.45-1.27,6.3861,6.3861,0,0,1-.16-.99c-.01-.17-.02-.35-.02-.52a5.83,5.83,0,0,1,.06-.84,3.9815,3.9815,0,0,0-.75.28A5.5806,5.5806,0,0,0,3.27,2.8c-.01.15-.02.3-.02.45a4.2153,4.2153,0,0,0,.04.62,4.7107,4.7107,0,0,0,.27,1.18,5.0984,5.0984,0,0,0,.42.92A.0517.0517,0,0,0,4,6.01a.1778.1778,0,0,0,.08-.07h.01a5.6817,5.6817,0,0,0,.84-1.06A.3131.3131,0,0,1,4.88,4.78Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
BIN
icons/map/marine/24h-anchorage.png
Normal file
After Width: | Height: | Size: 348 B |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 286 B |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 294 B |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 202 B |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 215 B |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 393 B |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 190 B |
BIN
icons/map/marine/dw-anchorage.png
Normal file
After Width: | Height: | Size: 296 B |
Before Width: | Height: | Size: 259 B After Width: | Height: | Size: 189 B |
BIN
icons/map/marine/fishing-farm.png
Normal file
After Width: | Height: | Size: 269 B |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 382 B |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 238 B |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 220 B |
BIN
icons/map/marine/light-green.png
Normal file
After Width: | Height: | Size: 466 B |
BIN
icons/map/marine/light-red.png
Normal file
After Width: | Height: | Size: 417 B |
BIN
icons/map/marine/light-white.png
Normal file
After Width: | Height: | Size: 330 B |
BIN
icons/map/marine/light-yellow.png
Normal file
After Width: | Height: | Size: 330 B |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 401 B |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 286 B |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 261 B |
BIN
icons/map/marine/nature-reserve-line.png
Normal file
After Width: | Height: | Size: 217 B |
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 212 B |
BIN
icons/map/marine/radar-reflector.png
Normal file
After Width: | Height: | Size: 236 B |
BIN
icons/map/marine/sanctuary-line.png
Normal file
After Width: | Height: | Size: 127 B |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 243 B |
BIN
icons/map/marine/tanker-anchorage.png
Normal file
After Width: | Height: | Size: 413 B |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 239 B |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 275 B |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 266 B |
10
icons/map/symbols/bunker.svg
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 11 9" height="9" width="11" version="1.1">
|
||||
<g stroke-width="1.5" stroke="#000000" fill="none">
|
||||
<rect x="2" y="2" width="7" height="5"/>
|
||||
<line x1="0" y1="0" x2="2" y2="2"/>
|
||||
<line x1="11" y1="0" x2="9" y2="2"/>
|
||||
<line x1="0" y1="9" x2="2" y2="7"/>
|
||||
<line x1="11" y1="9" x2="9" y2="7"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 363 B |
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 4 5" height="5" width="4" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<g>
|
||||
<path d="M 0.5,0 V 5" stroke-width="1.0" stroke="#666666"/>
|
||||
<path d="M 0,0.5 H 4" stroke-width="1.0" stroke="#666666"/>
|
||||
</g>
|
||||
<svg viewBox="0 0 4 5" height="5" width="4" version="1.1">
|
||||
<g stroke-width="1.0" stroke="#666666">
|
||||
<path d="M 0.5,0 V 5"/>
|
||||
<path d="M 0,0.5 H 4"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 320 B After Width: | Height: | Size: 204 B |
4
icons/map/symbols/cross.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="6" height="8" version="1.1" viewBox="0 0 6 8">
|
||||
<path d="M 0.5,3 L 5.5,3 M 3,0.5 L 3,7.5" stroke="#000000" stroke-width="1"/>
|
||||
</svg>
|
After Width: | Height: | Size: 184 B |
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15" height="11" viewBox="0 0 15 11" version="1.1">
|
||||
<g>
|
||||
<path style="stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 15.007812 0.132812 C 15.007812 0.230469 15.007812 0.324219 15.007812 0.421875 C 14.570312 1.402344 14.0625 2.710938 13.589844 3.875 C 13.480469 4.140625 13.316406 4.886719 12.96875 4.859375 C 12.683594 4.835938 12.535156 4.089844 12.445312 3.8125 C 12.292969 3.339844 12.210938 3.003906 12.074219 2.605469 C 10.507812 3.261719 9.367188 4.308594 9.421875 6.476562 C 9.460938 8.195312 10.074219 9.632812 10.441406 11.007812 C 8.917969 11.007812 7.394531 11.007812 5.871094 11.007812 C 5.730469 7.347656 5.59375 3.683594 5.46875 0.0078125 C 5.996094 0.0078125 6.519531 0.0078125 7.042969 0.0078125 C 7.40625 1.230469 7.800781 2.421875 8.15625 3.652344 C 8.941406 2.871094 10.023438 2.042969 11.335938 1.65625 C 11.128906 1.378906 10.828125 1.179688 10.5625 0.957031 C 10.320312 0.757812 9.9375 0.570312 9.945312 0.132812 C 10.007812 0.113281 10.015625 0.0390625 10.070312 0.0078125 C 11.675781 0.0078125 13.28125 0.0078125 14.882812 0.0078125 C 14.898438 0.046875 14.921875 0.0742188 14.976562 0.0703125 C 14.972656 0.109375 14.984375 0.128906 15.007812 0.132812 Z M 15.007812 0.132812 "/>
|
||||
<path style="stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 3.433594 0.0078125 C 3.957031 0.0078125 4.484375 0.0078125 5.007812 0.0078125 C 4.867188 3.667969 4.730469 7.332031 4.605469 11.007812 C 3.074219 11.007812 1.539062 11.007812 0.0078125 11.007812 C 0.0078125 10.976562 0.0078125 10.945312 0.0078125 10.914062 C 1.171875 7.300781 2.277344 3.628906 3.433594 0.0078125 Z M 3.433594 0.0078125 "/>
|
||||
</g>
|
||||
<svg width="15" height="11" viewBox="0 0 15 11" version="1.1">
|
||||
<g stroke="none" fill="#000000">
|
||||
<path d="M 15.007812 0.132812 C 15.007812 0.230469 15.007812 0.324219 15.007812 0.421875 C 14.570312 1.402344 14.0625 2.710938 13.589844 3.875 C 13.480469 4.140625 13.316406 4.886719 12.96875 4.859375 C 12.683594 4.835938 12.535156 4.089844 12.445312 3.8125 C 12.292969 3.339844 12.210938 3.003906 12.074219 2.605469 C 10.507812 3.261719 9.367188 4.308594 9.421875 6.476562 C 9.460938 8.195312 10.074219 9.632812 10.441406 11.007812 C 8.917969 11.007812 7.394531 11.007812 5.871094 11.007812 C 5.730469 7.347656 5.59375 3.683594 5.46875 0.0078125 C 5.996094 0.0078125 6.519531 0.0078125 7.042969 0.0078125 C 7.40625 1.230469 7.800781 2.421875 8.15625 3.652344 C 8.941406 2.871094 10.023438 2.042969 11.335938 1.65625 C 11.128906 1.378906 10.828125 1.179688 10.5625 0.957031 C 10.320312 0.757812 9.9375 0.570312 9.945312 0.132812 C 10.007812 0.113281 10.015625 0.0390625 10.070312 0.0078125 C 11.675781 0.0078125 13.28125 0.0078125 14.882812 0.0078125 C 14.898438 0.046875 14.921875 0.0742188 14.976562 0.0703125 C 14.972656 0.109375 14.984375 0.128906 15.007812 0.132812 Z M 15.007812 0.132812"/>
|
||||
<path d="M 3.433594 0.0078125 C 3.957031 0.0078125 4.484375 0.0078125 5.007812 0.0078125 C 4.867188 3.667969 4.730469 7.332031 4.605469 11.007812 C 3.074219 11.007812 1.539062 11.007812 0.0078125 11.007812 C 0.0078125 10.976562 0.0078125 10.945312 0.0078125 10.914062 C 1.171875 7.300781 2.277344 3.628906 3.433594 0.0078125 Z M 3.433594 0.0078125"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.6 KiB |
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 9 11" height="11" width="9" version="1.1">
|
||||
<g>
|
||||
<path d="M 1.5,1.5 L3,3 L 3,8 L 1.5,9.5" stroke-width="1" stroke="#000000" fill="none"/>
|
||||
<path d="M 7.5,1.5 L6,3 L 6,8 L 7.5,9.5" stroke-width="1" stroke="#000000" fill="none"/>
|
||||
<g stroke-width="1" stroke="#000000" fill="none">
|
||||
<path d="M 1.5,1.5 L3,3 L 3,8 L 1.5,9.5"/>
|
||||
<path d="M 7.5,1.5 L6,3 L 6,8 L 7.5,9.5"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 300 B After Width: | Height: | Size: 254 B |
@ -21,6 +21,12 @@
|
||||
<data android:scheme="content" android:mimeType="image/jpeg"/>
|
||||
<data android:scheme="content" android:mimeType="image/tiff"/>
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW"/>
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
<category android:name="android.intent.category.BROWSABLE"/>
|
||||
<data android:scheme="geo"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/>
|
||||
<meta-data android:name="android.app.arguments" android:value="-- %%INSERT_APP_ARGUMENTS%% --"/>
|
||||
|
@ -15,8 +15,9 @@
|
||||
<li>Opens GPX, TCX, FIT, KML, IGC, NMEA, SIGMA SLF, Suunto SML, LOC,
|
||||
OziExplorer (PLT, WPT, RTE), GeoJSON, SeeYou CUP,
|
||||
Garmin GPI & CSV, TomTom OV2 & ITN, ONmove OMD/GHP,
|
||||
TwoNav (TRK, RTE, WPT), GPSDump WPT and geotagged JPEG
|
||||
files.</li>
|
||||
TwoNav (TRK, RTE, WPT), GPSDump WPT, Velocitek VTK,
|
||||
Vakaros VKX, 70mai GPS logs and geotagged JPEG files.</li>
|
||||
<li>Opens geo URIs (RFC 5870).</li>
|
||||
<li>User-definable online maps (OpenStreetMap/Google tiles, WMTS,
|
||||
WMS, TMS, QuadTiles).</li>
|
||||
<li>Offline maps (MBTiles, OziExplorer maps, TrekBuddy maps/atlases,
|
||||
@ -112,5 +113,9 @@
|
||||
<mimetype>application/vnd.iho.s57-catalogue</mimetype>
|
||||
<mimetype>application/vnd.gpsdump.wpt</mimetype>
|
||||
<mimetype>application/vnd.gpstuner.gmi</mimetype>
|
||||
<mimetype>application/vnd.70mai.txt</mimetype>
|
||||
<mimetype>application/vnd.velocitek.vtk</mimetype>
|
||||
<mimetype>application/vnd.vakaros.vkx</mimetype>
|
||||
<mimetype>x-scheme-handler/geo</mimetype>
|
||||
</mimetypes>
|
||||
</component>
|
||||
|
@ -11,9 +11,9 @@ Comment[ru]=Программа для просмотра и анализа GPS
|
||||
Comment[sv]=GPS-loggfilsläsare och analysator
|
||||
Comment[tr]=GPS günlük dosyası görüntüleyici ve analizcisi
|
||||
Comment[uk]=Переглядач та аналізатор GPS логів
|
||||
Exec=gpxsee %F
|
||||
Exec=gpxsee %U
|
||||
Icon=gpxsee
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Graphics;Viewer;Education;Geography;Maps;Sports;Qt
|
||||
MimeType=application/gpx+xml;application/vnd.garmin.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;application/vnd.groundspeak.loc+xml;application/vnd.sigma.slf+xml;application/geo+json;application/vnd.naviter.seeyou.cup;application/vnd.garmin.gpi;application/vnd.suunto.sml+xml;image/jpeg;text/csv;application/vnd.garmin.img;application/vnd.garmin.jnx;application/vnd.garmin.gmap+xml;image/vnd.maptech.kap;application/vnd.oziexplorer.map;application/vnd.mapbox.mbtiles;application/vnd.twonav.rmap;application/vnd.trekbuddy.tba;application/vnd.gpxsee.map+xml;application/x-tar;image/tiff;application/vnd.google-earth.kmz;application/vnd.alpinequest.aqm;application/vnd.cgtk.gemf;application/vnd.rmaps.sqlite;application/vnd.osmdroid.sqlite;application/vnd.mapsforge.map;application/vnd.tomtom.ov2;application/vnd.tomtom.itn;application/vnd.esri.wld;application/vnd.onmove.omd;application/vnd.onmove.ghp;application/vnd.memory-map.qct;application/vnd.twonav.trk;application/vnd.twonav.rte;application/vnd.twonav.wpt;application/vnd.orux.map+xml;application/vnd.iho.s57-data;application/vnd.iho.s57-catalogue;application/vnd.gpsdump.wpt;application/vnd.gpstuner.gmi
|
||||
MimeType=x-scheme-handler/geo;application/gpx+xml;application/vnd.garmin.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;application/vnd.groundspeak.loc+xml;application/vnd.sigma.slf+xml;application/geo+json;application/vnd.naviter.seeyou.cup;application/vnd.garmin.gpi;application/vnd.suunto.sml+xml;image/jpeg;text/csv;application/vnd.garmin.img;application/vnd.garmin.jnx;application/vnd.garmin.gmap+xml;image/vnd.maptech.kap;application/vnd.oziexplorer.map;application/vnd.mapbox.mbtiles;application/vnd.twonav.rmap;application/vnd.trekbuddy.tba;application/vnd.gpxsee.map+xml;application/x-tar;image/tiff;application/vnd.google-earth.kmz;application/vnd.alpinequest.aqm;application/vnd.cgtk.gemf;application/vnd.rmaps.sqlite;application/vnd.osmdroid.sqlite;application/vnd.mapsforge.map;application/vnd.tomtom.ov2;application/vnd.tomtom.itn;application/vnd.esri.wld;application/vnd.onmove.omd;application/vnd.onmove.ghp;application/vnd.memory-map.qct;application/vnd.twonav.trk;application/vnd.twonav.rte;application/vnd.twonav.wpt;application/vnd.orux.map+xml;application/vnd.iho.s57-data;application/vnd.iho.s57-catalogue;application/vnd.gpsdump.wpt;application/vnd.gpstuner.gmi;application/vnd.70mai.txt;application/vnd.velocitek.vtk;application/vnd.vakaros.vkx
|
||||
|
@ -188,6 +188,33 @@
|
||||
<glob pattern="*.wpt"/>
|
||||
</mime-type>
|
||||
|
||||
<mime-type type="application/vnd.70mai.txt">
|
||||
<comment>70mai GPS Log File</comment>
|
||||
<sub-class-of type="text/plain"/>
|
||||
<generic-icon name="text/plain"/>
|
||||
<magic>
|
||||
<match type="string" offset="0" value="$V02"/>
|
||||
</magic>
|
||||
<glob pattern="*.txt"/>
|
||||
</mime-type>
|
||||
|
||||
<mime-type type="application/vnd.velocitek.vtk">
|
||||
<comment>Velocitek VTK File</comment>
|
||||
<sub-class-of type="application/octet-stream"/>
|
||||
<generic-icon name="application/octet-stream"/>
|
||||
<glob pattern="*.vtk"/>
|
||||
</mime-type>
|
||||
|
||||
<mime-type type="application/vnd.vakaros.vkx">
|
||||
<comment>Vakaros VKX File</comment>
|
||||
<sub-class-of type="application/octet-stream"/>
|
||||
<generic-icon name="application/octet-stream"/>
|
||||
<magic>
|
||||
<match type="byte" offset="0" value="0xFF"/>
|
||||
</magic>
|
||||
<glob pattern="*.vkx"/>
|
||||
</mime-type>
|
||||
|
||||
<!-- Maps -->
|
||||
|
||||
<mime-type type="application/vnd.garmin.img">
|
||||
|
@ -736,6 +736,66 @@
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>txt</string>
|
||||
</array>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>application/vnd.70mai.txt</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>70mai GPS Log File</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>vtk</string>
|
||||
</array>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>application/vnd.velocitek.vtk</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>icons/vtk.icns</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Velocitek VTK File</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>vkx</string>
|
||||
</array>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>application/vnd.vakaros.vkx</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>icons/vkx.icns</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Vakaros VKX File</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
</array>
|
||||
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>geo</string>
|
||||
</array>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>org.geouri.geo</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
</array>
|
||||
|
||||
<key>UTImportedTypeDeclarations</key>
|
||||
@ -1669,6 +1729,8 @@
|
||||
<string>https://iho.int/uploads/user/pubs/standards/s-57/31Main.pdf</string>
|
||||
<key>UTTypeDescription</key>
|
||||
<string>IHO S-57 Electronic Navigation Chart</string>
|
||||
<key>UTTypeIconFile</key>
|
||||
<string>icons/000.icns</string>
|
||||
<key>UTTypeConformsTo</key>
|
||||
<array>
|
||||
<string>public.data</string>
|
||||
@ -1690,6 +1752,8 @@
|
||||
<string>https://iho.int/uploads/user/pubs/standards/s-57/20ApB1.pdf</string>
|
||||
<key>UTTypeDescription</key>
|
||||
<string>IHO S-57 Electronic Navigation Catalogue</string>
|
||||
<key>UTTypeIconFile</key>
|
||||
<string>icons/031.icns</string>
|
||||
<key>UTTypeConformsTo</key>
|
||||
<array>
|
||||
<string>public.data</string>
|
||||
@ -1704,6 +1768,73 @@
|
||||
<string>application/vnd.iho.s57-catalogue</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>UTTypeIdentifier</key>
|
||||
<string>com.70mai.txt</string>
|
||||
<key>UTTypeReferenceURL</key>
|
||||
<string>https://forum.mapillary.com/t/using-the-70mai-a810-dashcam-for-mapillary/9130/7?u=boris</string>
|
||||
<key>UTTypeDescription</key>
|
||||
<string>70mai GPS Log File</string>
|
||||
<key>UTTypeConformsTo</key>
|
||||
<array>
|
||||
<string>public.data</string>
|
||||
</array>
|
||||
<key>UTTypeTagSpecification</key>
|
||||
<dict>
|
||||
<key>public.filename-extension</key>
|
||||
<array>
|
||||
<string>txt</string>
|
||||
</array>
|
||||
<key>public.mime-type</key>
|
||||
<string>application/vnd.70mai.txt</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>UTTypeIdentifier</key>
|
||||
<string>com.velocitek.vtk</string>
|
||||
<key>UTTypeReferenceURL</key>
|
||||
<string>https://github.com/velocitek/vtk_protocol</string>
|
||||
<key>UTTypeDescription</key>
|
||||
<string>Velocitek VTK File</string>
|
||||
<key>UTTypeIconFile</key>
|
||||
<string>icons/vtk.icns</string>
|
||||
<key>UTTypeConformsTo</key>
|
||||
<array>
|
||||
<string>public.data</string>
|
||||
</array>
|
||||
<key>UTTypeTagSpecification</key>
|
||||
<dict>
|
||||
<key>public.filename-extension</key>
|
||||
<array>
|
||||
<string>vtk</string>
|
||||
</array>
|
||||
<key>public.mime-type</key>
|
||||
<string>application/vnd.velocitek.vtk</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>UTTypeIdentifier</key>
|
||||
<string>com.vakaros.vkx</string>
|
||||
<key>UTTypeReferenceURL</key>
|
||||
<string>https://github.com/vakaros/vkx</string>
|
||||
<key>UTTypeDescription</key>
|
||||
<string>Vakaros VKX File</string>
|
||||
<key>UTTypeIconFile</key>
|
||||
<string>icons/vkx.icns</string>
|
||||
<key>UTTypeConformsTo</key>
|
||||
<array>
|
||||
<string>public.data</string>
|
||||
</array>
|
||||
<key>UTTypeTagSpecification</key>
|
||||
<dict>
|
||||
<key>public.filename-extension</key>
|
||||
<array>
|
||||
<string>vkx</string>
|
||||
</array>
|
||||
<key>public.mime-type</key>
|
||||
<string>application/vnd.vakaros.vkx</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
|
||||
<key>UTExportedTypeDeclarations</key>
|
||||
|
@ -18,6 +18,18 @@
|
||||
DeleteRegKey HKCR ".${EXT}"
|
||||
!macroend
|
||||
|
||||
; URI association
|
||||
!macro URI_ASSOCIATION_ADD PROTO
|
||||
WriteRegStr HKCR "${PROTO}" "" "URL:${PROTO}"
|
||||
WriteRegStr HKCR "${PROTO}" "URL Protocol" ""
|
||||
WriteRegStr HKCR "${PROTO}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,0"
|
||||
WriteRegStr HKCR "${PROTO}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
||||
!macroend
|
||||
|
||||
!macro URI_ASSOCIATION_REMOVE PROTO
|
||||
DeleteRegKey HKCR "${PROTO}"
|
||||
!macroend
|
||||
|
||||
; Translations
|
||||
!macro LOCALIZATION LANG CODE
|
||||
Section "${LANG}"
|
||||
@ -37,7 +49,7 @@ Unicode true
|
||||
; The name of the installer
|
||||
Name "GPXSee"
|
||||
; Program version
|
||||
!define VERSION "13.31"
|
||||
!define VERSION "13.39"
|
||||
|
||||
; The file to write
|
||||
OutFile "GPXSee-${VERSION}_x64.exe"
|
||||
@ -58,7 +70,7 @@ VIProductVersion "${VERSION}.0.0"
|
||||
VIAddVersionKey "ProductVersion" ${VERSION}
|
||||
VIAddVersionKey "FileVersion" "${VERSION}.0.0"
|
||||
VIAddVersionKey "ProductName" "GPXSee"
|
||||
VIAddVersionKey "LegalCopyright" "Copyright (c) 2015-2024 Martin Tůma"
|
||||
VIAddVersionKey "LegalCopyright" "Copyright (c) 2015-2025 Martin Tůma"
|
||||
VIAddVersionKey "FileDescription" "GPXSee installer (x64)"
|
||||
|
||||
; Registry key to check for directory (so if you install again, it will
|
||||
@ -192,13 +204,17 @@ Section "GPXSee" SEC_APP
|
||||
!insertmacro FILE_ASSOCIATION_ADD "gemf" "GEMF Map File" 26
|
||||
!insertmacro FILE_ASSOCIATION_ADD "000" "IHO S-57 Electronic Navigation Chart" 27
|
||||
!insertmacro FILE_ASSOCIATION_ADD "031" "IHO S-57 Electronic Navigation Catalogue" 28
|
||||
!insertmacro FILE_ASSOCIATION_ADD "kml" "Keyhole Markup Language" 29
|
||||
!insertmacro FILE_ASSOCIATION_ADD "kmz" "KML geographic compressed data" 29
|
||||
!insertmacro FILE_ASSOCIATION_ADD "fit" "Flexible and Interoperable Data Transfer" 30
|
||||
!insertmacro FILE_ASSOCIATION_ADD "igc" "Flight Recorder Data Format" 31
|
||||
!insertmacro FILE_ASSOCIATION_ADD "nmea" "NMEA 0183 Data" 32
|
||||
!insertmacro FILE_ASSOCIATION_ADD "plt" "OziExplorer Track File" 33
|
||||
!insertmacro FILE_ASSOCIATION_ADD "rte" "OziExplorer Route File" 34
|
||||
!insertmacro FILE_ASSOCIATION_ADD "vtk" "Velocitek VTK File" 29
|
||||
!insertmacro FILE_ASSOCIATION_ADD "vkx" "Vakaros VKX File" 30
|
||||
!insertmacro FILE_ASSOCIATION_ADD "kml" "Keyhole Markup Language" 31
|
||||
!insertmacro FILE_ASSOCIATION_ADD "kmz" "KML geographic compressed data" 31
|
||||
!insertmacro FILE_ASSOCIATION_ADD "fit" "Flexible and Interoperable Data Transfer" 32
|
||||
!insertmacro FILE_ASSOCIATION_ADD "igc" "Flight Recorder Data Format" 33
|
||||
!insertmacro FILE_ASSOCIATION_ADD "nmea" "NMEA 0183 Data" 34
|
||||
!insertmacro FILE_ASSOCIATION_ADD "plt" "OziExplorer Track File" 35
|
||||
!insertmacro FILE_ASSOCIATION_ADD "rte" "OziExplorer Route File" 36
|
||||
|
||||
!insertmacro URI_ASSOCIATION_ADD "geo"
|
||||
|
||||
WriteRegStr HKCR "Applications\GPXSee.exe\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
||||
WriteRegStr HKCR ".gpx\OpenWithList" "GPXSee.exe" ""
|
||||
@ -251,6 +267,9 @@ Section "GPXSee" SEC_APP
|
||||
WriteRegStr HKCR ".gemf\OpenWithList" "GPXSee.exe" ""
|
||||
WriteRegStr HKCR ".000\OpenWithList" "GPXSee.exe" ""
|
||||
WriteRegStr HKCR ".031\OpenWithList" "GPXSee.exe" ""
|
||||
WriteRegStr HKCR ".txt\OpenWithList" "GPXSee.exe" ""
|
||||
WriteRegStr HKCR ".vtk\OpenWithList" "GPXSee.exe" ""
|
||||
WriteRegStr HKCR ".vkx\OpenWithList" "GPXSee.exe" ""
|
||||
|
||||
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
||||
|
||||
@ -425,6 +444,10 @@ Section "Uninstall"
|
||||
!insertmacro FILE_ASSOCIATION_REMOVE "gemf"
|
||||
!insertmacro FILE_ASSOCIATION_REMOVE "000"
|
||||
!insertmacro FILE_ASSOCIATION_REMOVE "031"
|
||||
!insertmacro FILE_ASSOCIATION_REMOVE "vtk"
|
||||
!insertmacro FILE_ASSOCIATION_REMOVE "vkx"
|
||||
|
||||
!insertmacro URI_ASSOCIATION_REMOVE "geo"
|
||||
|
||||
DeleteRegValue HKCR ".gpx\OpenWithList" "GPXSee.exe"
|
||||
DeleteRegValue HKCR ".tcx\OpenWithList" "GPXSee.exe"
|
||||
@ -476,6 +499,9 @@ Section "Uninstall"
|
||||
DeleteRegValue HKCR ".gemf\OpenWithList" "GPXSee.exe"
|
||||
DeleteRegValue HKCR ".000\OpenWithList" "GPXSee.exe"
|
||||
DeleteRegValue HKCR ".031\OpenWithList" "GPXSee.exe"
|
||||
DeleteRegValue HKCR ".txt\OpenWithList" "GPXSee.exe"
|
||||
DeleteRegValue HKCR ".vtk\OpenWithList" "GPXSee.exe"
|
||||
DeleteRegValue HKCR ".vkx\OpenWithList" "GPXSee.exe"
|
||||
DeleteRegKey HKCR "Applications\GPXSee.exe"
|
||||
|
||||
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
||||
|
@ -73,9 +73,7 @@ App::App(int &argc, char **argv) : QApplication(argc, argv)
|
||||
#if defined(Q_OS_WIN32) || defined(Q_OS_MAC)
|
||||
QIcon::setThemeName(APP_NAME);
|
||||
#endif // Q_OS_WIN32 || Q_OS_MAC
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0)
|
||||
QIcon::setFallbackThemeName(APP_NAME);
|
||||
#endif // QT 5.12
|
||||
|
||||
_gui = new GUI();
|
||||
|
||||
|
@ -25,15 +25,6 @@
|
||||
#define IW(item) ((item)->boundingRect().width())
|
||||
#define IH(item) ((item)->boundingRect().height())
|
||||
|
||||
static inline QPoint POS(QWheelEvent *e)
|
||||
{
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
|
||||
return e->pos();
|
||||
#else // QT 5.15
|
||||
return e->position().toPoint();
|
||||
#endif // QT 5.15
|
||||
}
|
||||
|
||||
static inline QPoint POS(QMouseEvent *e)
|
||||
{
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
@ -393,7 +384,7 @@ void GraphView::wheelEvent(QWheelEvent *e)
|
||||
return;
|
||||
_angleDelta = _angleDelta % (15 * 8);
|
||||
|
||||
QPointF pos = mapToScene(POS(e));
|
||||
QPointF pos = mapToScene(e->position().toPoint());
|
||||
QRectF gr(_grid->boundingRect());
|
||||
QPointF r(pos.x() / gr.width(), pos.y() / gr.height());
|
||||
|
||||
@ -404,7 +395,8 @@ void GraphView::wheelEvent(QWheelEvent *e)
|
||||
QPointF npos(mapFromScene(QPointF(r.x() * ngr.width(),
|
||||
r.y() * ngr.height())));
|
||||
QScrollBar *sb = horizontalScrollBar();
|
||||
sb->setSliderPosition(sb->sliderPosition() + npos.x() - POS(e).x());
|
||||
sb->setSliderPosition(sb->sliderPosition() + npos.x()
|
||||
- e->position().toPoint().x());
|
||||
|
||||
QGraphicsView::wheelEvent(e);
|
||||
}
|
||||
|
@ -164,7 +164,8 @@ void GUI::mapInitialized()
|
||||
_showMapAction->setEnabled(true);
|
||||
_clearMapCacheAction->setEnabled(true);
|
||||
} else {
|
||||
qWarning("%s: %s", qPrintable(map->path()), qPrintable(map->errorString()));
|
||||
qWarning("%s: %s", qUtf8Printable(map->path()),
|
||||
qUtf8Printable(map->errorString()));
|
||||
action->deleteLater();
|
||||
}
|
||||
}
|
||||
@ -1068,18 +1069,33 @@ void GUI::openDir()
|
||||
|
||||
bool GUI::openFile(const QString &fileName, bool tryUnknown, int &showError)
|
||||
{
|
||||
QFileInfo fi(fileName);
|
||||
QString canonicalFileName(fi.canonicalFilePath());
|
||||
QString path;
|
||||
|
||||
if (_files.contains(canonicalFileName))
|
||||
QUrl url(fileName);
|
||||
if (url.scheme() == "geo") {
|
||||
if (loadURL(url, showError)) {
|
||||
_fileActionGroup->setEnabled(true);
|
||||
_reloadFileAction->setEnabled(false);
|
||||
return true;
|
||||
} else if (showError)
|
||||
return false;
|
||||
} else if (url.isLocalFile())
|
||||
path = url.toLocalFile();
|
||||
else
|
||||
path = fileName;
|
||||
|
||||
QFileInfo fi(path);
|
||||
QString canonicalPath(fi.canonicalFilePath());
|
||||
|
||||
if (_files.contains(canonicalPath))
|
||||
return true;
|
||||
|
||||
if (!loadFile(fileName, tryUnknown, showError))
|
||||
if (!loadFile(path, tryUnknown, showError))
|
||||
return false;
|
||||
|
||||
_files.append(canonicalFileName);
|
||||
_files.append(canonicalPath);
|
||||
#ifndef Q_OS_ANDROID
|
||||
_browser->setCurrent(fileName);
|
||||
_browser->setCurrent(path);
|
||||
#endif // Q_OS_ANDROID
|
||||
_fileActionGroup->setEnabled(true);
|
||||
// Explicitly enable the reload action as it may be disabled by loadMapDir()
|
||||
@ -1092,12 +1108,42 @@ bool GUI::openFile(const QString &fileName, bool tryUnknown, int &showError)
|
||||
if (_files.count() > 1)
|
||||
_mapView->showExtendedInfo(true);
|
||||
#ifndef Q_OS_ANDROID
|
||||
updateRecentFiles(canonicalFileName);
|
||||
updateRecentFiles(canonicalPath);
|
||||
#endif // Q_OS_ANDROID
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GUI::loadURL(const QUrl &url, int &showError)
|
||||
{
|
||||
Data data(url);
|
||||
|
||||
if (data.isValid()) {
|
||||
loadData(data);
|
||||
return true;
|
||||
} else {
|
||||
if (showError) {
|
||||
QString error = tr("Error loading geo URI:") + "\n" + url.toString()
|
||||
+ ": " + data.errorString();
|
||||
|
||||
if (showError > 1) {
|
||||
QMessageBox message(QMessageBox::Critical, APP_NAME, error,
|
||||
QMessageBox::Ok, this);
|
||||
QCheckBox checkBox(tr("Don't show again"));
|
||||
message.setCheckBox(&checkBox);
|
||||
message.exec();
|
||||
if (checkBox.isChecked())
|
||||
showError = 0;
|
||||
} else
|
||||
QMessageBox::critical(this, APP_NAME, error);
|
||||
} else
|
||||
qWarning("%s: %s", qUtf8Printable(url.toString()),
|
||||
qUtf8Printable(data.errorString()));
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool GUI::loadFile(const QString &fileName, bool tryUnknown, int &showError)
|
||||
{
|
||||
Data data(fileName, tryUnknown);
|
||||
@ -1147,10 +1193,12 @@ void GUI::loadData(const Data &data)
|
||||
_time += track.time();
|
||||
_movingTime += track.movingTime();
|
||||
const QDateTime date = track.date().toTimeZone(_options.timeZone.zone());
|
||||
if (_dateRange.first.isNull() || _dateRange.first > date)
|
||||
_dateRange.first = date;
|
||||
if (_dateRange.second.isNull() || _dateRange.second < date)
|
||||
_dateRange.second = date;
|
||||
if (date.isValid()) {
|
||||
if (_dateRange.first.isNull() || _dateRange.first > date)
|
||||
_dateRange.first = date;
|
||||
if (_dateRange.second.isNull() || _dateRange.second < date)
|
||||
_dateRange.second = date;
|
||||
}
|
||||
}
|
||||
_trackCount += data.tracks().count();
|
||||
|
||||
@ -1849,7 +1897,13 @@ bool GUI::loadMapNode(const TreeNode<Map*> &node, MapAction *&action,
|
||||
|
||||
bool GUI::loadMap(const QString &fileName, MapAction *&action, int &showError)
|
||||
{
|
||||
TreeNode<Map*> maps(MapList::loadMaps(fileName, _mapView->inputProjection()));
|
||||
QString path;
|
||||
QUrl url(fileName);
|
||||
|
||||
path = url.isLocalFile() ? url.toLocalFile() : fileName;
|
||||
|
||||
|
||||
TreeNode<Map*> maps(MapList::loadMaps(path, _mapView->inputProjection()));
|
||||
QList<QAction*> existingActions(_mapsActionGroup->actions());
|
||||
|
||||
return loadMapNode(maps, action, existingActions, showError);
|
||||
@ -2446,12 +2500,8 @@ QGeoPositionInfoSource *GUI::positionSource(const Options &options)
|
||||
{
|
||||
QGeoPositionInfoSource *source;
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
|
||||
source = QGeoPositionInfoSource::createSource(options.plugin, this);
|
||||
#else // QT 5.14
|
||||
source = QGeoPositionInfoSource::createSource(options.plugin,
|
||||
options.pluginParams.value(options.plugin), this);
|
||||
#endif // QT 5.14
|
||||
if (source)
|
||||
source->setPreferredPositioningMethods(
|
||||
QGeoPositionInfoSource::SatellitePositioningMethods);
|
||||
|
@ -158,6 +158,7 @@ private:
|
||||
#endif // Q_OS_ANDROID
|
||||
bool openPOIFile(const QString &fileName);
|
||||
bool loadFile(const QString &fileName, bool tryUnknown, int &showError);
|
||||
bool loadURL(const QUrl &url, int &showError);
|
||||
void loadData(const Data &data);
|
||||
bool loadMapNode(const TreeNode<Map*> &node, MapAction *&action,
|
||||
const QList<QAction*> &existingActions, int &showError);
|
||||
|
@ -638,11 +638,7 @@ void MapView::wheelEvent(QWheelEvent *event)
|
||||
return;
|
||||
_wheelDelta = _wheelDelta % (15 * 8);
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
|
||||
zoom((delta > 0) ? 1 : -1, event->pos(), shift);
|
||||
#else // QT 5.15
|
||||
zoom((delta > 0) ? 1 : -1, event->position().toPoint(), shift);
|
||||
#endif // QT 5.15
|
||||
|
||||
/* Do not call QGraphicsView::wheelEvent() here as this would shift the
|
||||
view ! */
|
||||
@ -1258,7 +1254,7 @@ void MapView::drawHillShading(bool draw)
|
||||
setMap(_map);
|
||||
}
|
||||
|
||||
void MapView::selectLayers(Layers layers)
|
||||
void MapView::selectLayers(MapView::Layers layers)
|
||||
{
|
||||
_layers = layers;
|
||||
|
||||
|
@ -136,7 +136,7 @@ public slots:
|
||||
void showMotionInfo(bool show);
|
||||
void useStyles(bool use);
|
||||
void drawHillShading(bool draw);
|
||||
void selectLayers(Layers layers);
|
||||
void selectLayers(MapView::Layers layers);
|
||||
|
||||
private slots:
|
||||
void updatePOI();
|
||||
|
@ -676,21 +676,17 @@ QWidget *OptionsDialog::createPositionPage()
|
||||
_positionPlugin = new QComboBox();
|
||||
_positionPlugin->addItems(plugins);
|
||||
_positionPlugin->setCurrentIndex(_positionPlugin->findText(_options.plugin));
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
|
||||
_pluginParameters = new PluginParameters(_positionPlugin->currentText(),
|
||||
_options.pluginParams);
|
||||
connect(_positionPlugin, &QComboBox::currentTextChanged, _pluginParameters,
|
||||
&PluginParameters::setPlugin);
|
||||
#endif // QT 5.14
|
||||
|
||||
QFormLayout *pluginLayout = new QFormLayout();
|
||||
pluginLayout->addRow(tr("Plugin:"), _positionPlugin);
|
||||
|
||||
QVBoxLayout *sourceLayout = new QVBoxLayout();
|
||||
sourceLayout->addLayout(pluginLayout);
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
|
||||
sourceLayout->addWidget(_pluginParameters);
|
||||
#endif // QT 5.14
|
||||
sourceLayout->addStretch();
|
||||
|
||||
QWidget *sourceTab = new QWidget();
|
||||
@ -1009,9 +1005,7 @@ void OptionsDialog::accept()
|
||||
_options.hillshadingZFactor = _hillshadingZFactor->value();
|
||||
|
||||
_options.plugin = _positionPlugin->currentText();
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
|
||||
_options.pluginParams = _pluginParameters->parameters();
|
||||
#endif // QT 5.14
|
||||
|
||||
_options.useOpenGL = _useOpenGL->isChecked();
|
||||
_options.enableHTTP2 = _enableHTTP2->isChecked();
|
||||
|
@ -193,9 +193,7 @@ private:
|
||||
QDoubleSpinBox *_hillshadingZFactor;
|
||||
// Position
|
||||
QComboBox *_positionPlugin;
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
|
||||
PluginParameters *_pluginParameters;
|
||||
#endif // QT 5.14
|
||||
// System
|
||||
QSpinBox *_pixmapCache;
|
||||
QSpinBox *_demCache;
|
||||
|
@ -10,13 +10,6 @@
|
||||
#include "markeritem.h"
|
||||
#include "pathitem.h"
|
||||
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
|
||||
#define INTERSECTS intersect
|
||||
#else // QT 5.15
|
||||
#define INTERSECTS intersects
|
||||
#endif // QT 5.15
|
||||
|
||||
#define GEOGRAPHICAL_MILE 1855.3248
|
||||
|
||||
Units PathItem::_units = Metric;
|
||||
@ -79,14 +72,14 @@ bool PathItem::addSegment(const Coordinates &c1, const Coordinates &c2)
|
||||
QLineF l(QPointF(c1.lon(), c1.lat()), QPointF(c2.lon() + 360,
|
||||
c2.lat()));
|
||||
QLineF dl(QPointF(180, -90), QPointF(180, 90));
|
||||
l.INTERSECTS(dl, &p);
|
||||
l.intersects(dl, &p);
|
||||
_painterPath.lineTo(_map->ll2xy(Coordinates(180, p.y())));
|
||||
_painterPath.moveTo(_map->ll2xy(Coordinates(-180, p.y())));
|
||||
} else {
|
||||
QLineF l(QPointF(c1.lon(), c1.lat()), QPointF(c2.lon() - 360,
|
||||
c2.lat()));
|
||||
QLineF dl(QPointF(-180, -90), QPointF(-180, 90));
|
||||
l.INTERSECTS(dl, &p);
|
||||
l.intersects(dl, &p);
|
||||
_painterPath.lineTo(_map->ll2xy(Coordinates(-180, p.y())));
|
||||
_painterPath.moveTo(_map->ll2xy(Coordinates(180, p.y())));
|
||||
}
|
||||
|
@ -9,9 +9,6 @@
|
||||
#include <QVBoxLayout>
|
||||
#include <QFormLayout>
|
||||
#include <QApplication>
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
|
||||
#include <QDesktopWidget>
|
||||
#endif // QT 5.15
|
||||
#include "tooltip.h"
|
||||
#include "thumbnail.h"
|
||||
#include "flowlayout.h"
|
||||
@ -184,11 +181,7 @@ bool PopupFrame::eventFilter(QObject *o, QEvent *ev)
|
||||
|
||||
void PopupFrame::place(const QPoint &pos, QWidget *w)
|
||||
{
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
|
||||
QRect screen = QApplication::desktop()->screenGeometry(w);
|
||||
#else // QT 5.15
|
||||
QRect screen = w->screen()->geometry();
|
||||
#endif // QT 5.15
|
||||
QPoint p(pos.x() + 2, pos.y() + 16);
|
||||
|
||||
if (p.x() + width() > screen.x() + screen.width())
|
||||
|
@ -64,6 +64,7 @@ GraphItem *SpeedGraph::loadGraph(const Graph &graph, const Track &track,
|
||||
if (primary) {
|
||||
_avg.append(QPointF(track.distance(), gi->avg()));
|
||||
_mavg.append(QPointF(track.distance(), gi->mavg()));
|
||||
_max.append(QPointF(track.distance(), gi->max()));
|
||||
}
|
||||
|
||||
return gi;
|
||||
@ -117,6 +118,16 @@ qreal SpeedGraph::avg() const
|
||||
return (sum / w);
|
||||
}
|
||||
|
||||
qreal SpeedGraph::max() const
|
||||
{
|
||||
qreal mv = 0;
|
||||
|
||||
for (int i = 0; i < _max.size(); i++)
|
||||
mv = qMax(mv, _max.at(i).y());
|
||||
|
||||
return mv;
|
||||
}
|
||||
|
||||
void SpeedGraph::clear()
|
||||
{
|
||||
qDeleteAll(_tracks);
|
||||
@ -124,6 +135,7 @@ void SpeedGraph::clear()
|
||||
|
||||
_avg.clear();
|
||||
_mavg.clear();
|
||||
_max.clear();
|
||||
|
||||
GraphTab::clear();
|
||||
}
|
||||
|
@ -26,12 +26,13 @@ private:
|
||||
GraphItem *loadGraph(const Graph &graph, const Track &track,
|
||||
const QColor &color, bool primary);
|
||||
qreal avg() const;
|
||||
qreal max() const {return bounds().bottom();}
|
||||
qreal max() const;
|
||||
void setYUnits();
|
||||
void setInfo();
|
||||
|
||||
QVector<QPointF> _avg;
|
||||
QVector<QPointF> _mavg;
|
||||
QVector<QPointF> _max;
|
||||
|
||||
Units _units;
|
||||
TimeType _timeType;
|
||||
|
@ -7,15 +7,18 @@ RFC 4180 parser with the following enchancements:
|
||||
- allows LF line ends in addition to CRLF line ends
|
||||
*/
|
||||
|
||||
bool CSV::readEntry(QByteArrayList &list)
|
||||
bool CSV::readEntry(QByteArrayList &list, int limit)
|
||||
{
|
||||
int state = 0;
|
||||
int state = 0, len = 0;
|
||||
char c;
|
||||
QByteArray field;
|
||||
|
||||
list.clear();
|
||||
|
||||
while (_device->getChar(&c)) {
|
||||
if (limit && ++len > limit)
|
||||
return false;
|
||||
|
||||
switch (state) {
|
||||
case 0:
|
||||
if (c == '\r')
|
||||
|
@ -9,7 +9,7 @@ public:
|
||||
CSV(QIODevice *device, char delimiter = ',')
|
||||
: _device(device), _delimiter(delimiter), _line(1) {}
|
||||
|
||||
bool readEntry(QByteArrayList &list);
|
||||
bool readEntry(QByteArrayList &list, int limit = 4096);
|
||||
bool atEnd() const {return _device->atEnd();}
|
||||
int line() const {return _line;}
|
||||
|
||||
|
@ -53,7 +53,7 @@ public:
|
||||
bool intersects(const RectC &r) const
|
||||
{return (right() >= r.left() && bottom() <= r.top() && left() <= r.right()
|
||||
&& top() >= r.bottom());}
|
||||
bool contains(const Coordinates&c) const
|
||||
bool contains(const Coordinates &c) const
|
||||
{return (c.lon() >= left() && c.lon() <= right() && c.lat() <= top()
|
||||
&& c.lat() >= bottom());}
|
||||
|
||||
|
@ -115,7 +115,7 @@ public:
|
||||
|
||||
/// Count the data elements in this container. This is slow as no internal
|
||||
/// counter is maintained.
|
||||
int Count();
|
||||
int Count() const;
|
||||
|
||||
|
||||
/// Iterator is not remove safe.
|
||||
@ -363,7 +363,7 @@ protected:
|
||||
void* a_context) const;
|
||||
void RemoveAllRec(Node* a_node);
|
||||
void Reset();
|
||||
void CountRec(Node* a_node, int& a_count);
|
||||
void CountRec(Node* a_node, int& a_count) const;
|
||||
|
||||
/// Root of tree
|
||||
Node* m_root;
|
||||
@ -473,7 +473,7 @@ int RTREE_QUAL::Search(const ELEMTYPE a_min[NUMDIMS], const ELEMTYPE a_max[NUMDI
|
||||
|
||||
|
||||
RTREE_TEMPLATE
|
||||
int RTREE_QUAL::Count()
|
||||
int RTREE_QUAL::Count() const
|
||||
{
|
||||
int count = 0;
|
||||
CountRec(m_root, count);
|
||||
@ -483,7 +483,7 @@ int RTREE_QUAL::Count()
|
||||
|
||||
|
||||
RTREE_TEMPLATE
|
||||
void RTREE_QUAL::CountRec(Node* a_node, int& a_count)
|
||||
void RTREE_QUAL::CountRec(Node* a_node, int& a_count) const
|
||||
{
|
||||
if (a_node->IsInternalNode()) { // not a leaf node
|
||||
for (int index = 0; index < a_node->m_count; ++index)
|
||||
|
@ -2,6 +2,7 @@
|
||||
#include <QFile>
|
||||
#include <QFileInfo>
|
||||
#include "common/util.h"
|
||||
#include "map/crs.h"
|
||||
#include "gpxparser.h"
|
||||
#include "tcxparser.h"
|
||||
#include "csvparser.h"
|
||||
@ -22,6 +23,9 @@
|
||||
#include "onmoveparsers.h"
|
||||
#include "twonavparser.h"
|
||||
#include "gpsdumpparser.h"
|
||||
#include "txtparser.h"
|
||||
#include "vtkparser.h"
|
||||
#include "vkxparser.h"
|
||||
#include "data.h"
|
||||
|
||||
|
||||
@ -48,6 +52,9 @@ static OMDParser omd;
|
||||
static GHPParser ghp;
|
||||
static TwoNavParser twonav;
|
||||
static GPSDumpParser gpsdump;
|
||||
static TXTParser txt;
|
||||
static VTKParser vtk;
|
||||
static VKXParser vkx;
|
||||
|
||||
static QMultiMap<QString, Parser*> parsers()
|
||||
{
|
||||
@ -81,6 +88,9 @@ static QMultiMap<QString, Parser*> parsers()
|
||||
map.insert("rte", &twonav);
|
||||
map.insert("wpt", &twonav);
|
||||
map.insert("wpt", &gpsdump);
|
||||
map.insert("txt", &txt);
|
||||
map.insert("vtk", &vtk);
|
||||
map.insert("vkx", &vkx);
|
||||
|
||||
return map;
|
||||
}
|
||||
@ -127,11 +137,11 @@ Data::Data(const QString &fileName, bool tryUnknown)
|
||||
++it;
|
||||
}
|
||||
|
||||
qWarning("%s:", qPrintable(fileName));
|
||||
qWarning("%s:", qUtf8Printable(fileName));
|
||||
for (it = _parsers.find(suffix); it != _parsers.end()
|
||||
&& it.key() == suffix; it++)
|
||||
qWarning(" %s: line %d: %s", qPrintable(it.key()),
|
||||
it.value()->errorLine(), qPrintable(it.value()->errorString()));
|
||||
qWarning(" %s: line %d: %s", qUtf8Printable(it.key()),
|
||||
it.value()->errorLine(), qUtf8Printable(it.value()->errorString()));
|
||||
|
||||
} else if (tryUnknown) {
|
||||
for (it = _parsers.begin(); it != _parsers.end(); it++) {
|
||||
@ -144,16 +154,80 @@ Data::Data(const QString &fileName, bool tryUnknown)
|
||||
file.reset();
|
||||
}
|
||||
|
||||
qWarning("%s:", qPrintable(fileName));
|
||||
qWarning("%s:", qUtf8Printable(fileName));
|
||||
for (it = _parsers.begin(); it != _parsers.end(); it++)
|
||||
qWarning(" %s: line %d: %s", qPrintable(it.key()),
|
||||
it.value()->errorLine(), qPrintable(it.value()->errorString()));
|
||||
qWarning(" %s: line %d: %s", qUtf8Printable(it.key()),
|
||||
it.value()->errorLine(), qUtf8Printable(it.value()->errorString()));
|
||||
|
||||
_errorLine = 0;
|
||||
_errorString = "Unknown format";
|
||||
}
|
||||
}
|
||||
|
||||
Data::Data(const QUrl &url)
|
||||
{
|
||||
bool caOk, cbOk, ccOk;
|
||||
Projection proj(GCS::WGS84());
|
||||
|
||||
_valid = false;
|
||||
|
||||
QStringList parts(url.path().split(';'));
|
||||
if (parts.size() < 1) {
|
||||
_errorString = "Syntax error";
|
||||
return;
|
||||
}
|
||||
QStringList coords(parts.at(0).split(','));
|
||||
if (coords.size() < 2 || coords.size() > 3) {
|
||||
_errorString = "Syntax error";
|
||||
return;
|
||||
}
|
||||
double ca = coords.at(0).toDouble(&caOk);
|
||||
double cb = coords.at(1).toDouble(&cbOk);
|
||||
double cc = NAN;
|
||||
if (!(caOk && cbOk)) {
|
||||
_errorString = "Invalid coordinates";
|
||||
return;
|
||||
}
|
||||
if (coords.size() > 2) {
|
||||
cc = coords.at(2).toDouble(&ccOk);
|
||||
if (!ccOk) {
|
||||
_errorString = "Invalid elevation";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (parts.size() > 1) {
|
||||
QStringList crsp(parts.at(1).split('='));
|
||||
if (crsp.size() != 2) {
|
||||
_errorString = "Syntax error";
|
||||
return;
|
||||
}
|
||||
if (!crsp.at(0).compare("crs", Qt::CaseInsensitive)) {
|
||||
if (crsp.at(1).compare("wgs84", Qt::CaseInsensitive)) {
|
||||
proj = CRS::projection(crsp.at(1));
|
||||
if (!proj.isValid()) {
|
||||
_errorString = "Unknown CRS";
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CoordinateSystem::AxisOrder ao = proj.coordinateSystem().axisOrder();
|
||||
PointD p(ao == CoordinateSystem::XY ? PointD(ca, cb) : PointD(cb, ca));
|
||||
Coordinates c(proj.xy2ll(p));
|
||||
if (!c.isValid()) {
|
||||
_errorString = "Invalid coordinates";
|
||||
return;
|
||||
}
|
||||
|
||||
Waypoint w(c);
|
||||
w.setElevation(cc);
|
||||
_waypoints.append(w);
|
||||
|
||||
_valid = true;
|
||||
}
|
||||
|
||||
QString Data::formats()
|
||||
{
|
||||
return
|
||||
@ -176,6 +250,9 @@ QString Data::formats()
|
||||
+ qApp->translate("Data", "SLF files") + " (*.slf);;"
|
||||
+ qApp->translate("Data", "SML files") + " (*.sml);;"
|
||||
+ qApp->translate("Data", "TCX files") + " (*.tcx);;"
|
||||
+ qApp->translate("Data", "70mai GPS log files") + " (*.txt);;"
|
||||
+ qApp->translate("Data", "VKX files") + " (*.vkx);;"
|
||||
+ qApp->translate("Data", "VTK files") + " (*.vtk);;"
|
||||
+ qApp->translate("Data", "TwoNav files") + " (*.rte *.trk *.wpt);;"
|
||||
+ qApp->translate("Data", "GPSDump files") + " (*.wpt);;"
|
||||
+ qApp->translate("Data", "All files") + " (*)";
|
||||
|