<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de-CH">
	<id>https://giswiki.ch/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Roger</id>
	<title>Geometa Lab OST - Benutzerbeiträge [de-ch]</title>
	<link rel="self" type="application/atom+xml" href="https://giswiki.ch/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Roger"/>
	<link rel="alternate" type="text/html" href="https://giswiki.ch/Spezial:Beitr%C3%A4ge/Roger"/>
	<updated>2026-04-28T11:52:49Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11087</id>
		<title>Sem PostGIS Roger</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11087"/>
		<updated>2007-10-21T14:15:42Z</updated>

		<summary type="html">&lt;p&gt;Roger: /* Metadaten-Record */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Daten &amp;lt;Titel&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Metadaten-Record ===&lt;br /&gt;
Metadaten (DC-Elemente) a la [[DClite4G#Examples]]: Titel, BBox, Datenabgabe, Rechte...&lt;br /&gt;
&lt;br /&gt;
  dc:title           = Titel&lt;br /&gt;
  dct:abstract       = Kurzbeschreibung&lt;br /&gt;
  dc:format          = Shapefile, INTERLIS,...?&lt;br /&gt;
  dct:spatial        = BoundingBox (WGS84)&lt;br /&gt;
  dct:modified       = Wann wurden die Geodaten zuletzt aktualisiert?&lt;br /&gt;
  dc:publisher       = Datenbezugsstelle&lt;br /&gt;
  dc:language        = de&lt;br /&gt;
  dc:rights          = Angaben zur Nutzung/Nutzungseinschränkungen&lt;br /&gt;
&lt;br /&gt;
==Laden des Datensatzes==&lt;br /&gt;
&lt;br /&gt;
==Queries==&lt;/div&gt;</summary>
		<author><name>Roger</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11086</id>
		<title>Sem PostGIS Roger</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11086"/>
		<updated>2007-10-21T14:15:11Z</updated>

		<summary type="html">&lt;p&gt;Roger: /* Metadaten-Record */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Daten &amp;lt;Titel&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Metadaten-Record===&lt;br /&gt;
=== Metadaten-Record ===&lt;br /&gt;
Metadaten (DC-Elemente) a la [[DClite4G#Examples]]: Titel, BBox, Datenabgabe, Rechte...&lt;br /&gt;
&lt;br /&gt;
  dc:title           = Titel&lt;br /&gt;
  dct:abstract       = Kurzbeschreibung&lt;br /&gt;
  dc:format          = Shapefile, INTERLIS,...?&lt;br /&gt;
  dct:spatial        = BoundingBox (WGS84)&lt;br /&gt;
  dct:modified       = Wann wurden die Geodaten zuletzt aktualisiert?&lt;br /&gt;
  dc:publisher       = Datenbezugsstelle&lt;br /&gt;
  dc:language        = de&lt;br /&gt;
  dc:rights          = Angaben zur Nutzung/Nutzungseinschränkungen&lt;br /&gt;
&lt;br /&gt;
==Laden des Datensatzes==&lt;br /&gt;
&lt;br /&gt;
==Queries==&lt;/div&gt;</summary>
		<author><name>Roger</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11085</id>
		<title>Sem PostGIS Roger</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11085"/>
		<updated>2007-10-21T14:14:29Z</updated>

		<summary type="html">&lt;p&gt;Roger: /* Queries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Daten &amp;lt;Titel&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Metadaten-Record===&lt;br /&gt;
&lt;br /&gt;
Metadaten (DC-Elemente) à la DCLite4G.&lt;br /&gt;
&lt;br /&gt;
==Laden des Datensatzes==&lt;br /&gt;
&lt;br /&gt;
==Queries==&lt;/div&gt;</summary>
		<author><name>Roger</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11084</id>
		<title>Sem PostGIS Roger</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11084"/>
		<updated>2007-10-21T14:14:16Z</updated>

		<summary type="html">&lt;p&gt;Roger: /* Laden des Datensatzes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Daten &amp;lt;Titel&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Metadaten-Record===&lt;br /&gt;
&lt;br /&gt;
Metadaten (DC-Elemente) à la DCLite4G.&lt;br /&gt;
&lt;br /&gt;
==Laden des Datensatzes==&lt;br /&gt;
&lt;br /&gt;
=Queries=&lt;/div&gt;</summary>
		<author><name>Roger</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11083</id>
		<title>Sem PostGIS Roger</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11083"/>
		<updated>2007-10-21T14:14:00Z</updated>

		<summary type="html">&lt;p&gt;Roger: /* Metadaten-Record */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Daten &amp;lt;Titel&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Metadaten-Record===&lt;br /&gt;
&lt;br /&gt;
Metadaten (DC-Elemente) à la DCLite4G.&lt;br /&gt;
&lt;br /&gt;
=Laden des Datensatzes=&lt;br /&gt;
&lt;br /&gt;
=Queries=&lt;/div&gt;</summary>
		<author><name>Roger</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11082</id>
		<title>Sem PostGIS Roger</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11082"/>
		<updated>2007-10-21T14:13:35Z</updated>

		<summary type="html">&lt;p&gt;Roger: /* Metadaten-Record */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Daten &amp;lt;Titel&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
=Metadaten-Record=&lt;br /&gt;
&lt;br /&gt;
Metadaten (DC-Elemente) à la DCLite4G.&lt;br /&gt;
&lt;br /&gt;
=Laden des Datensatzes=&lt;br /&gt;
&lt;br /&gt;
=Queries=&lt;/div&gt;</summary>
		<author><name>Roger</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11081</id>
		<title>Sem PostGIS Roger</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11081"/>
		<updated>2007-10-21T14:12:04Z</updated>

		<summary type="html">&lt;p&gt;Roger: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Daten &amp;lt;Titel&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
=Metadaten-Record=&lt;br /&gt;
&lt;br /&gt;
Metadaten (DC-Elemente) à la DCLite4G.&lt;br /&gt;
&lt;br /&gt;
==Laden des Datensatzes==&lt;br /&gt;
&lt;br /&gt;
==Queries==&lt;/div&gt;</summary>
		<author><name>Roger</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=11080</id>
		<title>Kurs PostGIS Einführung</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=11080"/>
		<updated>2007-10-21T14:06:13Z</updated>

		<summary type="html">&lt;p&gt;Roger: /* Selbststudium */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
Durchführung vom 12. Oktober 2007, 9:00 bis 16:30 Uhr.&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
* [http://gis.hsr.ch/index.php?option=com_content&amp;amp;task=view&amp;amp;id=230&amp;amp;Itemid=151 Programm und Anmeldung]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&lt;br /&gt;
== Programm (aktuell) ==&lt;br /&gt;
&lt;br /&gt;
Programm:&lt;br /&gt;
* Kap.1 Einführung&lt;br /&gt;
* Kap.2 Geodatenmodell, Datenverwaltung und -Abfrage über SQL&lt;br /&gt;
* Kap.3 DB-Clients / Administration und Anlegen einer DB&lt;br /&gt;
* Kap.4 Datensicherung / Datenaustausch&lt;br /&gt;
* Kap.5 PostGIS-Schnittstellen / Datenkonvertierung&lt;br /&gt;
* Kap.6 PostGIS-Architektur&lt;br /&gt;
* Kap.7 PostGIS-Funktionen&lt;br /&gt;
* Kap.8 Anzeigen PostGIS-Daten mit QGIS und OpenJump&lt;br /&gt;
* Kap.9 PostGIS in UMN MapServer und SVG (Demo)&lt;br /&gt;
* Kap.10 Koordinaten-Referenzsysteme; Performance&lt;br /&gt;
* Kap.11 Selbststudium: Projekt&lt;br /&gt;
* Kap.12 Ausblick&lt;br /&gt;
&lt;br /&gt;
Uebungen:&lt;br /&gt;
* [[Sem_PostGIS_Ueb_1| Ueb 1 Installation von PostgreSQL/PostGIS]]&lt;br /&gt;
* [[Sem_PostGIS_Ueb_2| Ueb 2 PostgreSQL mit pgAdmin]]&lt;br /&gt;
* [[Sem_PostGIS_Ueb_3| Ueb 3 PostGIS-Funktionen]]&lt;br /&gt;
* [[Sem_PostGIS_Ueb_4| Ueb 4 CRS]]&lt;br /&gt;
* [[Sem_PostGIS_Selbststudium| Ueb Selbststudium]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Browser&lt;br /&gt;
* TextPad o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
Teilnehmer:&lt;br /&gt;
* (Vorlage [[Sem_PostGIS Stefan]])&lt;br /&gt;
* Name des Seminarteilnehmers...&lt;br /&gt;
* Roger ([[Sem_PostGIS_Roger]])&lt;br /&gt;
&lt;br /&gt;
Organisatorisches: &lt;br /&gt;
* Das Ziel ist das Festigen des Gehörten und Erlernten. Der Auftrag ist, das selbständige Erstellen und Testen eines selbst ausgewählten Datensatzes mit dokumentierten Abfragen.&lt;br /&gt;
* Zeitumfang: 14h &lt;br /&gt;
* Abgabe: 1. November 2007 (Einträge im Wiki und Mail)&lt;br /&gt;
* Die wichtigsten Bewertungskriterien sind u.a.: &lt;br /&gt;
** Termintreue (gem. Abgabetermine); &lt;br /&gt;
** Vollständigkeit (gem. Lieferdokumente); &lt;br /&gt;
** Dokumentation (Umfang &amp;gt; 2 Seiten; Sprache/Verständlichkeit; Darstellung); &lt;br /&gt;
** Originalität (keine 1:1-Übernahme der Übungen). &lt;br /&gt;
* An ECTS angelehnte Bewertungs-Skala: &lt;br /&gt;
** Wertung &#039;sehr gut&#039; für eine hervorragende Leistung;&lt;br /&gt;
** Wertung &#039;gut&#039; für eine Leistung, die erheblich über den durchschnittlichen Anforderungen liegt.&lt;br /&gt;
** Wertung &#039;befriedigend&#039; für eine Leistung, die durchschnittlichen Anforderungen entspricht.&lt;br /&gt;
** Wertung &#039;ausreichend&#039; für eine Leistung, die trotz ihrer Mängel noch den Anforderungen genügt.&lt;br /&gt;
** Wertung &#039;nicht ausreichend&#039; für eine Leistung, die wegen ihrer Mängel den Anforderungen nicht genügt und Verbesserungen erfordert, bevor sie anerkannt werden kann (Verbesserung gemäss sep. Abmachungen). &lt;br /&gt;
** Wertung &#039;nicht bestanden&#039; für eine Leistung, die erhebliche Mängel enthält, dass sie nicht anerkannt werden kann.&lt;br /&gt;
&lt;br /&gt;
Lieferdokumente:&lt;br /&gt;
* Eintrag in diesem Wiki (vgl. &amp;quot;Name des Seminarteilnehmers...&amp;quot;) gemäss Vorlage [[Sem_PostGIS Stefan]]&lt;br /&gt;
* Projektdaten (möglichst komplett, lauffähige Scripts, etc.)&lt;br /&gt;
* Mail an Seminarleiter&lt;br /&gt;
&lt;br /&gt;
Verzeichnis-Struktur:&lt;br /&gt;
* rawdata&lt;br /&gt;
* data&lt;br /&gt;
* queries&lt;br /&gt;
&lt;br /&gt;
Queries:&lt;br /&gt;
# Ganzer Datensatz ein „Thema“&lt;br /&gt;
# Umprojizieren&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Overlay&lt;br /&gt;
&lt;br /&gt;
== Uebungen ==&lt;br /&gt;
&lt;br /&gt;
Hier einige Abfragen die mit dem Übungsdatensatz gemacht werden können. Die Übungsdaten können Sie von [http://www.carto.net/postgis/pgch_uebungsdaten.zip http://www.carto.net/papers/pgch_uebungsdaten.zip] herunterladen. Sie benötigen die shapefiles &amp;quot;gemeinden&amp;quot; und &amp;quot;fluesse&amp;quot; und das SQL File staedte_ch.sql&lt;br /&gt;
&lt;br /&gt;
=== Neue räumliche Tabelle erstellen und bevölkern ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Eine neue räumliche Tabelle &amp;quot;seen&amp;quot; soll erstellt und alle Seen von der Tabelle&lt;br /&gt;
-- &amp;quot;gemeinden&amp;quot; eingespielt werden. Danach soll ein räumlicher Index auf der neuen Tabelle&lt;br /&gt;
-- &amp;quot;seen&amp;quot; erstellt werden und die Seen aus der Tabelle &amp;quot;gemeinden&amp;quot; gelöscht werden&lt;br /&gt;
&lt;br /&gt;
-- neue Tabelle kantone mit Primary Key erstellen&lt;br /&gt;
CREATE TABLE seen&lt;br /&gt;
(&lt;br /&gt;
  gid integer PRIMARY KEY,  &lt;br /&gt;
  name text&lt;br /&gt;
);&lt;br /&gt;
-- räumliche Geometriespalte dazufügen&lt;br /&gt;
SELECT AddGeometryColumn(&#039;public&#039;, &#039;seen&#039;, &#039;the_geom&#039;, 21781, &#039;MULTIPOLYGON&#039;, 2);&lt;br /&gt;
-- Daten von Gemeinde hereinspielen wo kt = 0 (sind Seen), sollten 22 Datensätze sein&lt;br /&gt;
INSERT INTO seen &lt;br /&gt;
  SELECT gid, name, the_geom FROM gemeinden WHERE kt = 0 AND gmde &amp;gt;= 9000;&lt;br /&gt;
-- Seen und liechtensteinische Gemeinden aus gemeindetabelle löschen&lt;br /&gt;
DELETE FROM gemeinden WHERE kt = 0;&lt;br /&gt;
-- neuen räumlichen index erstellen bei der tabelle seen&lt;br /&gt;
CREATE INDEX seen_the_geom_gist&lt;br /&gt;
  ON seen USING gist (the_geom GIST_GEOMETRY_OPS);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resultat: neue Tabelle Seen mit Index und 36 Datensätzen&lt;br /&gt;
&lt;br /&gt;
=== Flächenberechnungen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Selektiere alle Gemeinden, die eine Fläche grösser als 100 km2 haben&lt;br /&gt;
SELECT name, kt, Round(ST_Area(the_geom) / 1000000) As flaeche FROM gemeinden&lt;br /&gt;
  WHERE (ST_Area(the_geom) / 1000000) &amp;gt; 100&lt;br /&gt;
  ORDER BY flaeche DESC;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resultat: Bagnes, 23, 283; Davos, 18, 255; Zermatt, 23, 243; ... insgesamt 48 Datensätze (wenn Seen in vorherigem Schritt gelöscht)&lt;br /&gt;
&lt;br /&gt;
=== Südlichste Geometrie ermitteln ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Selektiere die südlichste Gemeinde des Kantons Graubünden&lt;br /&gt;
-- kt id 18 ist Graubünden&lt;br /&gt;
&lt;br /&gt;
SELECT name FROM gemeinden WHERE kt = 18 ORDER BY ST_YMIN(ST_ENVELOPE(the_geom)) ASC LIMIT 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resultat: Roveredo (GR)&lt;br /&gt;
&lt;br /&gt;
=== Koordinatentransformation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Die Koordinate von Bern (Tabelle staedte_schweiz), urspr. Landeskoordinate,&lt;br /&gt;
-- als Lat/Lon, WGS84 ausgeben&lt;br /&gt;
SELECT AsText(Transform(the_geom,4326)) FROM staedte_schweiz WHERE &amp;quot;FULL_NAME&amp;quot; = &#039;Bern&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resultat: POINT(7.46666670742301 46.9166667102846)&lt;br /&gt;
&lt;br /&gt;
=== Distanzberechnung ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Spheroidische Distanz zwischen Bern und Zürich, basierend auf Bessel 1841 Ellipsoid&lt;br /&gt;
SELECT ST_distance_spheroid(&lt;br /&gt;
  (SELECT Transform(the_geom,4326) FROM staedte_schweiz WHERE &amp;quot;FULL_NAME&amp;quot; = &#039;Bern&#039;),&lt;br /&gt;
  (SELECT Transform(the_geom,4326) FROM staedte_schweiz WHERE &amp;quot;FULL_NAME&amp;quot; = &#039;Zürich&#039;),&lt;br /&gt;
  &#039;SPHEROID[&amp;quot;Bessel 1841&amp;quot;,6377397.155,299.1528128]&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resultat: 96139.7469334825&lt;br /&gt;
&lt;br /&gt;
=== Kombinierte Distanzabfragen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Selektiere Orte (Tabelle staedte_schweiz) und zugehörige Seen (Tabelle Seen) die innerhalb eines Radius&lt;br /&gt;
-- von 75 km von Bern sind und ein Ort nicht mehr als 5km von einem See entfernt ist (Tabelle Seen)&lt;br /&gt;
-- Achtung: kartesische Distanz, nicht ellipsoidische!&lt;br /&gt;
SELECT sta.&amp;quot;FULL_NAME&amp;quot;, se.name FROM staedte_schweiz sta, seen se&lt;br /&gt;
  WHERE ST_DWithin(sta.the_geom,(SELECT the_geom FROM staedte_schweiz WHERE &amp;quot;FULL_NAME&amp;quot; = &#039;Bern&#039;),75000) AND&lt;br /&gt;
  ST_DWithin(sta.the_geom,se.the_geom,5000) ORDER BY sta.&amp;quot;FULL_NAME&amp;quot; ASC, se.name ASC;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resultat: Adligenswil, Vierwaldstättersee; Aecherli, Lungerer See; Aecherlis, Sarnersee; ...&lt;br /&gt;
&lt;br /&gt;
=== Selektiere angrenzende Flächen mit ST_Touches() ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Selektiere alle Gemeinden die an den Zürichsee grenzen&lt;br /&gt;
&lt;br /&gt;
SELECT name FROM gemeinden&lt;br /&gt;
  WHERE ST_TOUCHES(the_geom,(SELECT the_geom FROM seen WHERE name = &#039;Zürichsee&#039;)) ORDER BY name;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resultat: 25 Records; Altendorf, Erlenbach (ZH, Freienbach, ...&lt;br /&gt;
&lt;br /&gt;
=== Crosses(), Selektion von Flächen die von Linien geschnitten werden ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Es sollen sämtliche Gemeinden abgefragt durch die der Fluss Emme fliesst&lt;br /&gt;
&lt;br /&gt;
SELECT g.name FROM gemeinden g, fluesse f&lt;br /&gt;
  WHERE f.name = &#039;Emme&#039; AND f.the_geom &amp;amp;&amp;amp; g.the_geom AND ST_Crosses(f.the_geom,g.the_geom)&lt;br /&gt;
  ORDER by name ASC;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Geomunion() und Crosses() Abfrage (MULTIPOLYGON und MULTILINESTRING) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Prüfe ob die kombinierten Einzel-Linienelemente des Rheinflusses die Gemeindegeometrie von Basel durchlaufen&lt;br /&gt;
-- Resultat ergibt &amp;quot;t&amp;quot; (true) oder &amp;quot;f&amp;quot; (false)&lt;br /&gt;
SELECT ST_Crosses(&lt;br /&gt;
  (SELECT the_geom FROM gemeinden WHERE name = &#039;Basel&#039;),&lt;br /&gt;
  (SELECT geomunion(the_geom) FROM fluesse WHERE name = &#039;Rhein&#039; GROUP BY name));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resultat: t&lt;br /&gt;
&lt;br /&gt;
=== Flächen zusammenfassen mit Geomunion() ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Eine neue räumliche Tabelle &amp;quot;kantone&amp;quot; soll erstellt und Gemeinden aus der Tabelle&lt;br /&gt;
-- &amp;quot;gemeinden&amp;quot; zu Kantonen zusammengefasst eingespielt werden. Danach soll ein räumlicher Index auf der neuen Tabelle&lt;br /&gt;
-- &amp;quot;kantone&amp;quot; erstellt werden&lt;br /&gt;
&lt;br /&gt;
-- neue Tabelle kantone mit Primary Key erstellen&lt;br /&gt;
CREATE TABLE kantone&lt;br /&gt;
(&lt;br /&gt;
  gid integer PRIMARY KEY,  &lt;br /&gt;
  name text&lt;br /&gt;
);&lt;br /&gt;
-- räumliche Geometriespalte dazufügen&lt;br /&gt;
SELECT AddGeometryColumn(&#039;public&#039;, &#039;kantone&#039;, &#039;the_geom&#039;, 21781, &#039;MULTIPOLYGON&#039;, 2);&lt;br /&gt;
-- Kantonsgeometrien von Gemeindegeometrien zusammenfassen mit Geomunion, gruppiert nach Kantons-ID &amp;quot;kt&amp;quot;&lt;br /&gt;
-- ST_Multi() erzwingt Multigeometrien wegen dem constraint, es sollten 26 Datensätze resultieren&lt;br /&gt;
INSERT INTO kantone &lt;br /&gt;
  SELECT kt, &#039;&#039;, ST_Multi(Geomunion(the_geom)) FROM gemeinden GROUP BY kt;&lt;br /&gt;
-- neuen räumlichen index erstellen bei der tabelle seen&lt;br /&gt;
CREATE INDEX kantone_the_geom_gist&lt;br /&gt;
 ON kantone USING gist (the_geom GIST_GEOMETRY_OPS);&lt;br /&gt;
-- danach manuell die Kantonsnamen ergänzen, etwa in QGIS, Jump-GIS oder GDV Spatial Commander&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resultat: neue Tabelle mit 26 Kantonsgeometrien und räumlicher Index&lt;br /&gt;
&lt;br /&gt;
=== Point in Polygon mit ST_Within() ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Es soll abgefragt werden wieviele Städte/Orte in jedem Kanton liegen&lt;br /&gt;
-- Voraussetzung ist, dass Sie Ihren Kantonen Namen vergeben haben&lt;br /&gt;
&lt;br /&gt;
SELECT k.name, COUNT(*) FROM&lt;br /&gt;
  staedte_schweiz s, kantone k&lt;br /&gt;
  WHERE ST_WITHIN(s.the_geom,k.the_geom) GROUP BY k.name ORDER BY k.name;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resultat: Aargau, 146; Appenzell Ausserrhoden, 20; Appenzell Innerrhoden, 8; ...&lt;br /&gt;
&lt;br /&gt;
=== Buffer() und Point in Polygon ST_Within() Abfrage ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Selektierte Orte die innerhalb eines Buffers von 10 km des Flusses Emme liegen&lt;br /&gt;
&lt;br /&gt;
SELECT &amp;quot;FULL_NAME&amp;quot; FROM staedte_schweiz&lt;br /&gt;
  WHERE ST_Within(&lt;br /&gt;
   the_geom,&lt;br /&gt;
   (SELECT ST_Buffer(the_geom,10000) FROM fluesse WHERE name = &#039;Emme&#039;))&lt;br /&gt;
  ORDER BY &amp;quot;FULL_NAME&amp;quot; ASC;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resultat: 144 Orte; Aedermannsdor, Aelgäu, Aeschau, Affoltern, ...&lt;br /&gt;
&lt;br /&gt;
=== Anzahl Teilgeometrien ermitteln ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Selektiere alle Kantone die aus 4 oder mehr Teilgeometrien bestehen&lt;br /&gt;
&lt;br /&gt;
SELECT name, ST_NumGeometries(the_geom) AS NrGeom FROM kantone&lt;br /&gt;
  WHERE ST_NumGeometries(the_geom) &amp;gt;= 4 ORDER BY name ASC;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resultat: Bern, 4; Fribourg, 4; Solothurn, 4&lt;br /&gt;
&lt;br /&gt;
=== Räumliche Beziehungen mit ST_RELATE ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Es sollen sämtliche Seen abgefragt werden die im Kanton Bern sind oder an den Kanton Bern grenzen&lt;br /&gt;
-- Voraussetzung ist, dass Sie Ihren Kantonen Namen vergeben haben&lt;br /&gt;
&lt;br /&gt;
-- Selektiere alle Seen die innerhalb des Kantons Bern liegen&lt;br /&gt;
SELECT s.name, &#039;innerhalb&#039; AS Relation FROM seen s, kantone k&lt;br /&gt;
  WHERE k.name = &#039;Bern&#039; AND ST_RELATE(s.the_geom,k.the_geom) = &#039;FF2F1F212&#039; ORDER BY k.name;&lt;br /&gt;
&lt;br /&gt;
-- Selektiere alle Seen die an der Grenze zum Kanton Bern liegen&lt;br /&gt;
SELECT s.name, &#039;angrenzend&#039; AS Relation FROM seen s, kantone k&lt;br /&gt;
  WHERE k.name = &#039;Bern&#039; AND ST_RELATE(s.the_geom,k.the_geom) = &#039;FF2F11212&#039; ORDER BY k.name;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resultat 1: Brienzersee, innerhalb; Thunersee, innerhalb&lt;br /&gt;
&lt;br /&gt;
Resultat 2: Lac de Neuchâtel, angrenzend; Bielersee / Lac de Bienne, angrenzend&lt;br /&gt;
&lt;br /&gt;
=== Suche Punkt entlang einer Linie mit Linear Referencing ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- Selektiere die Gemeinde die sich 20 km vom Ursprung der Emme befindet&lt;br /&gt;
-- Achtung, die Emme wurde offenbar von der Mündung bis zum Ursprung digitalisiert&lt;br /&gt;
-- die Geometrie muss daher umgedreht werden&lt;br /&gt;
-- ST_GeometryN() wird verwendet, da es sich um einen Multilinestring handelt&lt;br /&gt;
&lt;br /&gt;
SELECT name FROM gemeinden WHERE&lt;br /&gt;
 ST_WITHIN((SELECT ST_line_interpolate_point(ST_Reverse(ST_GeometryN(the_geom,1)),(20000 / ST_LENGTH(the_geom)))&lt;br /&gt;
  FROM fluesse WHERE name = &#039;Emme&#039;),the_geom);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resultat: Eggiwil&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
Bücher:&lt;br /&gt;
* PostgreSQL, Korry Douglas &amp;amp; Susan Douglas, Sams Verlag, 2003, ISBN 10 0735712573.&lt;br /&gt;
* PostgreSQL ge-packt, Peter Eisentraut, mitp Verlag, 2005, ISBN 3-8266-1493-3.&lt;br /&gt;
&lt;br /&gt;
Dokumentation und Tutorien siehe [[PostgreSQL]] und [[PostGIS]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Weiterbildung]]&lt;/div&gt;</summary>
		<author><name>Roger</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11079</id>
		<title>Sem PostGIS Roger</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Sem_PostGIS_Roger&amp;diff=11079"/>
		<updated>2007-10-21T14:01:38Z</updated>

		<summary type="html">&lt;p&gt;Roger: Die Seite wurde neu angelegt: Test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Test&lt;/div&gt;</summary>
		<author><name>Roger</name></author>
	</entry>
</feed>