Bug report #19437

WGS84 geometry.area() returns -1.0

Added by Georg Wicke about 2 years ago. Updated over 1 year ago.

Status:Closed
Priority:Normal
Assignee:-
Category:Geometry
Affected QGIS version:2.18.21 Regression?:No
Operating System:Windows 10 Easy fix?:No
Pull Request or Patch supplied:No Resolution:end of life
Crashes QGIS or corrupts data:No Copied to github as #:27265

Description

Steps to reproduce

1. Create or load a vector layer with polygon type, add some polygons. The CRS needs to be WGS84 (EPSG: 4326).
2. Select one or more features.
3. Type the following code in the console.

iface.activeLayer().selectedFeatures()[0].geometry().area()

Observed behaviour

"-1.0" is printed to the console.

Expected behaviour

A positive numer is printed to the console. This number should be the area of the selected polygon in square meters.

Further remarks

I'm regularly experiencing crashes when working with these APIs (in combination with that CRS). I guess that this may have common causes.

Best regards,

Georg

History

#1 Updated by Georg Wicke about 2 years ago

Actually, I am experiencing crashes when accessing "area()" when copying the geometry first.

I.e.: Type the following code in your QGIS console instead to get a crash:

QgsGeometry(iface.activeLayer().selectedFeatures()[0].geometry()).area()

#2 Updated by Georg Wicke about 2 years ago

Another small correction: It works for newly created scratch layers, but it definitely fails when saving the layer and then reloading it in a new instance of QGIS. I.e.:

1. Create a new scratch layer (vector, polygon)
2. Draw a feature
3. Finish editing
4. Save the scratch layer to file (e.g. ESRI shapefile or GeoJSON)
5. Close QGIS
6. Re-open QGIS
7. Open your saved layer
8. Select some feature
9. Type one of the lines that I mentioned previously into the console

#3 Updated by Nyall Dawson about 2 years ago

  • Status changed from Open to Feedback

Please test by first storing a reference to the feature:

f=iface.activeLayer().selectedFeatures()[0]
area=f.geometry().area()

#4 Updated by Georg Wicke about 2 years ago

  • Status changed from Feedback to Open

Yes, that is a workaround. Is it documented somewhere? Storing a reference to the geometry doesn't seem to be enough.

#5 Updated by Jürgen Fischer over 1 year ago

  • Status changed from Open to Feedback

Please test with QGIS 3.4 - QGIS 2.18 reached it's end of life.

#6 Updated by Giovanni Manghi over 1 year ago

  • Resolution set to end of life
  • Status changed from Feedback to Closed

End of life notice: QGIS 2.18 LTR

Source:
http://blog.qgis.org/2019/03/09/end-of-life-notice-qgis-2-18-ltr/

QGIS 3.4 has recently become our new Long Term Release (LTR) version. This is a major step in our history – a long term release version based on the massive updates, library upgrades and improvements that we carried out in the course of the 2.x to 3x upgrade cycle.

We strongly encourage all users who are currently using QGIS 2.18 LTR as their preferred QGIS release to migrate to QGIS 3.4. This new LTR version will receive regular bugfixes for at least one year. It also includes hundreds of new functions, usability improvements, bugfixes, and other goodies. See the relevant changelogs for a good sampling of all the new features that have gone into version 3.4

Most plugins have been either migrated or incorporated into the core QGIS code base.

We strongly discourage the continued use of QGIS 2.18 LTR as it is now officially unsupported, which means we’ll not provide any bug fix releases for it.

You should also note that we intend to close all bug tickets referring to the now obsolete LTR version. Original reporters will receive a notification of the ticket closure and are encouraged to check whether the issue persists in the new LTR, in which case they should reopen the ticket.

If you would like to better understand the QGIS release roadmap, check out our roadmap page! It outlines the schedule for upcoming releases and will help you plan your deployment of QGIS into an operational environment.

The development of QGIS 3.4 LTR has been made possible by the work of hundreds of volunteers, by the investments of companies, professionals, and administrations, and by continuous donations and financial support from many of you. We sincerely thank you all and encourage you to collaborate and support the project even more, for the long term improvement and sustainability of the QGIS project.

Also available in: Atom PDF