Bug report #17094

Point Selection Fails in Antarctic Projections

Added by Richard Barnes over 6 years ago. Updated about 5 years ago.

Status:Open
Priority:Normal
Assignee:-
Category:Projection Support
Affected QGIS version:3.6.0 Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:No Resolution:
Crashes QGIS or corrupts data:No Copied to github as #:24993

Description

To reproduce:

Open QGIS.

Project -> Project Properties... CRS.
Enable "On the Fly".
Select EPSG:3031.

Create a new shapefile layer with points in it, put them all around Antarctica.
(Layer -> Create Layer -> New Shapefile Layer -> Okay)

It's impossible to select all of the points by dragging a box.
Likewise, selecting subsets of points on one side/corner of Antarctica sometimes selects point on the opposite of Antarctica.

I think it's likely that the selection criteria are taking place in a different projection (which contains a singularity) than the one displayed on the screen (which has no singularity).

ant.zip (22.8 KB) Giovanni Manghi, 2017-09-01 06:05 PM

antb.zip (3.06 MB) Richard Barnes, 2017-09-06 11:09 PM

workflow.png (280 KB) Richard Barnes, 2017-09-08 01:22 AM

History

#1 Updated by Giovanni Manghi over 6 years ago

  • Status changed from Open to Feedback
  • File ant.zip added

cannot replicate with the attached project and data

#2 Updated by Richard Barnes over 6 years ago

Attached my own project and data (sorry, I should have done so earlier), which demonstrates the issue.

#3 Updated by Giovanni Manghi over 6 years ago

  • Category changed from GUI to Map Canvas

Richard Barnes wrote:

Attached my own project and data (sorry, I should have done so earlier), which demonstrates the issue.

your project and data work ok for me on 2.18.12. Can you try on another system/clean installation? thanks.

#4 Updated by Richard Barnes over 6 years ago

I ran `sudo apt purge qgis` then `sudo apt install qgis` and tried again. Same result.

I'm running:

QGIS version
2.18.12
QGIS code revision
a6c461b
Compiled against Qt
4.8.7
Running against Qt
4.8.7
Compiled against GDAL/OGR
2.1.2
Running against GDAL/OGR
2.1.2
Compiled against GEOS
3.5.1-CAPI-1.9.1
Running against GEOS
3.5.1-CAPI-1.9.1 r4246
PostgreSQL Client Version
9.6.2
SpatiaLite Version
4.3.0a
QWT Version
5.2.3
PROJ.4 Version
493
QScintilla2 Version
2.9.3

Do our workflow's match? I've uploaded a screnshot showing what I'm doing.

#5 Updated by Giovanni Manghi over 6 years ago

  • Status changed from Feedback to Open
  • Category changed from Map Canvas to Projection Support

~

Do our workflow's match? I've uploaded a screnshot showing what I'm doing.

after a few more tries I replicated. Is also true that if instead of reprojecting your WGS84 CSV layer you save a shapefile (or other format) in EPSG 3031 then the issue is not replicable anymore. Any chance you can try QGIS master and see if still applies?

#6 Updated by Richard Barnes over 6 years ago

I'm afraid I'm running into compilation difficulties on QGIS Master. Is there a nightly ppa I could use?

Never mind: found it.

#7 Updated by Richard Barnes over 6 years ago

Yes, I think it is still present in master.

I've fetched the package from:

deb http://qgis.org/debian-nightly-release zesty main

Which gives:


QGIS version
2.18.13
QGIS code revision
c81adf8
Compiled against Qt
4.8.7
Running against Qt
4.8.7
Compiled against GDAL/OGR
2.1.2
Running against GDAL/OGR
2.1.2
Compiled against GEOS
3.5.1-CAPI-1.9.1
Running against GEOS
3.5.1-CAPI-1.9.1 r4246
PostgreSQL Client Version
9.6.2
SpatiaLite Version
4.3.0a
QWT Version
5.2.3
PROJ.4 Version
493
QScintilla2 Version
2.9.3
This copy of QGIS writes debugging output.

Along with some verbose output:

src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 232: (setFromUrl) [24131ms] Delimited text file is: /z/downloads/antb/poi-gshhg-ellipsoidal.csv
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 233: (setFromUrl) [0ms] Encoding is: UTF-8
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 234: (setFromUrl) [0ms] Delimited file type is: csv
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 235: (setFromUrl) [0ms] Delimiter is: [, \t]
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 236: (setFromUrl) [0ms] Quote character is: ["]
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 237: (setFromUrl) [0ms] Escape character is: ["]
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 238: (setFromUrl) [1ms] Skip lines: 0
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 239: (setFromUrl) [0ms] Maximum number of fields in record: 0
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 240: (setFromUrl) [0ms] Use headers: Yes
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 241: (setFromUrl) [0ms] Discard empty fields: No
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 242: (setFromUrl) [0ms] Trim fields: No
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 35: (QgsDelimitedTextFeatureIterator) [1ms] Setting up QgsDelimitedTextIterator
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 51: (QgsDelimitedTextFeatureIterator) [0ms] Configuring for rectangle select
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 83: (QgsDelimitedTextFeatureIterator) [0ms] Layer has spatial index - selected 126 features from index
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 157: (QgsDelimitedTextFeatureIterator) [0ms] Iterator is scanning file: No
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 158: (QgsDelimitedTextFeatureIterator) [0ms] Iterator is loading geometries: Yes
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 159: (QgsDelimitedTextFeatureIterator) [0ms] Iterator is testing geometries: No
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 160: (QgsDelimitedTextFeatureIterator) [0ms] Iterator is testing subset: No
src/app/qgsmaptoolselectutils.cpp: 293: (getMatchingFeatures) [15ms] Number of new selected features: 25
src/gui/qgsmapcanvas.cpp: 694: (refresh) [1ms] CANVAS refresh scheduling
src/gui/qgsmapcanvas.cpp: 688: (refresh) [0ms] CANVAS refresh already scheduled
src/gui/qgsmapcanvas.cpp: 704: (refreshMap) [4ms] CANVAS refresh!
src/core/qgsmaprenderersequentialjob.cpp: 29: (QgsMapRendererSequentialJob) [1ms] SEQUENTIAL construct
src/core/qgsmaprenderersequentialjob.cpp: 63: (start) [1ms] SEQUENTIAL START
src/core/qgsmaprenderercustompainterjob.cpp: 37: (QgsMapRendererCustomPainterJob) [0ms] QPAINTER construct
src/core/qgsmaprenderercustompainterjob.cpp: 64: (start) [0ms] QPAINTER run!
src/core/qgsmaprenderercustompainterjob.cpp: 66: (start) [0ms] Preparing list of layer jobs for rendering
src/core/qgsscalecalculator.cpp: 40: (setMapUnits) [1ms] Map units set to 2
src/core/qgsmaprendererjob.cpp: 182: (prepareJobs) [0ms] CACHE VALID: 1
src/core/qgsmaprendererjob.cpp: 192: (prepareJobs) [0ms] Rendering at layer item ne_10m_coastline20170906140641276
src/core/qgsmaprendererjob.cpp: 208: (prepareJobs) [0ms] layer ne_10m_coastline:  minscale:0  maxscale:1e+08  scaledepvis:0  blendmode:0
src/core/qgscoordinatetransform.cpp: 538: (transformBoundingBox) [0ms] Entering transformBoundingBox...
src/core/qgscoordinatetransform.cpp: 607: (transformBoundingBox) [2ms] Projected extent: -177.6726307600550001,-87.8461126955262017 : 177.8921605526370229,-6.0790393311195530
src/core/qgscoordinatetransform.cpp: 538: (transformBoundingBox) [0ms] Entering transformBoundingBox...
src/core/qgscoordinatetransform.cpp: 607: (transformBoundingBox) [0ms] Projected extent: -11125586.7872243374586105,-11120573.8684578035026789 : 11126411.8672081083059311,11128083.0487482454627752
src/core/qgsmaprendererjob.cpp: 98: (reprojectToLayerExtent) [0ms] 
0:-6863630.9453292358666658,-5363008.1105969240888953 : 9750529.7719965800642967,4770122.7107169376686215 1.66142e+07x1.01331e+07
1:-177.6726307600550001,-87.8461126955262017 : 177.8921605526370229,-6.0790393311195530
2:-11125586.7872243374586105,-11120573.8684578035026789 : 11126411.8672081083059311,11128083.0487482454627752 2.2252e+07x2.22487e+07 (w:0.339339 h:1.19564)
src/core/qgsmaprendererjob.cpp: 226: (prepareJobs) [0ms] extent: -180.0000000000000000,-90.0000000000000000 : 180.0000000000000000,90.0000000000000000
src/core/qgsmaprendererjob.cpp: 192: (prepareJobs) [0ms] Rendering at layer item poi_gshhg_ellipsoidal20170906140656646
src/core/qgsmaprendererjob.cpp: 208: (prepareJobs) [0ms] layer poi-gshhg-ellipsoidal:  minscale:0  maxscale:1e+08  scaledepvis:0  blendmode:0
src/core/qgscoordinatetransform.cpp: 538: (transformBoundingBox) [0ms] Entering transformBoundingBox...
src/core/qgscoordinatetransform.cpp: 607: (transformBoundingBox) [2ms] Projected extent: -177.6726307600550001,-87.8461126955262017 : 177.8921605526370229,-6.0790393311195530
src/core/qgscoordinatetransform.cpp: 538: (transformBoundingBox) [0ms] Entering transformBoundingBox...
src/core/qgscoordinatetransform.cpp: 607: (transformBoundingBox) [0ms] Projected extent: -11125586.7872243374586105,-11120573.8684578035026789 : 11126411.8672081083059311,11128083.0487482454627752
src/core/qgsmaprendererjob.cpp: 98: (reprojectToLayerExtent) [0ms] 
0:-6863630.9453292358666658,-5363008.1105969240888953 : 9750529.7719965800642967,4770122.7107169376686215 1.66142e+07x1.01331e+07
1:-177.6726307600550001,-87.8461126955262017 : 177.8921605526370229,-6.0790393311195530
2:-11125586.7872243374586105,-11120573.8684578035026789 : 11126411.8672081083059311,11128083.0487482454627752 2.2252e+07x2.22487e+07 (w:0.339339 h:1.19564)
src/core/qgsmaprendererjob.cpp: 226: (prepareJobs) [0ms] extent: -180.0000000000000000,-90.0000000000000000 : 180.0000000000000000,90.0000000000000000
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 232: (setFromUrl) [2ms] Delimited text file is: /z/downloads/antb/poi-gshhg-ellipsoidal.csv
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 233: (setFromUrl) [0ms] Encoding is: UTF-8
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 234: (setFromUrl) [0ms] Delimited file type is: csv
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 235: (setFromUrl) [0ms] Delimiter is: [, \t]
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 236: (setFromUrl) [0ms] Quote character is: ["]
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 237: (setFromUrl) [0ms] Escape character is: ["]
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 238: (setFromUrl) [0ms] Skip lines: 0
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 239: (setFromUrl) [0ms] Maximum number of fields in record: 0
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 240: (setFromUrl) [0ms] Use headers: Yes
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 241: (setFromUrl) [0ms] Discard empty fields: No
src/providers/delimitedtext/qgsdelimitedtextfile.cpp: 242: (setFromUrl) [0ms] Trim fields: No
src/core/qgsvectorlayerrenderer.cpp: 93: (QgsVectorLayerRenderer) [0ms] rendering v2:
  SINGLE: MARKER SYMBOL (1 layers) color 207,156,110,255
src/core/qgsmaprenderercustompainterjob.cpp: 102: (start) [1ms] Rendering prepared in (seconds): 0.008
src/core/qgsmaprenderercustompainterjob.cpp: 250: (doRender) [0ms] [thread:0x55e87d2f44a0] Starting to render layer stack.
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 35: (QgsDelimitedTextFeatureIterator) [2ms] [thread:0x55e87d2f44a0] Setting up QgsDelimitedTextIterator
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 51: (QgsDelimitedTextFeatureIterator) [0ms] [thread:0x55e87d2f44a0] Configuring for rectangle select
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 70: (QgsDelimitedTextFeatureIterator) [0ms] [thread:0x55e87d2f44a0] Rectangle contains layer extents - bypass spatial filter
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 120: (QgsDelimitedTextFeatureIterator) [1ms] [thread:0x55e87d2f44a0] File will be scanned for desired features
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 157: (QgsDelimitedTextFeatureIterator) [0ms] [thread:0x55e87d2f44a0] Iterator is scanning file: Yes
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 158: (QgsDelimitedTextFeatureIterator) [0ms] [thread:0x55e87d2f44a0] Iterator is loading geometries: Yes
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 159: (QgsDelimitedTextFeatureIterator) [0ms] [thread:0x55e87d2f44a0] Iterator is testing geometries: No
src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp: 160: (QgsDelimitedTextFeatureIterator) [0ms] [thread:0x55e87d2f44a0] Iterator is testing subset: No
src/core/qgsmaprenderercustompainterjob.cpp: 288: (doRender) [155ms] [thread:0x55e87d2f44a0] Done rendering map layers
src/core/qgsmaprenderercustompainterjob.cpp: 299: (drawLabeling) [0ms] [thread:0x55e87d2f44a0] Draw labeling start
src/core/qgscoordinatetransform.cpp: 538: (transformBoundingBox) [1ms] [thread:0x55e87d2f44a0] Entering transformBoundingBox...
src/core/qgscoordinatetransform.cpp: 607: (transformBoundingBox) [1ms] [thread:0x55e87d2f44a0] Projected extent: -177.6726307600550001,-87.8461126955262017 : 177.8921605526370229,-6.0790393311195530
src/core/qgscoordinatetransform.cpp: 538: (transformBoundingBox) [0ms] [thread:0x55e87d2f44a0] Entering transformBoundingBox...
src/core/qgscoordinatetransform.cpp: 607: (transformBoundingBox) [1ms] [thread:0x55e87d2f44a0] Projected extent: -11125586.7872243374586105,-11120573.8684578035026789 : 11126411.8672081083059311,11128083.0487482454627752
src/core/qgsmaprendererjob.cpp: 98: (reprojectToLayerExtent) [0ms] [thread:0x55e87d2f44a0] 
0:-6863630.9453292358666658,-5363008.1105969240888953 : 9750529.7719965800642967,4770122.7107169376686215 1.66142e+07x1.01331e+07
1:-177.6726307600550001,-87.8461126955262017 : 177.8921605526370229,-6.0790393311195530
2:-11125586.7872243374586105,-11120573.8684578035026789 : 11126411.8672081083059311,11128083.0487482454627752 2.2252e+07x2.22487e+07 (w:0.339339 h:1.19564)
src/core/qgsvectorlayer.cpp: 320: (drawLabels) [0ms] [thread:0x55e87d2f44a0] Starting draw of labels: ne_10m_coastline20170906140641276
src/core/qgscoordinatetransform.cpp: 538: (transformBoundingBox) [0ms] [thread:0x55e87d2f44a0] Entering transformBoundingBox...
src/core/qgscoordinatetransform.cpp: 607: (transformBoundingBox) [1ms] [thread:0x55e87d2f44a0] Projected extent: -177.6726307600550001,-87.8461126955262017 : 177.8921605526370229,-6.0790393311195530
src/core/qgscoordinatetransform.cpp: 538: (transformBoundingBox) [0ms] [thread:0x55e87d2f44a0] Entering transformBoundingBox...
src/core/qgscoordinatetransform.cpp: 607: (transformBoundingBox) [0ms] [thread:0x55e87d2f44a0] Projected extent: -11125586.7872243374586105,-11120573.8684578035026789 : 11126411.8672081083059311,11128083.0487482454627752
src/core/qgsmaprendererjob.cpp: 98: (reprojectToLayerExtent) [0ms] [thread:0x55e87d2f44a0] 
0:-6863630.9453292358666658,-5363008.1105969240888953 : 9750529.7719965800642967,4770122.7107169376686215 1.66142e+07x1.01331e+07
1:-177.6726307600550001,-87.8461126955262017 : 177.8921605526370229,-6.0790393311195530
2:-11125586.7872243374586105,-11120573.8684578035026789 : 11126411.8672081083059311,11128083.0487482454627752 2.2252e+07x2.22487e+07 (w:0.339339 h:1.19564)
src/core/qgsvectorlayer.cpp: 320: (drawLabels) [0ms] [thread:0x55e87d2f44a0] Starting draw of labels: poi_gshhg_ellipsoidal20170906140656646
src/core/qgsmaprenderercustompainterjob.cpp: 327: (drawLabeling) [1ms] [thread:0x55e87d2f44a0] Draw labeling took (seconds): 0.005
src/core/qgsmaprenderercustompainterjob.cpp: 293: (doRender) [0ms] [thread:0x55e87d2f44a0] Rendering completed in (seconds): 0.163
src/core/qgsmaprenderercustompainterjob.cpp: 215: (futureFinished) [0ms] QPAINTER futureFinished
src/core/qgsmaprendererjob.cpp: 333: (cleanupJobs) [0ms] caching image for poi_gshhg_ellipsoidal20170906140656646
src/core/qgsmaprenderersequentialjob.cpp: 131: (internalFinished) [0ms] SEQUENTIAL finished
src/gui/qgsmapcanvas.cpp: 756: (rendererJobFinished) [0ms] CANVAS finish! 1
src/core/qgsmaprenderercustompainterjob.cpp: 42: (~QgsMapRendererCustomPainterJob) [4ms] QPAINTER destruct
src/core/qgsmaprenderersequentialjob.cpp: 39: (~QgsMapRendererSequentialJob) [7ms] SEQUENTIAL destruct
src/gui/qgsmapcanvas.cpp: 1319: (keyPressEvent) [31591ms] Ignoring key: 16777251

#8 Updated by Jürgen Fischer about 5 years ago

  • Status changed from Open to Feedback

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

#9 Updated by Giovanni Manghi about 5 years ago

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

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.

#10 Updated by Richard Barnes about 5 years ago

  • Status changed from Closed to Reopened

The `antb.zip` dataset continues to exhibit the issue in QGIS version 3.6.0-Noosa, QGIS code revision 5873452.

#11 Updated by Giovanni Manghi about 5 years ago

  • Affected QGIS version changed from 2.18.12 to 3.6.0
  • Status changed from Reopened to Open
  • Resolution deleted (end of life)

Also available in: Atom PDF