Martin Pfeifle wrote:

Hello Noel,
I think you can find more information on the computation of the upper hull values in 
[FFS00] "Implementing Geospatial Operations in an Object-Relational Database 
System".
Yes I'm already reading that.

For testing, we used oracle, where we had transient tables.
I am not sure whether we have transient memory tables in SQLite. If yes, you 
can use them.
I think sqlite has it


The simple box elimination always goes along with a full table scan. Assume you 
have the polygons of complete Europe in your database and you do a selective 
spatial query, you still have to evaluate all bounding boxes of all polygons. 
In that case a hierarchical organization of the data, e.g. by the Relational 
Quadtree or the Relational R-tree, is certainly much more efficient. If you 
always select let's say more than 10% of all polygons, then the box filtering 
might be enough.
I'm going to use the quadtree approach, will see if its already usable
Do you already have working code on sqlite ?

Best regards

Best Martin



----- Ursprüngliche Mail ----
Von: Noel Frankinet <[EMAIL PROTECTED]>
An: sqlite-users@sqlite.org
Gesendet: Freitag, den 19. Mai 2006, 09:38:13 Uhr
Betreff: Re: AW: [sqlite] Re: spatial sqlite anyone ?


Martin Pfeifle wrote:

Hi,
I think the simplest solution would be to put a spatial index on top of the 
B-tree, that's what e.g. Oracle does in their Spatial Cartridge.
Basically you store the index data in relations and index these relations by 
B-trees.
In this case, you do not have to change the core code of SQLite. You can 
already do this now.
Nevertheless, it would be nice, if SQlite supports somehow the "extensible indexing 
interface".
So, you ask a spatial query and in the background the system uses the index 
data stored in relations.
We have done a lot of research on that topic. To get acquainted to the basic 
idea, you might have a look at
"The Paradigm of Relational Indexing: A Survey".

In my opinion, a direct integration of a spatial index is of course preferable, 
but who is going to do that?

Best Martin



Hello Martin, hello All,

Thank you for the above link, it is very useful.
I definitely want to go the spatial index map to btree index way.
I especially like the quad-tree select because I understand it and I already have most of the building blocks :
SELECT DISTINCT idx.id
FROM polygons_quadtree idx,
          TABLE(ZDecompose(BOX()) titles,
         Table(ZupperHull(tiles.zval)) uh
WHERE (idx.zval BETWEEN tiles.zval AND ZHi(tiles.zval))
        OR (idx.zval = uh.zval);
Well almost, I know how to make ZDecompose, I still not sure about ZHi, ZUpperHul, do you have any more pointers ?

I didn't konw the TABLE statement to return a pseudo table, unfortunately, it seems not available in sqlite, can it be emulated by a transient memory table ? Do you think that such a complex statement has any chance to be speedier than a simple bbox elimination ?


Thanks again,
Best regards




--
Noël Frankinet
Gistek Software SA
http://www.gistek.net

Reply via email to