GithubHelp home page GithubHelp logo

maproom / qmapshack Goto Github PK

View Code? Open in Web Editor NEW
285.0 16.0 65.0 175.13 MB

Consumer grade GIS software

License: GNU General Public License v3.0

CMake 2.13% Shell 1.50% Makefile 0.02% NSIS 0.63% Batchfile 0.27% Roff 0.12% C++ 91.53% C 2.50% Python 1.28% Awk 0.01%

qmapshack's Introduction

Next to all dependencies you need a working GIT, g++ and cmake installation to compile QMapShack on your computer. Clone and compile the code base by:

    git clone https://github.com/Maproom/qmapshack.git QMapShack
    cd QMapShack
    git checkout dev
    cd ..
    mkdir build_QMapShack
    cd build_QMapShack
    ccmake ../QMapShack
    make

To update the code to the cutting edge do in QMapShack:

    git pull

And change back to build_QMapShack:

    make

Dependencies

  • Qt5 (at least 5.8)
  • GDAL (at least GDAL 2.3)
  • Proj4 (at least 7.2.1)
  • Routino (at least 3.1)
  • QuaZip (Qt5 V1.x)
  • CMake/Make
  • a C++ compiler (supporting C++11)

qmapshack's People

Contributors

beedaddy avatar d029940 avatar drj-e avatar gskjold avatar hhornburg avatar huirad avatar jfritzle avatar jmfloyd avatar jonas-hagen avatar kaiserls avatar kiozen avatar kkarsten62 avatar kribe avatar luis-pereira avatar mitxel-m avatar moench-tegeder avatar ntruchsess avatar penguin-ff avatar peterschumann avatar pzii avatar runrun1234 avatar sebastic avatar sikmir avatar symphorien avatar terrible-broom avatar tormet avatar ueckhardt avatar wthaem avatar wthaemelt avatar xavivars avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qmapshack's Issues

Feature Request: Route Optimization

I got a lot of Waypoints (20 to 25 or more) and want a Route/Track with the fastest Way between Start and End with touch all Waypoints. Now I have to sort the waypoints in the order in which they should optimally be approached. Here an option would be nice to have an automatic calculation from waypoint 1 over the other points to the last waypoint without having to specify the best order.

Buttons on top of a map are not visible in dark mode on the Mac

Describe the bug
A clear and concise description of what the bug is.
Selecting a route and hit icon "Move route points" shows buttons "Save to original", "Save as new", "Abort" at the top of the map. These buttons are barely visible, although they are present.

To Reproduce
Steps to reproduce the behavior:
0. Switch to dark mode on the Mac

  1. Go to 'Workplace and select a route.'
  2. Click on 'Click on the route on the map.'
  3. See error in the top left of the map view

Expected behavior
The buttons should be visible.

They are visible in light mode.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: OS X 10.14
  • QMapShack Version 1.13.2

Additional context
Add any other context about the problem here.

Fix all links to Bitbucket in the code

Describe the bug
In the code base we have several links to pages hosted by Bitbucket. These have to be replaced by links to GitHub.

To Reproduce
Simply grep the source for "bitbucket". There shouldn't be any occurrence anymore

Expected behavior
No "bitbucket" string found should be found in the code.

Screenshots
n/a

Desktop (please complete the following information):
All OS, current source

Additional context
n/a

Restructure Gis Data

Is your feature request related to a problem? Please describe.
To implement #79, I would like to restructure the way data is saved in GisItems, since this feature is added for all GisItems. Instead of only adding it to IGisItem I have to add it to every GisItem, since their data storage is not inherited.

Describe the solution you'd like
I'm not sure which one is best, see my ideas below. I prefer (2.), since that seems cleaner to me.

Describe alternatives you've considered
They all have in common, that I create SGisData containing all the common data and derive SWptData and so forth from it.

  1. Add the member variable SGisData gisData to IGisData.
    Pro:

    • Easy to implement
    • I can simply write the common functions in IGisItem

    Con:

    • Casting needed for every single access in GisItems, since they will assign their own GisData to gisData
  2. Making IGisItem declare only pure virtual methods and no member variables. Add a templated CGisItem derived from IGisItem, that takes as a template parameter a GisData structure and implements all common methods. Then derive the GisItems from both IGisItem for dynamic polymorphism and CGisItem for the implementation of the common methods
    Pro:

    • No casting needed in GisItems

    Con:

    • more complex

Additional context
Add any other context or screenshots about the feature request here.

Mistake in german translation

Describe the bug
In the search help window following is written:

'Datum gleich' findet alles, was innerhalb von 24 Stunden des aktuellen Tages liegt.

It should be "innerhalb des angegebenen Tages".

To Reproduce
Steps to reproduce the behavior:

  1. Open Help Window for the workspace search
  2. Scroll down to (see above)

Inconsistent use of time zones

Describe the bug
In my case QMS was set to UTC time zone in the settings, however the filter tab used my local time zone. So, when I manually adjusted the beginning of a track, what I saw in the track info did not match to what I set.

To Reproduce
Steps to reproduce the behavior:

  1. Set time zone to whatever zone is not yours
  2. Open track
  3. Go to Filter>Timestamps>Change Time
  4. Set some time
  5. The time shown to the left in the info is not what you set

Expected behavior
I expect it to be either the same or the user being able to choose the time zone in the filter.

Screenshots
grafik

Desktop (please complete the following information):

  • OS: Windows 8.1
  • QMapShack Version 1.13.2

QMapShack doesn't show the correct elevation for fit files from GPSMAP 66s

Describe the bug
QMapShack constantly shows 12607m elevation for fit files which come from the GPSMAP 66s. Fit files from the Forerunner 45 work, though. Perhaps it doesn't help a thing but what I noticed: Converting these files to CSV shows that the FR45 uses altitude and enhanced_altitude but the GPSMAP 66 only uses enhanced_altitude.

To Reproduce
Steps to reproduce the behavior:

  1. Open a fit file from the GPSMAP 66
  2. Right-click on the track and choose "Edit..."
  3. You can see that the elevation always is 12607

Expected behavior
It should show the correct elevation values.

Screenshots
Screenshot_20190912_075515

Desktop (please complete the following information):

  • OS: Linux (Arch Linux)
  • Using QMapShack version 1.13.2

Additional context
Converting the problematic fit file to gpx with gpsbabel results in a gpx which elevation values are shown correctly. So the data is present in the fit file.
problemdatei.fit.zip

Error on gpx saved

I use QmapShack 1.13.2 on Win 10Pro to create a gpx merging different tracks.
I added some waypoints
I "save as "PizBoe_Trail.gpx".
I imported it to Oruxmaps 7.4.22 on my android samsung A3 2017 phone but failed.
The error is "Error opening the track"
I try to open the track with another software , Compegpsland 8.5, i save the tracks as "PizBoe_Trail_Land.gpx" and this one is accepted on Oruxmaps...
in the past I used the same procedure and never had any problems.. it'a 1.13.2 problem?

I attach both files

Thanks a lot!

gpx.zip

edit: I did other tests, I understand that the problem is the waypoints ...
creating a track without waypoints it' all ok

No speed diagram is shown

Describe the bug
I want to see the speed diagram, but I can't do so since I updated to QMS 1.14.0

To Reproduce
Steps to reproduce the behavior:

  1. Open Details of a track that has speed information
  2. See that there is no diagram

Expected behavior
Until now, in the fields that now show that there is no data to be shown, the diagram of the speed over the time was displayed, and that's how it should be

Screenshots
grafik

Desktop (please complete the following information):

  • OS: Windows
  • QMapShack Version 1.14.0

Additional context
Add any other context about the problem here.

Individual filter for each project

The new search on workspace feature is excellent...Thanks to pingurus and all the team ;-)

What about adding a filter for projects with the same procedure?

Use case:

You want to filter tracks below 1500 m from your 'Skitour' folder, you can use the search on workspace: elevation < 1500 m, all items from all projects out of the search criteria disappear.

Ok you have found your tracks. Now you want to work with this filtered set, but at the same time you need to see on the map other items like your Summit wp collection, or other tracks from other projects/folders. For now the workaround is to copy the filtered set to a new temp project and then clear the filter on workspace. This is not efficient.

It would be nice to have a 'Filter Project' feature that would work only for the related Project (in addition to actual Search on workspace)

How would it work

Right click on a Project - select 'Filter...'

menu

A dialog or a box appears to type the filter

box2

Close or accept

Now you have filtered items from this project besides all the elements from other projects.

...and the Project appears marked with a Filter icon in the workspace list:

icon

How to clear the filter

Right click on a Project - select 'Filter...'- click on the X

box2

(another approach: in the menu add an action 'Clear Filter', faster but enlarges the menu... I doubt which is better)

Other considerations

  • The Project Filter is exclusive for the related Project, so you could apply at the same time a filter for every Project with different criteria.
  • You could apply at the same time the Workspace filter and a Project Filter, in this case you would get from the filtered project items matching both criteria.

Version information in window title does not contain VERSION_SUFFIX "development"

Describe the bug
When I build a development version, then this is indicated in the about dialogue but not in the window title.

To Reproduce
Steps to reproduce the behavior:

  1. Build the current development version of QMapshack and start it
  2. Look at the window title: it shows "QMapShack, Version 1.14.0"
  3. Open the ABout dialogue. There ther version information is "QMapShack, Version 1.14.0.development"

Expected behavior
First of all, the version information in the window title and in the about dialogue should be consistent. Second, the VERSION_SUFFIX should also be part of the version string in the window title.

Screenshots
See screenshot:
grafik

Desktop (please complete the following information):

  • OS: Windows
  • QMapShack Version: 1.14.0.development

Unify versions of all QMapShack tools

Is your feature request related to a problem? Please describe.
now that all QMS related projects (QMapTool, ...) are in a single git
repository and (will be) part of a single release, I have a question
about versions. Can't we move them all (at least QMapTool) to follow the
version number of the main project? It would simplify packaging in
distros when eg. QMapTool is a separate subpackage built from the
single source, like in Fedora. Another option (for Fedora) would be to
provide eg. qmaptool-1.13.2, but the tool itself would report 1.1.1 in
its About dialog. Fiddling with different versions in a single source
package is confusing.

Describe the solution you'd like
Change all cmake scripts to use the main version

Describe alternatives you've considered
n/a

Additional context
n/a

QMS doesn't start from non-ASCII directory

Describe the bug
QMS doesn't start if it is located in a directory with non-ASCII characters

(have seen same issue somewhere in the Internet, don't remember where)

Found it again: https://www.naviboard.de/thread/63434-m%C3%B6glichkeit-ohne-routino-zu-starten-windows/

To Reproduce
Steps to reproduce the behavior:

  1. Goto standard Files directory obtained from installation of Windows version and start QMS: no problems.
  2. Rename Files directory so that the new name has non-ASCII characters (in my case Загрузка, most likely German Umlaut will do, too).
  3. Go againn into renamed directory (no file changes!) and start QMS.
  4. First issue: Routino doesn't find XML files (might be Routino issue!) - see snapshot
  5. Second issue: QMS complaints about Proj.4 - see snapshot

Expected behavior
Once only the name of the directory was changed and no file within the directory, QMS should start smoothly

Screenshots

  • Screenshot 1: Routino XML problem
  • Screenshot 2: Proj.4 problem
    Warning_Routino
    Fatal_Proj4

Desktop (please complete the following information):

  • OS: Windows 10
  • QMapShack latest development version

Additional context
None

elevation data imported to vrt file are half pixel shifted in x and y direction

after comparing 50cm elevation tiff from upper austria (https://www.land-oberoesterreich.gv.at/211780.htm) with 10m elevation modell from austria and 1° elevation model from sonny (https://data.opendataportal.at/dataset/dtm-austria) I found that models are shown half pixel shifted in x and y direction in QMAPSHACK.

As a workaround I edited the VRT file to get all 3 elevation sources matched.

For verification I used small V shaped canyons:
grafik

Before correction in VRT:
grafik

After correction in VRT:
grafik

Googling I found there are two definitions of elevation data (pixel is area vs pixel is point).
QMAPSHACK seems to use another definition than VRT file.

Change in 10m elevation data VRT:

grafik

Change in 1° elevation data VRT:

grafik

Cleanup code in IUnit and subclasses

Is your feature request related to a problem? Please describe.
IUnit defines:

    const QString baseunit;
    const qreal basefactor;
    const QString speedunit;
    const qreal speedfactor;

But these members are not used everywhere in the code. And it lacks a pair of factor and unit for elevation.

Describe the solution you'd like
Check all ..Unit classes and refactor code.

Describe alternatives you've considered
No alternative. Cleanup the mess.

Additional context
n/a

App crashes on using the "Change Start Point" filter

Describe the bug
When using the "Change Start Point" filter on a track QMapShack crashes instantly

To Reproduce
Steps to reproduce the behavior:

  1. Create a track with attached waypoints
  2. Edit track
  3. Select Filter->Miscellaneous->Change Start Point
  4. Select a waypoint
  5. Press button with gear to activate filter

QMapShack crashes.

Expected behavior
QMapShack is reordering the track

Screenshots
n/a

Desktop (please complete the following information):

  • OS: OS X
  • QMapShack 1.13.1

Additional context
n/a

[TOC] in Wiki pages

In the Bitbucket Wiki there was a possibility to create a TOC with the help of the [TOC] macro inserted on top of a wiki page. This doesn't work anymore in the Github wiki.

Questions:

  • Does somebody know an easy way to create a TOC in a Github Wiki?
  • Should we delete this not working macro from the Wiki pages?

Edit button for locked tracks

Is your feature request related to a problem? Please describe.
What is the reason for the edit button not being shown on locked tracks in the project edit?
grafik

Describe the solution you'd like
I would like to be able to press the edit button just like for the other track, to go and unlock and then edit this currently locked track.

Describe alternatives you've considered
Looking for the track in the workspace view, then rightclick and edit. Takes much longer 😉

Additional context
Not sure if the current state is a bug or a feature, but I guess it was a concious design choice. Thus a feature request from my side.

Nautical miles for distances and feet for altitudes

Hi,

for flight planning is common to have nautical miles for distances and feet for altitudes / heights.
Unfortunately, qmapshack apparently does either allow to have nautical miles (nm) for horizontal distances (but then altitudes are also in nautical miles) or it allows to have statute miles (mi) for horizontal distances together with feet for altitudes.

I'd like to be able to have nautical miles for horizontal distances and feet for altitudes.

Display of predicted walking time

Is your feature request related to a problem? Please describe.
Sometimes when I plan hikes and I have a specific timeframe it would be nice if QMS displayed the time needed for track.

Describe the solution you'd like
Here (sorry, only german) you'll find the formula of DIN 33466 according to which the times on the hiking signs in the alps are labelled.

The calculation base is that in one hour you can cover:

  • 300m of elevation gain in ascent
  • 500m of elevation gain in descent
  • 4km distance in flat areas.

First, the times needed for the elevation and distance are calculated seperately. Then the smaller one of the two is added to the bigger one to get the total time.

Example:

  • Distance: 23km Elevation gain: 1025m Elevation loss: 1725m
  • Time needed for distance: 23km/4km/h = 5,75h
  • Time needed for elevation: 1025m/300m/h + 1725m/500m/h = 6,86h
  • Nominal time needed: 6,86h+5,75h/2=9,74h

As a comparison we needed 9,15h for that hike, so this is a rather conservative approach, just as said in the wikipedia article.

Describe alternatives you've considered
Alternatively one could also use this (again, only german) concept, however I prefer the first one since it outputs times.

Additional context
Of course, this calculation should be only triggered if the profile is set to 'foot'

Error in workspace search for attribues

Describe the bug
When querying for the german searchstring "nicht negierte Attribute enthält +10 km" also geocaches are shown which don't have the appropriate attribute.
I will check whether it is a translation or a code issue.
If you find anything similar, please comment below, so I can fix it all at once.

To Reproduce
Steps to reproduce the behavior:

  1. Load geocaches from geocaching.com into the workspace
  2. Query the workspace for some attributes
  3. Check if the search result actually matches your query.

Desktop (please complete the following information):

  • OS: Windows
  • QMapShack Version 1.13.2

Windows Build and Installer: use PROJ 6.2

Describe the bug
PROJ 6.2 is out but not yet supported by the FindPROJ4.cmake for Windows and the Windows Installer scripts

To Reproduce
Steps to reproduce the behavior:

  1. Build QMS for Windows, depending on PROJ 6.2
  2. There will be a CMAKE error that PROJ is not found
  3. If you fixed this, there will be additional errors in copyfiles.bat and QMapShack_Installer.nsi that proj_6_1.dll is not found

Expected behavior
FindPROJ4.cmake for Windows to support PROJ 6.2 in addition to PROJ 6.1
copyfiles.bat and QMapShack_Installer.nsi to use proj_6_2.dll instead of proj_6_1.dll

Desktop (please complete the following information):

  • OS: Windows
  • QMapShack Version 1.14.0

Additional context
Please assign to me. I will make then a pull request with the fix.

Color according to altitude (not gradient)?

Hi
dem files can be used to do coloring of hills according to gradients.
I didn't find how to color according to altitude.
Having mountains beeing colored above a configurable altitude would be mostly useful when doing aviation planning to check if the planned flight altitude is above the mountains.

Given name at RoutePoints in a Route

Copied from Bitbucket issue:

I propose to edit a route and its differents points to give them a name: start, end, stage1 ...
The finality in the GPX file is like it

the initial format:

<rte>
<name>My route </name>
<rtept lat="46.00230398" lon="6.09890983"/>
<rtept lat="45.98151601" lon="6.05085895"/>
</rte>

becomes:

<rte>
<name>My route</name>
<rtept lat="45.594762" lon="5.7702255">
<name>Start</name>
</rtept>
<rtept lat="45.6051511" lon="5.6450844">
<name>End</name>
</rtept>
</rte>

the goal is to be able to navigate, jump and choose named steps when navigating with a route in a GPS

Support waypoints with grid coordinates

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
When planning hikes I prefer to use UTM or MGRS coordinates. But QMapShack does not provide a way to create a waypoint from grid coordinates or read the grid coordinates of a waypoint.

Describe the solution you'd like
I would like to either have an option to switch the used format for all entry and display fields, or a
second display field for the grid coordinates and a button to move the waypoint to a provided grid coordinate.

Describe alternatives you've considered
Currently I copy the degree coordinates to online converters.

Additional context
Hiking maps (in Germany) often use UTM grids. I prefer the MGRS format, since I find it easier to read and shorten for manual notes. Their are relatively easy to convert from one to the other.

Hide trackpoint doesn't hide the trackpoint

Describe the bug
I want to hide some trackpoints and while it did hide those around before, it doesn't want to hie this one. (I already removed the other trackpoints around, before it came to my mind to file a bug report)

To Reproduce
I am not really sure in which cases this happens, just try to hide trackpoints and see if they are really all hidden. Maybe it has to do something with the "Pausenknödel" filter which I usuall don't use, but I did now.

Expected behavior
I expect the points to be hidden.

Screenshots
grafik
When pressing the hide button, no point is hidden. Even if I select more points, they get hidden, but this single one doesn't.

Desktop (please complete the following information):

  • OS: Windows
  • QMapShack Version1.14.0

Edit track does not respect screen size

Describe the bug
When opening edit of a track, the window grows out of the screen. I think we already had this issue once on windows, but this time it is on Ubuntu 19.10

To Reproduce
Steps to reproduce the behavior:

  1. Create a track
  2. open edit window
  3. see that the right hand side of the window gets pushed out of the screen

Expected behavior
I expect the window size not to change depending on what I open.

Screenshots
As you can see, you can't even see the button to change the timestamp
grafik

Desktop (please complete the following information):

  • OS: Ubuntu 19.10
  • QMapShack Version 1.14.0

Additional context
I doubt this is related to #72, I think I've seen it before.

Feature Request: Route Optimization

Is your feature request related to a problem? Please describe.
I got a lot of Waypoints (20 to 25 or more) and want a Route/Track with the fastest Way between Start and End with touch all Waypoints. Now I have to sort the waypoints in the order in which they should optimally be approached.

Describe the solution you'd like
Here an option would be nice to have an automatic calculation from waypoint 1 over the other points to the last waypoint without having to specify the best order.

Describe alternatives you've considered

Additional context
Is this better feature request then #67?

Routino route instruction export

From Bitbucket issue:

I’d like to submit the following feature request. When switching to QMapShack I embraced all its wonderful features and flawless communication with GPS devices. However, when converting a route to a track the waypoints with instructions from Routino are lost. Therefore, I propose to extend the route-to-track conversion by adding the Routino waypoints and their instructions for routing on GPS devices.

Many thanks in advance,

Jens

Use ASAN to enhance code quality

Is your feature request related to a problem? Please describe.
So far the project did not use any address sanitizer. Linux is quite forgiving if memory overflows. Windows is less forgiving and crashes. But still not everything is found.

Describe the solution you'd like
On Linux/g++ we can use -fsanitize=address. By that ASAN is linked. I tried it and immediately found an overflow in the FIT code. That's why I think we should use it.

Drawbacks:

  1. ASAN does use extra cycles and memory
    I think it's worth it. It's not that much for a modern PC
  2. ASAN detects a lot of memory leaks in Qt.
    Most of these leaks seem to be static. However the list printed when terminating QMapShack is intimidating and probably will cause quite some bug reports for nothing.

Describe alternatives you've considered
There is valgrind. But it's really hard to use and slows down the application tremendously.

Additional context
n/a

garmin fenix5 support?

hi
not sure if this is the right place to ask but anyway..
in the guide i read that my garmin fenix5 should appear automatically in the workspace window after connecting it to the usb, but it does not, do you have some advice pls? i would like to use it for displaying my latest moves.

setup workspace>enable device support is enabled
qms 1.13.2
win 7

thx
PEter

Wrong reference in HowtoBuildOSX.txt

Describe the bug

In the section Building QMapShack and QMapTool of the file HowtoBuildOSX.txt the referenced download location should be replaced with the new Github location

Enhancing activity system

Is your feature request related to a problem? Please describe.
I would like to be able to have more activities to choose from to label my tracks with.
There has been some talk back on Bitbucket.

@kiozen could you please describe what your thoughts were when refactoring the code "quite some time ago", so we know what we can build on?

Can others interested in this please draft their wishes regarding the new activity system, so we can find a solution that is the most useful?

I think it might be good if the user could add activities by himself. They would then inherit the symbol of their parent activity. For this to be possible, they would not be allowed to add a new category, only subcategories. Or, in order to better be able to differentiate by icons, the sub categories could be fixed also and the user only adds the sub-sub categories. This would look something like this:

  • Bicycle
    • City
      • UserDefined1
    • Trekking
    • Road
    • MTB
      • UserDefined2
      • UserDefined3

However, this would have the drawback, as @mitxel_m already said back on bitbucket (although in a slightly different context), that one can't differentiate the user defined activities.

Last but not least, we'd need someone to draw the icons, as I'm not good at that.

Update the README.md

Describe the bug
The current README.md is still for Bitbucket/Mercurial

To Reproduce
n/a

Expected behavior
All steps to compile QMapShack should be easy to copy and paste to the command line without the need to alter anything

Screenshots
n/a

Desktop (please complete the following information):
n/a

Additional context
n/a

Drawing track: Alternate mode O A V T with a simple key with no modifiers

Hi All

Just now while drawing a track you can alternate the drawing mode O A V T with the keyboard:

Ctrl-O

Ctrl-A

Ctrl-V

… and following this logic with Ctrl-T you would enter in Track drawing mode, but Ctrl-T is assigned now to “Add map View' , so you get a new map view hiding the one you were in. (…a bit confusing)

Better than remapping the 'Add map view' keys, I propose to assign simple keys just for the drawing modes O A V T (with no Ctrl modifier)

  • We avoid the conflict with ‘Add map view’
  • And the best: rather than with Ctrl-, simple keys to alternate drawing mode are more easy and comfortable to use when drawing with a hand on the mouse and the other on the keyboard.

I think there is no problem to use simple keys O A V T with no modifiers, because while you drawing track points QMS does not expect for any text chain .

Broken Wiki links

Describe the bug
Broken Wiki links to MD headers. Anchors used for MD headers in Wiki pages in GitHub and in Bitbucket are different. Wiki pages copied from the Bitbucket Wiki with a link to a header line in a Wiki page don't work correctly anymore.

To Reproduce
Steps to reproduce the behavior:

  1. Go to https://github.com/Maproom/qmapshack/wiki/AxAdvTocAbbr
  2. Click on some link
  3. The correct page will be shown, but not a the correct position

Additional context
The markdown-header prefix in links should be dropped everywhere in links

Info of a geocache is not correctly shown in Copy Element Window

Describe the bug
The Info of a geocache is incomplete regardless of the available space in the "Copy Element" Window

To Reproduce
Steps to reproduce the behavior:

  1. Save a geocache to database
  2. Open a different version of the Geocache and copy it to a different project in the database
  3. See "Copy Element" Window

Expected behavior
I expect as much of the description to be shown as is possible with the window size. Ideally I would want information which of the geocache versions is more up to date. Howeveer I don't think that it is a bug that it's not shown.

Screenshots
grafik

Desktop (please complete the following information):

  • OS: Windows 8.1
  • QMapShack Version 1.14.0

Additional context
Add any other context about the problem here.

Project does not compile because of missing sub-projects

Describe the bug
In the hg repo there have been sub-repository with qmaptool et al. These are missing and cmake can't process without error

To Reproduce
normal cmake run

Expected behavior
no error reported by cmake

Screenshots
n/a

Desktop (please complete the following information):
n/a

Additional context
n/a

Add support for Garmin Edge 500

Is your feature request related to a problem? Please describe.
The Edge 500 does not take GPX as data input. It uses TCX files.

Describe the solution you'd like
Detect the Edge 500 via GarminDevice.xml and export projects as TCX instead of GPX

Describe alternatives you've considered
n/a

Additional context
n/a

Add controll classes for mount/umount and cursor override

Is your feature request related to a problem? Please describe.
Right now umount() has to be called on each return when mount() has been called prior in a method. This isn't a good approach.

Same applies to overriding the cursor.

Describe the solution you'd like
Use a control classes similar to QMutexLocker to mount and unmount or to override the cursor.

Describe alternatives you've considered
n/a

Additional context
n/a

Problem loading from Database

Describe the bug
When having old geocaches in the database and one loads a project containing those, QMS acts a bit weird, without causing any serious problems if you don't provoke QMS.
This changes, when you open a geocache, that loads a picture from web:

  • if you have this geocache loaded multiple times to workspace (see below how to achieve that), QMS crashes
  • if you have the geocache only loaded once, you get [4]. In this state, you can't close the project from the database window, since it is stuck in the "squared" state and you can't toggle through to unchecked

To Reproduce
Steps to reproduce the behavior:

  1. Open an old database
  2. Load project containing geocaches into workspace
  3. Play around, maybe there are more bugs than what I found

Expected behavior
I would expect QMS to convert the geocaches to the current format, mark the project as changed and when saving overwrite the old geocache items.

Screenshots
[1] When I tick the box next to the project the old geocaches don't get ticked:
grafik
[2] The workspace looks reasonable:
grafik
[3] However, when I manually tick the old geocaches in the database window they get unticked and this happens:
grafik
[4] Database after loading image for geocache (without provoking the multiple load of a geocache into the workspace) and saving:
grafik

Desktop (please complete the following information):

  • OS: Windows
  • QMapShack Version 1.13.2

Additional context
I have yet no idea how old the database has to be (i.e. was this introduced when I worked on the CGisItemWpt to make it better usable for geocaches (I think yes, since it still has the old symbol in the database) or is this a problem of the changed key calculation for geocaches or is it maybe a side effect of something I didn't work at or a combination of the former)

Setup Travis CI to automatically build AppImage (portable binary package for Linux)

Lets setup Travis CI for auto-build AppImage (portable package for Linux) for each commit:

  1. Create .travis.yml - https://github.com/Maproom/qmapshack/blob/master/.travis.yml
  2. https://github.com/appimage/AppImageKit
    1.1. https://github.com/probonopd/linuxdeployqt
    1.2 https://github.com/linuxdeploy
  3. https://github.com/probonopd/uploadtool
  4. Enable Travis CI pushing to GitHub releases for this repo.

For example, take a look on LeoCAD .travis.yml implementation:

And here is what resulted builds would look like:

For any support:

TOC in Wiki not working

Describe the bug
I am not sure if this was discussed on the mailing list, but the table of contents on top of at least the CommitCode page is not working.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the CommitCode page
  2. Click on any of the links above the header

Expected behavior
I would expect it to jump down to the linked section

Desktop (please complete the following information):

  • OS: Firefox on Windows

Possibility to 'star' Waypoints

Is your feature request related to a problem? Please describe.
When planning geocaching trips, I always have Geocaches I want to look for in any case and some that I don't specifically want to find. I plan my route with those I specifically want to find and then I import other geocaches aswell, since they are on my way. Now when I replan my route, I don't know anymore which are those that I specifically want to find and which I can remove.

Describe the solution you'd like
One can add a start to a project, to mark it as the active one. The same way, I'd like to mark any waypoint as an important one.

Describe alternatives you've considered
An alternative would be adding offline notes to the saved geocaches, and show in the workspace tree if a geocache has an offline note. This is more complicated (probably) and the use-case is not that broad. However, one could also implement both, since the offline note can be useful in other cases aswell.

Additional context

Enhance handling of PROJ.4 files in Windows

Is your feature request related to a problem? Please describe.

Currently, the Windows QMS version can be compiled with different Proj.4 versions. But the 2 files

  • msvc_64\copyfiles.bat and
  • msvc_64\QMapShack_Installer.nsi

require a fixed Proj.4 version. Any change of the Proj.4 version requires a change of these files.

Describe the solution you'd like

Replace lines with a fixed version (similar to proj_6_x.dll) in both files with a wildcard version (proj_6_*.dll). This will make both scripts independent of a fixed Proj.4 version and doesn't need any change in the documentation. (Idea taken from huirad).

Describe alternatives you've considered

None.

Additional context

None.

Pixel limitation for raster maps: Some ideas and a practical solution.

This email is about limitations viewing some raster maps such as MBTILES, ECW, and also GeoTIFF with internal overviews.

I think this is a very important issue because it limits too much the use of maps in QMS, so I have been chasing it for months, trying different strategies, and luckily I have found a workaround.

Probably this workaround could be improved, thats the reason to expose all this by email and request your opinion before exposing anything at the issue page of QMS nor adding it as a trick in the wiki section.

BRIEF SUMMARY:

  • QMS detects overviews for VRT files containining an unique ECW, MBTILES, or GeoTIFF file. However overviews are not detected for VRTs that contain more than one source file , and therefore QMS applies the pixel limitation ( TILELIMIT value).

  • What are we doing for now?

  • use one VRT per source file. :-( we lose the advantages of VRT format.
  • make external overviews with gdaladdo. :-( is inefficient for formats such as MBTILES, ECW, or GeoTiFF that already have them..
  • I have tested with success another workaround: place next to the VRT a minimum size .OVR (16x16 px). The funny thing is that we can do it in 2 seconds ( out of QMS).

  • Probably this workaround can be improved, or may be we can avoid it at all making some tweaks in the QMS code.

IN DETAIL:

QMS does handle pretty well GeoTIFF, MBTILES or ECW files wrapped in a VRT file. I can load an unique ECW file for all the pyrenees (more than 2Gb) and it is shown flawless at all zoom levels. The same when I load a 500 Mb MBTILES, and identical for those Geotiff that contain internal overviews. I don't need to make any external overview (.OVR) because QMS detects they do have internal overviews.

This works while the VRT calls an unique source file. However when several of such files are combined in a VRT, QMS does no detect the overviews from source files, (hasoverviews) then it applies the pixel limitation showing only the map border until you get the top zoom level of the source.

This brings us to a frustrating paradox. 4 contiguous files loaded one by one are shown well, but if combined in a VRT they are not shown , although in both cases QMS has to request the same amount of pixels.

So for now we are forced to use a single VRT for each source file, and/or create external overviews when generating the VRT. Both ways have serious drawbacks.

-Drawbacks when doing one VRT per source file:

Here we loss one of the poweful things of VRTs that is combine several files and handle them as an unique dataset, eg: combine several maps from the same family and have an unique name in the map list, or make a derivated map from the combined VRT, and so on…

(with this panorama I understand why the VRT format is so unpopular for new QMS users, they assume that they have to make a unique VRT for each raster for nothing....and they will never know about its advantages.)

In addition doing one VRT for each source leads to another specific problem for Mbtiles: Some delicious MBTILES contains different information for different zoom levels, ( eg: imagery at the top zoom level, then a 1:25k topomap, then a 1:50K map, then a 1:100k map,…) . I have observed that QMS shows one zoom level or the next one based on the number of pixels of the mbtiles contained on the canvas [2], so when you have loaded several contiguous VRT ( 1 mbtiles per VRT) and you drag the map near to the border of one of them you get a pretty Frankestein map, with different zoom levels ,thus different apparience, mixed ( view screenshots) .

In QMS this “frankestein effect“ could be solved by combining all the contiguous mbtiles in an unique VRT, but then we face the issue of pixel limitation and go back to the beginning.

-Drawbacks for making classical overviews with gdaladdo

I know you always reccomend doing overwiews to solve the pixel limation. That is right for formats that do not contain internal overviews, but it is unnecessary and inefficient for formats such as mbtiles or ecw containing internal overviews, and the pain in the ass is that the gdaladdo process to create a single overview (eg 1:64) for a medium area can take hours and hours...for nothing.

There is another important detail about external .ovr that affects multi-scale mbtiles containing different mapsets. The external overviews are a downsampled copy of the top level, so we lose the magic of the multi-scale map. This is more frustrant if you also use the same maps in other gdal app like QGIS that would load the external ovr if it find one.

Take in mind that this is not related to the use of the zoom range locks to show one map or another. I know I could put another general topo map for outer levels and play with zoom range locks, and usually I do if I have one, but we are now into correctly display our detailed map.

WORKAROUNDS TO SOLVE THIS

At first I started playing with the TILELIMIT value in CmapVRT.cpp, but increasig that value does not solve the problem for all cases. ( appart this, maybe this values is very restrictive and it could be a bit more tolerant)

The key is in the check that QMS makes about overviews. I remember you said that it checks the first band of the archive to count overviews.

dataset->GetRasterBand(1)->GetOverviewCount()

I have observed that this works for VRTs containing an unique source file, but not for VRTs containing more than one but I can't figure out why. It is strange.

The goal is to make QMS detect overviews with no pain for other apps, and with no extra time/work for the user.

To do so we can place a “fake” or minimum size .OVR next to the VRT.

At first I have been playing with a 16x16 pixels generic tiff for all my VRTs. Assuming I have a generic tiff named “fake.ovr”, getting the correspondant “fake” OVR for every VRT is trivial in the command line.

cp fake.ovr mymap.vrt.ovr

This makes the magic. QMS detects this overview but does not really use it, and the internal ovr of the source files are shown, even with nested and derivated VRTs. Also for other apps like QGIS the .ovr image is so little that it is not shown until you get a very very outer zoom, so is no relevant.

OK, OK.. to be serious, having a fake .ovr does not sound very well, :-P

Let’s do similar with a “true” .ovr

This will create a minimum size true .ovr for mymap.vrt:

gdal_translate mymap.vrt mymap.vrt.ovr -outsize 16 0 -of Gtiff

Instead of using gdaladdo , which takes hours to do the task, we use gdal_translate, which does it in a second. We can use gdal_translate because we want an .ovr with only one level at a fixed size instead of the classical /2 pyramids.

For those that have panic to the console I have also prepared two .bat and .sh files to do the task more easy. Javi and Carlos have used them with succes.

NEXT STEPS?

I would propose:
(order does not necessarily indicate preference)

1- Tweak the code to check if one band of one of the files contained in the VRT has overviews, if has overviews then the pixel limitation would not apply

2- Make the VRTBuilder to check if one band of the first file we have selected to add in the VRT has overviews, if yes then silently create a minimum size external .ovr adding at the end of the process:

gdal_translate mymap.vrt mymap.vrt.ovr -outsize 16 0 -of Gtiff

3- Include in the VRTBuilder ui the option to create this minimum size .OVR. If checked, instead of using gdaladdo, it would add at the end of the process:

gdal_translate mymap.vrt mymap.vrt.ovr -outsize 16 0 -of Gtiff

4- Do nothing with the code and add a paragraph in the tip and tricks section of the wiki about this workaround , with a command line example , and optionally providing .sh and .bat files to make it more easy for regular users.

Remarks:

#1 Seems the best , because it would applie for all new and existing VRTs, but it could have caveats. I am not absolute sure on how could detect overviews for nested VRTs. [1]

#2 ( if #1 is not possible) would be the more easy and transparent for regular users

#3 gives the user the option to choose, but maybe a regular user doesn't know anything about this, and we're complicating things.

#4 Right now it would be the easiest and fastest to do. I can take care of it, but doing so gives the impression that is a patch. I would better consider it complementary to #2 or #3, to make external .ovr of existings .vrts with no need to redo the VRT from the VRT builder, or for nested VRTs if they fail with #1.

What do you think about next step?

Should we port all this to the issue page and the mailing list?

I am not able to modify the code by myself but as always I am ready to test changes, or to put something in the wiki.
No hurry for coding...I assume right now you will be thinking more in the migration to GIT, and is not a good season for coding.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.