OpenOrienteering / mapper

OpenOrienteering Mapper is a software for creating maps for the orienteering sport.
https://www.openorienteering.org/apps/mapper/
GNU General Public License v3.0
399 stars 106 forks source link

Problem with the "Reference point" settings on the Georeferencing dialog. #1846

Open sfroyen opened 3 years ago

sfroyen commented 3 years ago

Steps to reproduce

  1. Open OOM. Select "Create a new map". Select symbol set.
  2. Open Georeferencing dialog.
  3. Set CRS, e.g., EPSG:6342, ignoring the reference point part.
  4. Reopen Georeferencing dialog.
  5. Set projected coordinates to some location on the map. Leave the map coordinates as zero.
  6. Import a DXF file containing contours (from LiDAR).
  7. Verify that the map coordinate origin is located on the map and that the projected coordinates are correct.
  8. Reopen Georeferencing dialog.
  9. Change the projected coordinates to zero. Leave the map coordinates as zero.
  10. Notice that the map coordinate origin is still located on the map and that the projected and geographic coordinates are wrong, placing the map at the origin of the zone (wrong by almost 5000 km).

Actual behaviour

Trying to shift the map coordinate origin works before map elements have been entered, but breaks the map georeferencing if attempted afterwards.

There appears to be no way to shift the map coordinate origin once you've imported data or started drawing.

Expected behaviour

There should be a way to shift the map coordinate origin either in the Georeferencing dialog or in a separate dialog that could display as part of importing data.

Configuration

Mapper Version: v20201227.4 and 0.9.4 Operating System: MacOs 11.1

The test steps are obviously non-sensical but they do test for the problem.

The usual way I've run into this is:

Create a new map Set the projected CRS but leave the reference point section unchanged. Import DXF contours (from LiDAR). Work on the map. not noticing the huge map coordinate values. Work some more. Lookup the declination using the link on the Georeferencing dialog. See the coordinates and realise I forgot a step. Try to fix using the Reference point section.

pkturner commented 3 years ago

Some possibilities for addressing this use case are described in #1702, Georeferencing Dialog Ideas.

The prototype developed for #1702 has added some dialogs. In your scenario, the user would be able to use the "Recast reference system" dialog, which promises not to disturb the georeferencing or the map, to "Pick on map" a new reference point location near the drawing area. On clicking "OK", a suggestion pops up, explaining that as the new reference point entails a big change to the convergence, you probably want to use the "Realign map" dialog to update the declination.

The "Realign map" dialog promises not to disturb the georeferencing of map objects. The user clicks on "Lookup" to set the declination and rotate the map. In the same dialog the user can set the map reference point to a small value. This moves the map origin, not disturbing any other aspect of georeferencing.

dg0yt commented 3 years ago

In the current dialog, projected coordinates and map coordinates are independent by design, so that you can improve the alignment without touching the map objects. Now do you ask for a tool to choose a totally different different point, or do you ask for a tool to move map objects?

DXF import is non-georeferenced anyway ATM, #1561.

sfroyen commented 3 years ago

I'm asking for a tool to change the map coordinate origin -- without changing the projected coordinate values of any map object. It looks like realign map might do this (I have not looked carefully 1702 yet).

The request stems from when I first started using OOM. I had LiDAR contours (DXF format) for an area and wanted to start a map. I went to the Georeference dialog panel, set the projected CRS (UTM zone 13N) and imported the contours. I did not touch the values in the Reference point section because I had no idea what they meant. After some time I realised that the map coordinates were "wrong" and tried fix it by tweaking the Reference point values. I was unsuccessful. Of course, now I realise that this cannot be done. Eventually, I figured out that loading a georeferenced image was the best way to start a new map and I ignored the Reference point issue.

I have offered to give a presentation on OOM to RMOC members that have expressed interest in mapping. So, I thought I better understand what I did wrong when I first started out. Today, with a better understanding of the various coordinates being used and a little testing, I was able to properly geoeference the map by adding the projected coordinates for the centre of the map in step 5. It would be nice if it could be done after step 6 as well.

This is the background for this issue report.

The (coming) DXF import dialog should help with the usability issue that I encountered initially. BTW, I note that opening the DXF contours as a template behaves the same way as importing them directly and differs from opening an image template with a world file.

dg0yt commented 3 years ago

I'm asking for a tool to change the map coordinate origin -- without changing the projected coordinate values of any map object. ... I had LiDAR contours (DXF format) for an area and wanted to start a map. I went to the Georeference dialog panel, set the projected CRS (UTM zone 13N) and imported the contours. I did not touch the values in the Reference point section ...

I expected something like that. Your reference point is far away from the area of interest. Now you want to edit the map coordinates of the reference point to bring into the area of interest. But with regard to the absolute values of the map coordinates, it could be better to have a tool to move the the map objects closer to the origin, and let it adjust the georeferencing point accordingly. Somewhat similar to the map scale and rotation tools. In any case, we don't want to change the projected coordinate values.

(For some purposes, such as data clipping or WMS requests, I wonder if we shouldn't ask for that area of interest, too. Something like a radius or bounding box. And with modern PROJ, we could probably find out that 0,0 is not within a UTM zone.)