[Qgis-developer] Re: Fix for Identify Tool problem with SpatiaLite

William Kyngesburye woklist at kyngchaos.com
Sat Mar 19 18:51:01 EDT 2011


I think I got it.  There was a change in the Spatialite code that I missed in my Sqlite framework.  At some point multiple different uses of OMIT_GEOS and OMIT_PROJ were introduced.  In the past, tests in the code were like:

#if OMIT_GEOS == 0
  # code for *including* GEOS support
#endif

But now there are also tests like:

#ifndef OMIT_GEOS
  # code for *including* GEOS support
#endif

If I set OMIT_GEOS=0, then OMIT_GEOS is still defined, and the second test form fails.

QGIS compilation doesn't set OMIT_GEOS or OMIT_PROJ.  The only thing that's missed in the first form then are the GEOS and PROJ headers, which still seems to work without errors, so maybe they aren't actually used in the spatialite code.  There is also an OMIT_EPSG, but that still only uses the first test form.

I updated my SQLite framework and now Identify/Select works, and I think also the speed issue may be solved.  Download is online (still uploading the GDAL Complete, so download the individual Sqlite framework).


On Mar 19, 2011, at 5:03 PM, Cline, Royce L. wrote:

> The Identify Tool and Selection Tool problem also exist with QGIS 1.6 built with SQLite3_Framework-3.7.4-2. Installing the older SQLite3_Framework-3.6.23-1 after installing the current frameworks fixes the Identify Tool problem with both QGIS 1.6 and 1.7 that were built with SQLite3_Framework-3.7.4-2. The install of  SQLite3_Framework-3.6.23-1 must be enabling a feature not enabled in the current SQLite framework.
> 
> Royce
> 
> 
> On Mar 19, 2011, at 4:38 PM, William Kyngesburye wrote:
> 
>> It does exactly what it says - uses the spatialite source code bundled with QGIS source (including sqlite source).  So it will ignore the spatialite and sqlite options you give it.
>> 
>> It's possible I missed something in my sqlite/spatialite framework, or some sqlite option I enabled (maybe one of the Mac options) is incompatible with spatialite, but they are the same versions.
>> 
>> With internal, it looks like only rtree is enabled.  But I enable also WAL (new) and a few other options that are also in the older sqlite framework.  Though that doesn't explain why QGIS 1.6 still works with the current sqlite framework (with WAL), maybe coincident changes elsewhere.  I suppose I can try enabling sqlite options one-by-one to see what's causing the problem.
>> 
>> There is an open bug very similar to this, but it affects PPC Macs only.  It seems to be a QT Carbon vs. Cocoa thing, but I'm not totally sure:
>> 
>> http://trac.osgeo.org/qgis/ticket/2760
>> 
>> On Mar 19, 2011, at 3:51 PM, Cline, Royce L. wrote:
>> 
>>> I changed -D WITH_INTERNAL_SPATIALITE=FALSE in the cmake command to TRUE. With my build of QGIS 1.7 r15529, both the Identify Tool and the selection tools now work with SpatiaLite layers. Using latest frameworks. This doesn't fix the slow quit problem. What is WITH_INTERNAL_SPATIALITE doing?
>>> 
>>> Royce
>>> 
>>> 
>> 
>> -----
>> William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
>> http://www.kyngchaos.com/
>> 
>> Theory of the Universe
>> 
>> There is a theory which states that if ever anyone discovers exactly what the universe is for and why it is here, it will instantly disappear and be replaced by something even more bizarrely inexplicable.  There is another theory which states that this has already happened.
>> 
>> -Hitchhiker's Guide to the Galaxy 2nd season intro
>> 
>> 
> 
> Royce Cline
> State Water Commission
> 900 East Blvd.
> Bismarck, ND 58504
> 
> ph. 701-328-2754
> rcline at nd.gov
> 
> 
> 

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

"Time is an illusion - lunchtime doubly so."

- Ford Prefect




More information about the Qgis-developer mailing list