logo       
Google Custom Search
    AddThis Social Bookmark Button

Re: OpengeoDB mit PostGIS: msg#00002

Subject: Re: OpengeoDB mit PostGIS
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hallo Thomas!

> Habe gerade mal die Daten in eine
> PostgreSQL-Datenbank importiert. Da
> ich hier auch PostGIS nutze und daher gerne eine
> Geometry-Spalte hätte,
> hab ich sie erzeugt. 
> 
> 
>> Gibt es auch schon Daten für diese Spalte, abgesehen
>> von den Punkten, also z.B. Shapes?

In der Opengeodb sind bisher nur Punktdaten. Wenn du noch andere Daten
(z.B. Postleitzahl-Polygone) hast, sollten die in eine eigene Tabelle.
Postleitzahlen-Polygone kannst du beim Mapbender-Projekt bekommen:
http://prdownloads.sourceforge.net/mapbender/plz.zip?download

Dann evtl. noch den Datenbanknutzer am Beginn des SQL-Files anpassen
(\connect - dbnutzer) und das encoding anpassen:
iconv -t utf-8 -f iso-8859-1 plz.sql > plz_utf8.sql

# Daten einlesen
psql -d opengeodb -f plz_utf8.sql

- -- [SQL] eine Zeile in der Tabelle geometry_columns hinzufügen:
INSERT INTO geometry_columns (f_table_catalog, f_table_schema,
f_table_name, f_geometry_column, coord_dimension, srid, "type")
 VALUES ('', 'public', 'post_code_areas', 'the_geom', 2, 4326,
'MULTIPOLYGON');

- -- Einen (oder zwei) Index(e) erzeugen
CREATE INDEX coord_geom_idx ON geodb_coordinates USING GIST (the_geom);
CREATE INDEX plz_plz99_idx ON post_code_areas USING btree (plz99);
VACUUM ANALYSE;

- -- Ein Select mit einer Geometrie aus post_code_areas
- -- Die Relation innerhalb der opengeodb wäre schneller,
- -- aber so ist das Prinzip:

- -- Diese hier nutzt einfach die Bounding Box (Index wird genutzt):
SELECT c.* , plz.* , asewkt(c.the_geom) AS coor_wkt
        FROM geodb_coordinates c , post_code_areas plz
        WHERE c.the_geom && plz.the_geom
          AND plz.plz99 = '01067'

- -- Diese nutzt die Bounding Box und verschneidet die Geometrien:
SELECT c.* , plz.*
        FROM geodb_coordinates c , post_code_areas plz
        WHERE c.the_geom && plz.the_geom
          AND intersects(c.the_geom,
                (SELECT the_geom FROM post_code_areas
                WHERE plz99 = '01067'))

- -- Diese Abfrage kann sicher noch optimiert werden, aber das ist ein
- -- anderes Thema und soll später mal behandelt werden :-)


- --
Martin Weis
PGP-Key: http://datenroulette.de/pgp.php
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Debian - http://enigmail.mozdev.org

iD8DBQFFcDQY5j8IxyG/AuwRAjPMAKCyHD+kAOw65Xzmpm0gHajldQ8EdACfeaxZ
SakYZ5M9GOQQVsz7ZEvHSHU=
=e4pG
-----END PGP SIGNATURE-----
-- 
Mailingliste OpenGeoDB
Listenadresse: opengeodb-r1mDYR0DdAyzQB+pC5nmwQ@xxxxxxxxxxxxxxxx
Informationen: http://opengeodb.de
Mit freundlicher Unterstütztung von php::bar (http://phpbar.de)




Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>