3

[QGIS V.3.10.3 A Coruña]

For streets in my fantasy world map I want to use a line ESRI shapefile.

My custom CRS is a lonlat one and looks like the following:

GEOGCRS["unknown",
  DATUM["unknown",
    ELLIPSOID["Yartol",6370997,326.249334289226,
      LENGTHUNIT["metre",1,ID["EPSG",9001]]]],
PRIMEM["Kangorr",0,
  ANGLEUNIT["degree",0.0174532925199433,
    ID["EPSG",9122]]],
CS[ellipsoidal,2],
AXIS["longitude",east,
  ORDER[1],
  ANGLEUNIT["degree",0.0174532925199433,
    ID["EPSG",9122]]],
AXIS["latitude",north,
  ORDER[2],
  ANGLEUNIT["degree",0.0174532925199433,
    ID["EPSG",9122]]]]

For my understanding LENGTHUNIT["metre"... should do the stuff. The measuring bar and tools show good results. In my project properties everything is set to give me correct measurements when scrolling around and measuring stuff, but the lines of my shapefile fill up the whole screen when I set the line thickness to 1 meter at scale, even when I should see my whole world map! The CRS is set both for the project and the shapefile layer. The (apparently unchangeable) properties of the layer indicate, that the unis is degrees though.

What am I missing here?

6
  • 1
    I may be wrong but I don't think you can have a latlong CRS and unit as a meter...
    – J.R
    Mar 17, 2020 at 7:48
  • Well that would be a reason. How do I find out what CRS supports meters as unit?
    – DonMeles
    Mar 20, 2020 at 22:37
  • The scale depends on the canvas, and the canvas scale for geographic coordinates seems to be exclusive to terrestrial datums, or datums that have a transformation defined to terrestrial datums. It is not giving you a warning that some transformation cannot be normalized, in the log panel? Mar 21, 2020 at 0:00
  • There are no warnings in the log... So I need to create a custom datum and spheroid in qgis, than I need to define a projection? Am I right that Winkel Tripel is a projection that would work?
    – DonMeles
    Mar 21, 2020 at 11:36
  • 1
    Defining a projection, and reprojecting the layers, seems to me the easiest way to work in meters. Winkel Tripel is a compromise projection and it is ok to general purposes. I am seeing that the canvas scale is right for the custom geographic system, and no warnings, may be because the ellipsoid is Earth-like (semi-major axis has the radius of the normal sphere, and a greater inverse flattening that Earth but seems ok). The problem may be in the geodesic calculation. I will try to register the ellipsoid in the PROJ database to see if the "meters at scale" feature can be used... Mar 21, 2020 at 12:00

2 Answers 2

1

Issue some with some background information-> https://github.com/qgis/QGIS/issues/26749.

From https://github.com/qgis/QGIS/issues/26749#issuecomment-926934514:

"calculates map sizes in meters based on the current map scale. For maps in a projected coordinate system this is calculated using projected units. For maps in a geographic (latitude/longitude) based system the size is approximated by calculating meter sizes using ellipsoidal calculations for the vertical scale of the map."

The advice in https://github.com/qgis/QGIS/issues/26749#issuecomment-926362086 is to use a projected coordinate system.

0

The solution lies in the difference between geographic coordinate systems (Unit: degrees) such as a longlat crs and projections such as Mercator, Winkel-Tripel, etc. (Unit: meters, if defined so).

So if you want to visualise lines with a thickness defined in meters at scale, you need to draw them in a layer with some projection as layer-crs. I did it in a custom Winkel-Tripel-crs. Note though, that the width of the lines only will be shown with the correct width, when also the project crs is set to a real projrection. As soon as you switch to a geographical coordinate system as project crs, a street with a width of 4m will cover more than the whole world map!

2
  • It should make no difference if you use "Meters at Scale" with a geographical coordinate system or Mercator, Winkel-Tripel. From docs.qgis.org/3.22/en/docs/user_manual/introduction/…: "This allows you to always set the size in meters, regardless of what the underlying map units are (e.g. they can be in inches, feet, geographic degrees, …). The size in meters is calculated based on the current project ellipsoid setting and a projection of the distances in meters at the center of the current map extent."
    – pathmapper
    Jun 9 at 9:47
  • @pathmapper I only described what I experienced. It would definitely make sense if it worked like you describe it but when I show the layer with lines in meters at scale in a lonlat projection, the line's width covers the whole planet :/
    – DonMeles
    Jun 9 at 19:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.