[Talk-de] PostGIS vs. MySQL [was: Re: OpenLinkMap]

Sven Geggus lists at fuchsschwanzdomain.de
So Jan 17 17:45:28 UTC 2010


Alexander Matheisen <AlexanderMatheisen at ish.de> wrote:

> Für die punktförmigen Objekte wie zur Zeit reicht es eben. 

Ja sicher, aber Du kannst keinen geometrischen index über zwei
Spalten mit lat/long legen.

Wenn man eine Geometriespalte mit 2D Punktobjekten verwendet hat man
diese Funktionalität halt schon. Mitja macht ja bei seinen Poitools
(poitools.openstreetmap.de) etwas sehr ähnliches wie Du.

Da ist dann zum Beispiel eine Tabelle mit Pubs, die so aussieht:

osmosis_germany=> \d poi_pub
                                Tabelle »public.poi_pub«
  Spalte  |         Typ          |                      Attribute                       
----------+----------------------+------------------------------------------------------
 id       | integer              | not null default nextval('poi_pub_id_seq'::regclass)
 osm_type | character varying(8) | not null
 osm_id   | integer              | not null
 point    | geometry             | not null
Indexe:
    »poi_pub_pkey« PRIMARY KEY, btree (id)
    »poi_pub_point_id« gist (point)
Check-Constraints:
    »enforce_dims_point« CHECK (ndims(point) = 2)
    »enforce_geotype_point« CHECK (geometrytype(point) = 'POINT'::text OR point IS NULL)
    »enforce_srid_point« CHECK (srid(point) = 4326)

Mit folgendem SQL Befehl hole ich dann zum Beispiel alle pubs in
einem bestimmten Gebiet aus der Tabelle:

SELECT astext(point) FROM poi_pub
WHERE
ST_Intersects(point, SetSRID('BOX2D(8.40241 48.99554, 8.43708 49.02211)'::box2d,4326));

Gruss

Sven

-- 
"Remember, democracy never lasts long. It soon wastes itself,
exhausts and murders itself. There never was a democracy yet
that did not commit suicide." (John Quincy Adams)
/me is giggls at ircnet, http://sven.gegg.us/ on the Web




Mehr Informationen über die Mailingliste Talk-de