RE: [HACKERS] Indexing for geographic objects?

From: Michael Ansley <Michael(dot)Ansley(at)intec-telecom-systems(dot)com>
To: "'Tom Lane '" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "'Franck Martin '" <franck(at)sopac(dot)org>
Cc: "'pgsql-general '" <pgsql-general(at)postgresql(dot)org>, "'pgsql-hackers '" <pgsql-hackers(at)postgresql(dot)org>, "'t(dot)h(dot)p(dot)ansley(at)durham(dot)co(dot)uk'" <t(dot)h(dot)p(dot)ansley(at)durham(dot)co(dot)uk>
Subject: RE: [HACKERS] Indexing for geographic objects?
Date: 2000-11-26 11:34:16
Message-ID: 7F124BC48D56D411812500D0B747251406151E@fileserver002.intecsystems.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

Hi,

Remember also that the GiST library has been integrated into PG, (my brother
is doing some thesis workon that at the moment), and you can create new
index types relatively quickly (assuming that you understand the indexing
theory ;-) using this mechanism. Run a web search on GiST for more info.

Currently GiST has support for btree and rtree indexes, and possibly r+ or *
trees, I can't remember which, if any, and IIRC, at least a couple more.
However, if you have a requirement or 3d indexing, and you have the
knowledge available, you should be able to hack a few 3d indexes together
quite quickly.

Cheers...

-----Original Message-----
From: Tom Lane
To: Franck Martin
Cc: pgsql-general; pgsql-hackers
Sent: 11-26-00 4:35 AM
Subject: Re: [HACKERS] Indexing for geographic objects?

Franck Martin <franck(at)sopac(dot)org> writes:
> I would greatly appreciate if someone could guide me through the
> methodology to build an index for a custom type or point me to some
> readings where the algorithm is explained (web, book, etc...).

The Programmer's Guide chapter "Interfacing Extensions To Indices"
outlines the procedure for making a new datatype indexable. It
only discusses the case of adding btree support for a new type,
though. For other index classes such as R-tree there are different
sets of required operators, which are not as well documented but
you can find out by looking at code for the already-supported
datatypes.

> I plan to use 3D geographical objects...

That's a bit hard since we don't have any indexes suitable for 3-D
coordinates --- the existing R-tree type is for 2-D objects. What's
more it assumes that coordinates are Euclidean, which is probably
not the model you want for geographical coordinates.

In theory you could build a new index type suitable for indexing
3-D points, using the R-tree code as a starting point. I wouldn't
class it as a project suitable for a newbie however :-(.

Depending on what your needs are, you might be able to get by with
projecting your objects into a flat 2-D coordinate system and using
an R-tree index in that space. It'd just be approximate but that
might be close enough for index purposes.

regards, tom lane

**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.

www.mimesweeper.com
**********************************************************************

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Hubert Hafner 2000-11-26 11:53:38 MS-Access: MySQL vs. PostgreSQL
Previous Message GH 2000-11-26 10:47:34 Re: Skipping numbers in a sequence.

Browse pgsql-hackers by date

  From Date Subject
Next Message Tatsuo Ishii 2000-11-26 11:49:04 Re: syslog output from explain looks weird...
Previous Message Tatsuo Ishii 2000-11-26 10:46:32 Re: Bug in unicode conversion ...