[GIS] CRS, units and measures in QGIS

geopandasqgis

I have two points on a EPSG:4326 layer. Measuring the distance between these two points using the Measure line tool gives me 10'000 meters, which is correct.

I convert the layer with a EPSG:3857 CRS using Save as in the layers panel. I open this new layer and measure the distance between the two points again and the Measure line tool gives me 13'000 meters.

Why? I don't understand. It means that I can not use the buffer tool on my EPSG:3857 layer because it gives me incorrect values and I have to use meters units.

Same issue with geopandas. Here are two screenshots to illustrate the problem.

My two points on Google Map (8,92km)

enter image description here

My two points on my Jupyter notebook, with a buffer equals two the distance displayed on Google Map (8920 meters)

enter image description here

The distances don't match! What am I doing wrong?

Best Answer

Projection is flattening the world into a plane, which leads to distortions of angles, distances and area. So be carefull what projection you use.

WGS84 is a geographical coordinate systems, its measures are in degrees of an ellipsoid. Many systems use spherical trigonometry to calculate distances here. This is quite exact. But it is not the best system to do other GIS-calculation, as many of them need projected coordinates.

Quite another cup of tea is to measure distances on a mercator projection, where earth poles lie in the infinite. Only on the equator distances are correct in that case.

So if you use EPSG:4326, you are in WGS84, if you use EPSG:3857 you are in Web-Mercator, googles mercator projection. If you want exact measures in GIS, use a local geodetic system like UTM in the best fitting zone.

Related Question