<?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=Neumann</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=Neumann"/>
	<link rel="alternate" type="text/html" href="https://giswiki.ch/Spezial:Beitr%C3%A4ge/Neumann"/>
	<updated>2026-04-28T17:23:01Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_QGIS_Einf%C3%BChrung_I&amp;diff=67886</id>
		<title>Kurs QGIS Einführung I</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Kurs_QGIS_Einf%C3%BChrung_I&amp;diff=67886"/>
		<updated>2020-08-25T09:11:30Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:QGIS_Logo_3_breit_503x150.png|150px||right|]]&lt;br /&gt;
2-Tageskurs &#039;&#039;&#039;&amp;quot;QGIS-Einführung&#039;&#039;&#039; (Kürzel &amp;quot;Kurs_QGIS&amp;quot;) - Das benutzerfreundliche, quelloffene Geographische Informationssystem (GIS) für Desktop (und Server). Es gibt auch einen Kurs [[Kurs_QGIS_FF|QGIS für Fortgeschrittene]].&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: Di./Mi. 1./2. September 2020 =&amp;gt; &#039;&#039;&#039;[[Media:Kurs_QGIS_HSR_2-Tage_Anmeldung.pdf|Zur Anmeldung... (.pdf)]]&#039;&#039;&#039;&lt;br /&gt;
  Es hat noch Plätze frei. Anmeldeschluss ist eine Woche vor Kursbeginn um 12:00 Uhr. &lt;br /&gt;
&lt;br /&gt;
Siehe auch den [[Kurs QGIS Fortgeschrittene]] und [[Kurs PostGIS]].&lt;br /&gt;
&lt;br /&gt;
== Organisation ==&lt;br /&gt;
&lt;br /&gt;
* Dauer: 2 Tage, 9:00 bis ca. 16:30 Uhr plus Selbststudium. Raum 1.251.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen): CHF 1&#039;100.- (regulärer Tarif)&lt;br /&gt;
* Auf Wunsch ist es exklusiv möglich, durch zusätzliches Selbststudium (und bei erfolgreichem Bestehen) eine UNIGIS-ECTS-Bescheinigung zu erhalten.&lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS (z.B. Begriff &amp;quot;Layer&amp;quot;) und in Datenbanken (z.B. Begriff &amp;quot;Datentyp&amp;quot; mit Integer/Zahl/Datum/Zeichenkette/Boolean).&lt;br /&gt;
* Referenten: Dr. Andreas Neumann (GIS Fachstelle Kanton Solothurn) und Prof. Stefan Keller (HSR).&lt;br /&gt;
* Schulungsart: Der Anteil Uebungen und Theorie ist in etwa ausgeglichen. Die Teilnehmenden nehmen einen eigenen Laptop mit (bei Bedarf werden auch Laptops zur Verfügung gestellt). Es ist Sache der Teilnehmenden, ihr Laptop/Notebook gegen Beschädigung und Diebstahl zu (ver)sichern.&lt;br /&gt;
* Durchführung: Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Der Kurs findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden. &lt;br /&gt;
&lt;br /&gt;
Selbststudium: Gemäss individueller Absprache (und vorausgesetzt der Anerkennung durch UNIGIS/Z_GIS Uni Salzburg); vgl. [[Kurs QGIS Selbststudium]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss des Kurses kennen die Teilnehmer die wichtigsten Funktionen von Open Source GIS QGIS Desktop, können Daten importieren, analysieren, eine Karte mit professionellem Layout erstellen sowie Objekte mit Attributen und Vektorgeometrien erfassen.&lt;br /&gt;
&lt;br /&gt;
== Programm 1. Tag ==&lt;br /&gt;
&lt;br /&gt;
Aus dem Programm:&lt;br /&gt;
* Einführung&lt;br /&gt;
* QGIS Installation (falls nötig)&lt;br /&gt;
* Über das QGIS-Projekt&lt;br /&gt;
* Vorstellung des Graphischen User Interfaces&lt;br /&gt;
* Datenquellen, Datenformate und Webdienste&lt;br /&gt;
* QGIS Expressions (Ausdrücke)&lt;br /&gt;
* Selektieren und Filtern &lt;br /&gt;
* Kartensymbolisierung&lt;br /&gt;
&lt;br /&gt;
== Programm 2. Tag ==&lt;br /&gt;
&lt;br /&gt;
* Attributtabelle, Feldrechner, virtuelle Felder&lt;br /&gt;
* Annotations, Map-Tips und Actions&lt;br /&gt;
* Editieren von Vektor-Geometrien und Attributen&lt;br /&gt;
* Formular-Konfigurationen, Joins und Relationen&lt;br /&gt;
* Einfache Vektor- und Raster-Analysen&lt;br /&gt;
* Kartenlayout mit dem Print Composer&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen: Gängiger Rechner mit gängigen Betriebssystemen (Windows, Linux, Mac), funktionierendem WLAN-Anschluss und Admin-Rechten (zur Installation von Software). &lt;br /&gt;
&lt;br /&gt;
Installation QGIS für Windows, macOS oder Linux von Website https://download.qgis.org :&lt;br /&gt;
* Wir verwenden die aktuell neuste Version 3.14.x. &lt;br /&gt;
* Bei Problemen verwende man aktuelle LTR-Version 3.10.x. &lt;br /&gt;
* Es müssen keine Plugins vorinstalliert werden. &lt;br /&gt;
&lt;br /&gt;
Falls die Installation nicht klappt, helfen wir gerne bei Kursbeginn – oder aber Sie verwenden einen Support-Kanal auf [[QGIS#Support]].&lt;br /&gt;
&lt;br /&gt;
== Unterlagen ==&lt;br /&gt;
&lt;br /&gt;
Kurs-Unterlagen:&lt;br /&gt;
* Programm und Teilnehmerliste&lt;br /&gt;
* Diverse Foliensätze zu oben gelisteten Themen&lt;br /&gt;
&lt;br /&gt;
Das QGIS Manual (&amp;quot;QGIS User guide&amp;quot;) wird nicht gedruckt abgegeben, da es mittlerweile mehrere hundert Seiten lang ist und vermutlich nur selten in gedruckter Form genutzt wird. Es ist jedoch im Web hier http://www.qgis.org/en/docs/index.html erreichbar - auch als PDF und auf Deutsch (wenn auch die Übersetzungen immer hinter der englischen Original herhinken).&lt;br /&gt;
&lt;br /&gt;
Weitere Unterlagen: [[QGIS-Materialien]]&lt;br /&gt;
&lt;br /&gt;
== Tipps und Tricks ==&lt;br /&gt;
&lt;br /&gt;
* [[QGIS - Tipps und Tricks]]&lt;br /&gt;
* Etherpad https://etherpad.wikimedia.org/p/QGIS&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Weiterbildung]], [[Kategorie:QGIS]]&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_QGIS_Einf%C3%BChrung_I&amp;diff=63824</id>
		<title>Kurs QGIS Einführung I</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Kurs_QGIS_Einf%C3%BChrung_I&amp;diff=63824"/>
		<updated>2018-01-09T16:46:38Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;2-Tageskurs &#039;&#039;&#039;&amp;quot;QGIS-Einführung&#039;&#039;&#039; (I+II) - Das benutzerfreundliche, quelloffene Geographische Informationssystem (GIS) für Desktop (und Server).&lt;br /&gt;
[[File:QGIS_Logo_3_breit_503x150.png|150px||right|]]&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: Di./Mi. 16.-17. Januar 2018 =&amp;gt; [[Media:Kurs QGIS 2-Tage Anmeldung Jan18.pdf|Zur Anmeldung... (.pdf)]]&lt;br /&gt;
&lt;br /&gt;
Siehe auch: Etherpad https://etherpad.coredump.ch/p/qgis-kurs-2017-1, [[Kurs QGIS Fortgeschrittene]], [[Kurs PostGIS]]&lt;br /&gt;
&lt;br /&gt;
== Organisation ==&lt;br /&gt;
&lt;br /&gt;
* Dauer: 2 Tage, 9:00 bis ca. 16:30 Uhr plus Selbststudium. Raum 1.267.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):&lt;br /&gt;
** Regulärer Teilnehmender: CHF 1&#039;100.-&lt;br /&gt;
** Studenten (inkl. UNIGIS/BIZGEO) (bis 25 Jahre) oder Mitarbeiter/in einer Hochschule: CHF 500.-&lt;br /&gt;
* Auf Wunsch ist es exklusiv möglich, durch zusätzliches Selbststudium (und bei erfolgreichem Bestehen) eine UNIGIS-ECTS-Bescheinigung zu erhalten.&lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS und in Datenbanken.&lt;br /&gt;
* Referenten: Dr. Andreas Neumann (GIS Fachstelle Kanton Zug) und Prof. Stefan Keller (HSR).&lt;br /&gt;
* Schulungsart: Der Anteil Uebungen und Theorie ist in etwa ausgeglichen. Die Teilnehmenden nehmen einen eigenen Laptop mit (bei Bedarf werden auch Laptops zur Verfügung gestellt). Es ist Sache der Teilnehmenden, ihr Laptop/Notebook gegen Beschädigung und Diebstahl zu (ver)sichern.&lt;br /&gt;
* Durchführung: Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Der Kurs findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden. &lt;br /&gt;
&lt;br /&gt;
Selbststudium: Gemäss individueller Absprache (und vorausgesetzt der Anerkennung durch UNIGIS/Z_GIS Uni Salzburg); vgl. [[Kurs QGIS Selbststudium]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss des Kurses kennen die Teilnehmer die wichtigsten Funktionen von Open Source GIS QGIS Desktop, können Daten importieren, analysieren, eine Karte mit professionellem Layout erstellen sowie Objekte mit Attributen und Vektorgeometrien erfassen.&lt;br /&gt;
&lt;br /&gt;
== Programm 1. Tag ==&lt;br /&gt;
&lt;br /&gt;
Aus dem Programm:&lt;br /&gt;
* Einführung&lt;br /&gt;
* QGIS Installation (falls Hilfe nötig)&lt;br /&gt;
* Über das QGIS-Projekt&lt;br /&gt;
* Vorstellung des Graphischen User Interfaces&lt;br /&gt;
* Datenquellen, Datenformate und Webdienste&lt;br /&gt;
* Selektieren und Filtern mit QGIS Expressions (Ausdrücke)&lt;br /&gt;
* Kartensymbolisierung&lt;br /&gt;
* Kartenlayout mit dem Print Composer&lt;br /&gt;
* Attributtabelle, Feldrechner, virtuelle Felder&lt;br /&gt;
&lt;br /&gt;
== Programm 2. Tag ==&lt;br /&gt;
&lt;br /&gt;
* Map-Tips und Actions&lt;br /&gt;
* DB-Manager&lt;br /&gt;
* Editieren von Vektor-Geometrien und Attributen&lt;br /&gt;
* Formular-Konfigurationen, Joins und Relationen&lt;br /&gt;
* Atlas-Seriendruck&lt;br /&gt;
* Einfache Vektor- und Raster-Analysen&lt;br /&gt;
&lt;br /&gt;
== Unterlagen ==&lt;br /&gt;
&lt;br /&gt;
Kurs-Unterlagen:&lt;br /&gt;
* Programm / Teilnehmerliste&lt;br /&gt;
* Text &amp;quot;Datenformate und Webdienste&amp;quot; (AN)&lt;br /&gt;
* Diverse Foliensätze zu oben gelisteten Themen&lt;br /&gt;
&lt;br /&gt;
Das QGIS Manual (&amp;quot;QGIS User guide&amp;quot;) wird nicht gedruckt abgegeben, das es mittlerweile mehrere hunder Seiten lang ist und vermutlich nur selten in gedruckter Form genutzt wird. Es ist jedoch im Web hier http://www.qgis.org/en/docs/index.html erreichbar - auch als PDF und auf Deutsch (wenn auch die Übersetzungen immer hinter der englischen Original herhinken).&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen: Gängiger Rechner mit gängigen Betriebssystemen (Windows, Linux, Mac), funktionierendem WLAN-Anschluss und Admin-Rechten (zur Installation von Software). &lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; Zu Installieren: Das aktuellste &#039;&#039;&#039;QGIS Version 2.99.x&#039;&#039;&#039; (Beta-Version von QGIS 3.0). Windows-User installieren die neueste Version des [https://qgis.org/downloads/weekly/?C=M;O=D QGIS Weekly].&lt;br /&gt;
&lt;br /&gt;
QGIS kennt zwei Arten von Erweiterungen (Plugins), &lt;br /&gt;
* C++-Plugins (fest einkompiliert, aber ggf. noch nicht aktiviert) und &lt;br /&gt;
* Python-Plugins (können nachträglich nachgeladen werden). Python-Plugins brauchen bei der Installation Netzverbindung. &lt;br /&gt;
&lt;br /&gt;
== Tipps und Tricks ==&lt;br /&gt;
&lt;br /&gt;
* [[QGIS - Tipps und Tricks]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Weiterbildung]], [[Kategorie:QGIS]]&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_QGIS_Einf%C3%BChrung_I&amp;diff=63823</id>
		<title>Kurs QGIS Einführung I</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Kurs_QGIS_Einf%C3%BChrung_I&amp;diff=63823"/>
		<updated>2018-01-09T16:35:11Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;2-Tageskurs &#039;&#039;&#039;&amp;quot;QGIS-Einführung&#039;&#039;&#039; (I+II) - Das benutzerfreundliche, quelloffene Geographische Informationssystem (GIS) für Desktop (und Server).&lt;br /&gt;
[[File:QGIS_Logo_3_breit_503x150.png|150px||right|]]&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: Di./Mi. 16.-17. Januar 2018 =&amp;gt; [[Media:Kurs QGIS 2-Tage Anmeldung Jan18.pdf|Zur Anmeldung... (.pdf)]]&lt;br /&gt;
&lt;br /&gt;
Siehe auch: Etherpad https://etherpad.coredump.ch/p/qgis-kurs-2017-1, [[Kurs QGIS Fortgeschrittene]], [[Kurs PostGIS]]&lt;br /&gt;
&lt;br /&gt;
== Organisation ==&lt;br /&gt;
&lt;br /&gt;
* Dauer: 2 Tage, 9:00 bis ca. 16:30 Uhr plus Selbststudium. Raum 1.267.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):&lt;br /&gt;
** Regulärer Teilnehmender: CHF 1&#039;100.-&lt;br /&gt;
** Studenten (inkl. UNIGIS/BIZGEO) (bis 25 Jahre) oder Mitarbeiter/in einer Hochschule: CHF 500.-&lt;br /&gt;
* Auf Wunsch ist es exklusiv möglich, durch zusätzliches Selbststudium (und bei erfolgreichem Bestehen) eine UNIGIS-ECTS-Bescheinigung zu erhalten.&lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS und in Datenbanken.&lt;br /&gt;
* Referenten: Dr. Andreas Neumann (GIS Fachstelle Kanton Zug) und Prof. Stefan Keller (HSR).&lt;br /&gt;
* Schulungsart: Der Anteil Uebungen und Theorie ist in etwa ausgeglichen. Die Teilnehmenden nehmen einen eigenen Laptop mit (bei Bedarf werden auch Laptops zur Verfügung gestellt). Es ist Sache der Teilnehmenden, ihr Laptop/Notebook gegen Beschädigung und Diebstahl zu (ver)sichern.&lt;br /&gt;
* Durchführung: Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Der Kurs findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden. &lt;br /&gt;
&lt;br /&gt;
Selbststudium: Gemäss individueller Absprache (und vorausgesetzt der Anerkennung durch UNIGIS/Z_GIS Uni Salzburg); vgl. [[Kurs QGIS Selbststudium]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss des Kurses kennen die Teilnehmer die wichtigsten Funktionen von Open Source GIS QGIS Desktop, können Daten importieren, analysieren, eine Karte mit professionellem Layout erstellen sowie Objekte mit Attributen und Vektorgeometrien erfassen.&lt;br /&gt;
&lt;br /&gt;
== Programm 1. Tag ==&lt;br /&gt;
&lt;br /&gt;
Aus dem Programm:&lt;br /&gt;
* Einführung&lt;br /&gt;
* QGIS Installation&lt;br /&gt;
* Vorstellung des Graphischen User Interfaces&lt;br /&gt;
* Datenquellen&lt;br /&gt;
* Kartensymbolisierung&lt;br /&gt;
* Kartenlayout mit dem Print Composer&lt;br /&gt;
* Editieren von Vektor-Geometrien und Texten&lt;br /&gt;
* Arbeiten mit Attributen&lt;br /&gt;
* Einfache Vektor- und Raster-Analysen&lt;br /&gt;
* Datenexport&lt;br /&gt;
* Ausblick: Python-Plugins, QGIS Server, Fachapplikationen&lt;br /&gt;
&lt;br /&gt;
Programm 2. Tag siehe [[Kurs QGIS Einführung II]].&lt;br /&gt;
&lt;br /&gt;
== Unterlagen ==&lt;br /&gt;
&lt;br /&gt;
Kurs-Unterlagen:&lt;br /&gt;
* Programm / Teilnehmerliste&lt;br /&gt;
* Text &amp;quot;Datenformate und Webdienste&amp;quot; (AN)&lt;br /&gt;
* Folien &amp;quot;Symbolisierung und Layout&amp;quot;&lt;br /&gt;
* Text &amp;quot;Geodaten, Formate und Dienste&amp;quot; (Geomatikausbildung)&lt;br /&gt;
* Datenbeschreibung und Datennutzungsvereinbarung (zur Unterschrift) (AN)&lt;br /&gt;
&lt;br /&gt;
Das QGIS Manual (&amp;quot;QGIS User guide&amp;quot;) wird nicht gedruckt abgegeben. Es ist im Web hier http://www.qgis.org/en/docs/index.html erreichbar - auch als PDF und auf Deutsch (wenn auch die Übersetzungen immer hinter der englischen Original herhinken).&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen: Gängiger Rechner mit gängigen Betriebssystemen (Windows, Linux, Mac), funktionierendem WLAN-Anschluss und Admin-Rechten (zur Installation von Software). &lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; Zu Installieren: Das aktuellste &#039;&#039;&#039;QGIS Version 2.99.x&#039;&#039;&#039; (Beta-Version von QGIS 3.0). Windows-User installieren die neueste Version des [[QGIS Weekly https://qgis.org/downloads/weekly/?C=M;O=D]].&lt;br /&gt;
&lt;br /&gt;
QGIS kennt zwei Arten von Erweiterungen (Plugins), &lt;br /&gt;
* C++-Plugins (fest einkompiliert, aber ggf. noch nicht aktiviert) und &lt;br /&gt;
* Python-Plugins (können nachträglich nachgeladen werden). Python-Plugins brauchen bei der Installation Netzverbindung. &lt;br /&gt;
&lt;br /&gt;
== Tipps und Tricks ==&lt;br /&gt;
&lt;br /&gt;
* [[QGIS - Tipps und Tricks]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Weiterbildung]], [[Kategorie:QGIS]]&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_QGIS_Einf%C3%BChrung_I&amp;diff=60759</id>
		<title>Kurs QGIS Einführung I</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Kurs_QGIS_Einf%C3%BChrung_I&amp;diff=60759"/>
		<updated>2017-10-16T07:20:28Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;2-Tageskurs &#039;&#039;&#039;&amp;quot;QGIS-Einführung&#039;&#039;&#039; (I+II) - Das benutzerfreundliche, quelloffene Geographische Informationssystem (GIS) für Desktop (und Server).&lt;br /&gt;
[[File:QGIS_Logo_3_breit_503x150.png|150px||right|]]&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: Di./Mi. 16.-17. Januar 2018 =&amp;gt; [[Media:Kurs QGIS 2-Tage Anmeldung Jan18.pdf|Zur Anmeldung... (.pdf)]]&lt;br /&gt;
&lt;br /&gt;
Siehe auch: Etherpad https://etherpad.coredump.ch/p/qgis-kurs-2017-1, [[Kurs QGIS Fortgeschrittene]], [[Kurs PostGIS]]&lt;br /&gt;
&lt;br /&gt;
== Organisation ==&lt;br /&gt;
&lt;br /&gt;
* Dauer: 2 Tage, 9:00 bis ca. 16:30 Uhr plus Selbststudium. Raum 1.267.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):&lt;br /&gt;
** Regulärer Teilnehmender: CHF 1&#039;100.-&lt;br /&gt;
** Studenten (inkl. UNIGIS/BIZGEO) oder Mitarbeiter/in einer Hochschule (bis 25 Jahre): CHF 500.-&lt;br /&gt;
* Auf Wunsch ist es exklusiv möglich, durch zusätzliches Selbststudium (und bei erfolgreichem Bestehen) eine UNIGIS-ECTS-Bescheinigung zu erhalten.&lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS und in Datenbanken.&lt;br /&gt;
* Referenten: Dr. Andreas Neumann (GIS Fachstelle Kanton Zug) und Prof. Stefan Keller (HSR).&lt;br /&gt;
* Schulungsart: Der Anteil Uebungen und Theorie ist in etwa ausgeglichen. Die Teilnehmenden nehmen einen eigenen Laptop mit (bei Bedarf werden auch Laptops zur Verfügung gestellt). Es ist Sache der Teilnehmenden, ihr Laptop/Notebook gegen Beschädigung und Diebstahl zu (ver)sichern.&lt;br /&gt;
* Durchführung: Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Der Kurs findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden. &lt;br /&gt;
&lt;br /&gt;
Selbststudium: Gemäss individueller Absprache (und vorausgesetzt der Anerkennung durch UNIGIS/Z_GIS Uni Salzburg); vgl. [[Kurs QGIS Selbststudium]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss des Kurses kennen die Teilnehmer die wichtigsten Funktionen von Open Source GIS QGIS Desktop, können Daten importieren, analysieren, eine Karte mit professionellem Layout erstellen sowie Objekte mit Attributen und Vektorgeometrien erfassen.&lt;br /&gt;
&lt;br /&gt;
== Programm 1. Tag ==&lt;br /&gt;
&lt;br /&gt;
Aus dem Programm:&lt;br /&gt;
* Einführung&lt;br /&gt;
* QGIS Installation&lt;br /&gt;
* Vorstellung des Graphischen User Interfaces&lt;br /&gt;
* Datenquellen&lt;br /&gt;
* Kartensymbolisierung&lt;br /&gt;
* Kartenlayout mit dem Print Composer&lt;br /&gt;
* Editieren von Vektor-Geometrien und Texten&lt;br /&gt;
* Arbeiten mit Attributen&lt;br /&gt;
* Einfache Vektor- und Raster-Analysen&lt;br /&gt;
* Datenexport&lt;br /&gt;
* Ausblick: Python-Plugins, QGIS Server, Fachapplikationen&lt;br /&gt;
&lt;br /&gt;
Programm 2. Tag siehe [[Kurs QGIS Einführung II]].&lt;br /&gt;
&lt;br /&gt;
== Unterlagen ==&lt;br /&gt;
&lt;br /&gt;
Kurs-Unterlagen:&lt;br /&gt;
* Programm / Teilnehmerliste&lt;br /&gt;
* Text &amp;quot;Datenformate und Webdienste&amp;quot; (AN)&lt;br /&gt;
* Folien &amp;quot;Symbolisierung und Layout&amp;quot;&lt;br /&gt;
* Text &amp;quot;Geodaten, Formate und Dienste&amp;quot; (Geomatikausbildung)&lt;br /&gt;
* Datenbeschreibung und Datennutzungsvereinbarung (zur Unterschrift) (AN)&lt;br /&gt;
&lt;br /&gt;
Das QGIS Manual (&amp;quot;QGIS User guide&amp;quot;) wird nicht gedruckt abgegeben. Es ist im Web hier http://www.qgis.org/en/docs/index.html erreichbar - auch als PDF und auf Deutsch (wenn auch die Übersetzungen immer hinter der englischen Original herhinken).&lt;br /&gt;
&lt;br /&gt;
== Uebungen ==&lt;br /&gt;
&lt;br /&gt;
Übung Meine erste Kartensymbolisierung mit Drucklayout (Grundwasserkarte):&lt;br /&gt;
* Voraussetzung: Vektordaten (siehe &#039;hydr_*&#039; unten) und Stil (&#039;Projekte\grundwasserkarte\qml\hydrologie_grundwasser_leiter.qml&#039;) geladen.&lt;br /&gt;
* Lösung: siehe QGIS-Projektdatei.&lt;br /&gt;
&lt;br /&gt;
Übung Datenquellen:&lt;br /&gt;
* Voraussetzung: QGIS gestartet. Leerer QGIS-Desktop (sonst: &amp;quot;Neues Projekt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Übung Analysen mit Vektor (Puffer, Verschnitt, Punkt-im-Polygon, &amp;quot;Räumliche Abfrage&amp;quot;:&lt;br /&gt;
* Voraussetzung: QGIS gestartet. Leerer QGIS-Desktop (sonst: &amp;quot;Neues Projekt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Übung Analysen mit Raster (Geländeanalye und Zonenstatistik/Rasterrechner):&lt;br /&gt;
* Voraussetzung: QGIS gestartet. Leerer QGIS-Desktop (sonst: &amp;quot;Neues Projekt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Kurs-Übungsdaten Uster (Lizenz beachten!):&lt;br /&gt;
* Vektordaten - Datei &#039;uster_2013-01-15.sqlite (inkl. Sachdaten)&lt;br /&gt;
** av_gebaeude (Polygon) - Gebäude der amtlichen Vermessung&lt;br /&gt;
** rp_nutzungszonen (Polygon) - Nutzungszonen / Raumplanung&lt;br /&gt;
** hydr_bedeckung_grundwasser_leiter (Multi Polygon) &lt;br /&gt;
** hydr_fliessrichtung_hochwasserstand (Line String)&lt;br /&gt;
** hydr_fliessrichtung_mittelwasserstand (Line String)&lt;br /&gt;
** hydr_grundwasser_isohypse_hochwasserstand (Multi Line String)&lt;br /&gt;
** hydr_grundwasser_isohypse_mittelwasserstand (Multi Line String)&lt;br /&gt;
** hydr_grundwasser_leiter (Multi Polygon)&lt;br /&gt;
** stat_einwohner_anonym (Point) - Einwohner-Daten mit Geschlecht/Alter, randomisiert und anonym&lt;br /&gt;
* Rasterdaten: &lt;br /&gt;
** uep_2009_gray.tif - Übersichtsplan (8 lines/mm) (180 MB)&lt;br /&gt;
** orthofoto_jpeg_2008.tif - Orthofoto (1&#039;700 MB)&lt;br /&gt;
** dtm_av.tif - Digitales Geländemodell-Daten der amtlichen Vermessung (DTM-AV) (40 MB)&lt;br /&gt;
* Grafikdaten:&lt;br /&gt;
** Ordner symbols - Symbole (Icons) im [[SVG]]-Format  &lt;br /&gt;
** Ordner patterns - Patterns im [[SVG]]-Format&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen: Gängiger Rechner mit gängigen Betriebssystemen (Windows, Linux, Mac), funktionierendem WLAN-Anschluss und Admin-Rechten (zur Installation von Software). &lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; Zu Installieren: Das aktuellste &#039;&#039;&#039;QGIS Version 2.18.x&#039;&#039;&#039; (bei Problemen: QGIS LTR Version 2.14.6). Windows-User nehmen v.a. den [http://qgis.org/en/site/ Standalone-Installer] oder aber die [http://qgis.org/downloads/weekly/ OSGeo4W-Netzwerkinstallation (64 bit)] (siehe ggf. auch [[QGIS]]).&lt;br /&gt;
&lt;br /&gt;
QGIS kennt zwei Arten von Erweiterungen (Plugins), &lt;br /&gt;
* C++-Plugins (fest einkompiliert, aber ggf. noch nicht aktiviert) und &lt;br /&gt;
* Python-Plugins (können nachträglich nachgeladen werden). Python-Plugins brauchen bei der Installation Netzverbindung. &lt;br /&gt;
&lt;br /&gt;
Konfiguration QGIS (siehe auch [[Quantum_GIS#QGIS_Plugins]]): &lt;br /&gt;
* &#039;&#039;&#039;Für Einführungs-Kurse sind keine besonderen Plugins nötig. Sie können ggf. nachgeladen werden. &amp;lt;&amp;lt;&#039;&#039;&#039;&lt;br /&gt;
* Empfohlene Python-Plugins (vgl. Menu &amp;quot;Erweiterungen &amp;gt; Python-Erweiterung herunterladen...&amp;quot; wählen; dann dort auf den Tab &amp;quot;Repositorien&amp;quot; wechseln und auf &amp;quot;Erweiterungsrepositorien Dritter hinzufügen&amp;quot; klicken):&lt;br /&gt;
** &#039;&#039;CAD Tools Plugin&#039;&#039; (Python Plugin)&lt;br /&gt;
** &#039;&#039;Digitizing Tools&#039;&#039; (Python Plugin)&lt;br /&gt;
** &#039;&#039;Numerical Vertex Edit&#039;&#039; (Python Plugin)&lt;br /&gt;
** &#039;&#039;NumericalDigitize&#039;&#039; (Python Plugin)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Das sind die wesentlichen Erweiterungen für den Kurs - natürlich gibt es noch mehr!&lt;br /&gt;
&lt;br /&gt;
== Tipps und Tricks ==&lt;br /&gt;
&lt;br /&gt;
* [[QGIS - Tipps und Tricks]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Weiterbildung]], [[Kategorie:QGIS]]&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_QGIS_Fortgeschrittene&amp;diff=60758</id>
		<title>Kurs QGIS Fortgeschrittene</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Kurs_QGIS_Fortgeschrittene&amp;diff=60758"/>
		<updated>2017-10-16T07:18:52Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;2-Tageskurs &#039;&#039;&#039;&amp;quot;QGIS Fortgeschrittene&#039;&#039;&#039; - Das benutzerfreundliche, quelloffene Geographische Informationssystem (GIS) für Desktop (und Server).&lt;br /&gt;
[[File:QGIS_Logo_3_breit_503x150.png|150px||right|]]&lt;br /&gt;
&lt;br /&gt;
  Nächste/erste Durchführung: Do./Fr. 25.-26. Jan. 2018 =&amp;gt; [[Media:Kurs QGIS FF 2-Tage Anmeldung Jan18.pdf|Zur Anmeldung... (.pdf)]]&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[Kurs QGIS]], [[Kurs PostGIS]] und allgemein [[GIS-Kurse]]&lt;br /&gt;
&lt;br /&gt;
== Organisation ==&lt;br /&gt;
&lt;br /&gt;
* Dauer: 2 Tage, 9:00 bis ca. 16:30 Uhr plus Selbststudium. Raum 1.267.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):&lt;br /&gt;
** Regulärer Teilnehmender: CHF 1&#039;100.-&lt;br /&gt;
** Studenten (inkl. UNIGIS/BIZGEO) oder Mitarbeiter/in einer Hochschule (bis 25 Jahre): CHF 500.-&lt;br /&gt;
* Auf Wunsch ist es exklusiv möglich, durch zusätzliches Selbststudium (und bei erfolgreichem Bestehen) eine UNIGIS-ECTS-Bescheinigung zu erhalten.&lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS und in Datenbanken.&lt;br /&gt;
* Referenten: Prof. Stefan Keller (HSR).&lt;br /&gt;
* Schulungsart: Der Anteil Uebungen und Theorie ist in etwa ausgeglichen. Die Teilnehmenden nehmen einen eigenen Laptop mit (bei Bedarf werden auch Laptops zur Verfügung gestellt). Es ist Sache der Teilnehmenden, ihr Laptop/Notebook gegen Beschädigung und Diebstahl zu (ver)sichern.&lt;br /&gt;
* Durchführung: Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Der Kurs findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden. &lt;br /&gt;
&lt;br /&gt;
Selbststudium: Gemäss individueller Absprache (und vorausgesetzt der Anerkennung durch UNIGIS/Z_GIS Uni Salzburg); vgl. [[Kurs QGIS Selbststudium]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Dieser neue 2-Tageskurs geht davon voraus, das die Teilnehmenden sich schon mit QGIS Desktop etwas auskennen (vgl. Kurs QGIS-Einführung). Darauf aufbauend werden folgende Themen vertieft oder ergänzt: Effizientes Editieren, Arbeiten mit der PostGIS-Datenbank (u.a. Views), Datenaustausch mit GeoPackage, Prüfen und Exportieren nach Interlis, Arbeiten mit dem Processing Framework, Expression Functions, Konfigurieren, Umgang mit ausgewählten Basiskarten (u.a. QuickMapServices, Vector Tiles), Drucken, etc.. Es sind keine Programmierkenntnisse notwendig. Am Ende des Kurses ist Zeit reserviert, um individuelle Fragen zu beantworten.&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=GeoCSV&amp;diff=55142</id>
		<title>GeoCSV</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=GeoCSV&amp;diff=55142"/>
		<updated>2015-05-15T09:00:25Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Specification of the tabular file format [[CSV]] (Comma Separated Values) with a geometry extension! &lt;br /&gt;
&lt;br /&gt;
  &amp;gt;&amp;gt; DRAFT Version 0.1 &amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
Date of last modification: &#039;&#039;see bottom&#039;&#039;, Author: [[Stefan]]. &#039;&#039;(For notes and discussion see [[Diskussion:GeoCSV]])&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
GeoCSV is an extension of the &amp;quot;human readable&amp;quot;, tabular file format CSV (Comma Separated Values). &lt;br /&gt;
CSV is a well-known but spartanic format with possible information loss. &lt;br /&gt;
Think about using more capable and elegant formats for desktop file exchange like e.g. [[GeoPackage]]. &lt;br /&gt;
&lt;br /&gt;
One the other hand it some potential since it&#039;s quite more capable as e.g. a [[Shapefile]]. See also [[TheShapefileChallenge]].&lt;br /&gt;
&lt;br /&gt;
This format has following drawbacks:&lt;br /&gt;
* no layer name - except for the file name (which can be changed easily by others...).&lt;br /&gt;
* auxiliary cluttered accompanying files, like .csvt and .prj&lt;br /&gt;
&lt;br /&gt;
=== GeoCSV file format specification ===&lt;br /&gt;
&lt;br /&gt;
GeoCSV is based on the CSV specification (see following section) and comes with two variants: Options easting/northing and Options WKT.&lt;br /&gt;
&lt;br /&gt;
Option &amp;quot;easting/northing&amp;quot; (longitude/latitude, lon/lat, long/lat, x/y like in mathematics):&lt;br /&gt;
* Geometry Point type as two neighboring columns of type Float: one containing the easting coordinate, and one containing northing coordinate separated by the common delimiter.&lt;br /&gt;
* Example for the two easting/northing columnts &amp;quot;8.8249;47.2274&amp;quot;.&lt;br /&gt;
* This option supports only Points.&lt;br /&gt;
&lt;br /&gt;
Option WKT:&lt;br /&gt;
* It&#039; one single column of type String containing a constructor, like for example: &amp;quot;POINT (8.8249 47.2274)&amp;quot;.&lt;br /&gt;
* This option supports Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon and even GeometryCollection and ARCs!&lt;br /&gt;
* [[WKT]] (&amp;quot;Well Known Text&amp;quot;) is originally defined by the Open Geospatial Consortium (OGC) and described in their Simple Feature Access specification (also ISO SQL/MM). See e.g. http://en.wikipedia.org/wiki/Well-known_text&lt;br /&gt;
&lt;br /&gt;
Common restrictions:&lt;br /&gt;
* Coordinate system is WGS84 (EPSG:4326) by default. See section PRJ.&lt;br /&gt;
* There are more than one geometry columns allowed per sheet. Systems which support only one, take the first geometry columns from left.&lt;br /&gt;
* All geometry values within one table are in the same coordinate reference system ([[CRS]]).&lt;br /&gt;
&lt;br /&gt;
Optional auxiliary files (with same base filename but different file extensions) are:&lt;br /&gt;
* CSVT: &lt;br /&gt;
** Contains field type information (schema).&lt;br /&gt;
** File extension is &#039;&#039;&#039;.CSVT (or .csvt)&#039;&#039;&#039;. &lt;br /&gt;
** See section below.&lt;br /&gt;
* PRJ (&#039;&#039;to be clarified!&#039;&#039;):&lt;br /&gt;
** Contains Coordinate Reference System ([[CRS]]) information. &lt;br /&gt;
** File extension is &#039;&#039;&#039;.PRJ (or .prj)&#039;&#039;&#039;. &lt;br /&gt;
** Default (and strongly recommended) is EPSG:4326 (WGS84, lon/lat).&lt;br /&gt;
* CSVZ:&lt;br /&gt;
** File extension is &#039;&#039;&#039;.CSVZ (or .csvz)&#039;&#039;&#039;&lt;br /&gt;
** The CSV file can be accompanied with following files, having the same file base name: .csvt and .prj. &lt;br /&gt;
** Archiving and compressing in format .ZIP (or .zip) is also possible and encouraged.&lt;br /&gt;
&lt;br /&gt;
=== CSV file format specification ===&lt;br /&gt;
&lt;br /&gt;
File:&lt;br /&gt;
* Contains the actual (geo-)data.&lt;br /&gt;
* File extension is &#039;&#039;&#039;.CSV (or .csv)&#039;&#039;&#039;.&lt;br /&gt;
* Character Encoding and character set is UTF-8 (default) &#039;&#039;or ANSI/Windows-1252(?)&#039;&#039;.&lt;br /&gt;
* End-of-lines are: CR, LF or CR/LF.&lt;br /&gt;
* Line End-of-lines (in String) fields) are disallowed (use e.g. HTML is needed).&lt;br /&gt;
&lt;br /&gt;
Rows:&lt;br /&gt;
* First row contains attribute names separated by a =&amp;gt; delimiter.&lt;br /&gt;
* Following rows are contains values separated by a =&amp;gt; delimiter.&lt;br /&gt;
* All rows have same number of attributes.&lt;br /&gt;
&lt;br /&gt;
Fields/columns:&lt;br /&gt;
* Field delimiter is semicolon (;) by default. &lt;br /&gt;
* Strings are enclosed by parantheses, to allow delimiters inside (e.g. &amp;quot;string&amp;quot;).&lt;br /&gt;
* Data types (if supported from source or target system): See CSVT file format specification.&lt;br /&gt;
* Calculations are possible in fields of type String (like &amp;quot;=A1+B1&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
See also [[CSV]].&lt;br /&gt;
&lt;br /&gt;
=== CSVT file format specification ===&lt;br /&gt;
&lt;br /&gt;
CSVT means &amp;quot;CSV Types&amp;quot; and it describes the field types and eventually their properties.&lt;br /&gt;
&lt;br /&gt;
Field/column types, case insensitive, eventually in quotes (&#039;&amp;quot;&#039;) - if supported from source or target system: &lt;br /&gt;
* Integer or &amp;quot;Integer&amp;quot;&lt;br /&gt;
* Real or &amp;quot;Real&amp;quot;&lt;br /&gt;
* String or &amp;quot;String&amp;quot;&lt;br /&gt;
* Date (&amp;quot;YYYY-MM-DD&amp;quot;), Time (&amp;quot;HH:MM:SS+nn&amp;quot;) and DateTime (&amp;quot;YYYY-MM-DD HH:MM:SS+nn&amp;quot;), whereas nn is the timezone&lt;br /&gt;
* Easting and Northing - as two separate, neighboring colums  &lt;br /&gt;
* WKT&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Types can be in quotes (&#039;&amp;quot;&#039;) or not, e.g. &amp;lt;&amp;lt;&amp;quot;Integer&amp;quot;;&amp;quot;Real&amp;quot;&amp;gt;&amp;gt;.&lt;br /&gt;
* Types can have precision in parantheses, e.g. (&#039;Real(20.2)&#039;)). &lt;br /&gt;
* Geometry types or either Easting and Northing or WKT bit not both. Each can occur several times in a table.&lt;br /&gt;
* Geometry types are a kind of subtype: Easting and Norting values are stored as float, option WKT is stored in one column of type String.&lt;br /&gt;
* See also http://www.gdal.org/drv_csv.html section with .csvt extension.&lt;br /&gt;
* (There could be more properties like &amp;quot;mantatory/optional&amp;quot; or, for strings field length, and for numbers precision etc.)&lt;br /&gt;
&lt;br /&gt;
=== PRJ file format specification ===&lt;br /&gt;
&lt;br /&gt;
* Default is EPSG:4326 (WGS84, lon/lat).&lt;br /&gt;
* Contains a named CRS, i.e. the EPSG number &amp;quot;EPSG:nnnn&amp;quot; in OGR WKT (as needed e.g. for [[OGR]], see [http://epsg.io EPGS.io]).&lt;br /&gt;
* &#039;&#039;(Same spec. like http://tools.ietf.org/html/draft-butler-geojson-04 )&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
* Desktop&lt;br /&gt;
** LibreOffice / OpenOffice &lt;br /&gt;
** Excel&lt;br /&gt;
** [[OGR]]&lt;br /&gt;
** [[QGIS]]&lt;br /&gt;
* Online:&lt;br /&gt;
** [[GeoConverter]]&lt;br /&gt;
** CSV-to-[[GeoJSON]]: [http://www.convertcsv.com/csv-to-geojson.htm convertcsv.com], [http://mapbox.github.io/csv2geojson/ csv2geojson]&lt;br /&gt;
** GeoJSON-to-CSV: [http://www.convertcsv.com/geojson-to-csv.htm convertcsv.com]&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
CSV type file &#039;example1.csvt&#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Integer;String;Real;String;Easting;Northing &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSV file &#039;example1.csv - Option easting/northing :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
id;name;amount;city;lon;lat&lt;br /&gt;
1;Kevin;2.1;Rapperswil;8.8249;47.2274&lt;br /&gt;
2;Eva;2.2;Zürich;8.5435;47.3768&lt;br /&gt;
3;&amp;quot;Jimmy;Muff&amp;quot;;2.3;;7.4397;46.9487&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSV file &#039;example1.csv - Option WKT:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
id;name;amount;city;WKT&lt;br /&gt;
1;Kevin;2.1;Rapperswil;POINT(8.8249 47.2274)&lt;br /&gt;
2;Eva;2.2;Zürich;POINT(8.5435 47.3768)&lt;br /&gt;
3;&amp;quot;Jimmy;Muff&amp;quot;;2.3;;POINT(7.4397 46.9487)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...can be shown as following table:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! id&lt;br /&gt;
! name&lt;br /&gt;
! amount&lt;br /&gt;
! remarks&lt;br /&gt;
! geom&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Kevin&lt;br /&gt;
| 2.1&lt;br /&gt;
| Rapperswil&lt;br /&gt;
| POINT(8.8249 47.2274)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Eva&lt;br /&gt;
| 2.2&lt;br /&gt;
| Zürich&lt;br /&gt;
| POINT(8.5435 47.3768)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Jimmy;Muff&lt;br /&gt;
| 2.3&lt;br /&gt;
| &lt;br /&gt;
| POINT(7.4397 46.9487)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note the remarks string in row 2 and the empty string in row 3.&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_QGIS_Einf%C3%BChrung_I&amp;diff=49464</id>
		<title>Kurs QGIS Einführung I</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Kurs_QGIS_Einf%C3%BChrung_I&amp;diff=49464"/>
		<updated>2014-01-14T08:50:32Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tageskurs &#039;&#039;&#039;&amp;quot;QGIS Einführung I&amp;quot;&#039;&#039;&#039; (Kürzel Sem_QGIS) - Das benutzerfreundliche, quelloffene Geographische Informationssystem (GIS) für Desktop (und Server).&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: Mi. 15. Januar 2014 &amp;gt;&amp;gt; [[Media:Kurs_QGIS_I_2014-01-15_Anmeldung.pdf‎|Zur Anmeldung (.PDF)]]&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
* [[Kurs QGIS Einführung II]] und allgemein [[GIS-Kurse]]&lt;br /&gt;
* [[QGIS]], [[Spatialite]], [[PostGIS]]&lt;br /&gt;
&lt;br /&gt;
== Organisation ==&lt;br /&gt;
&lt;br /&gt;
* Dauer: 1 Tag, 9:00 bis ca. 16:30 Uhr plus Selbststudium.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):&lt;br /&gt;
** Kategorie 1. Regulärer Teilnehmender CHF 700.--&lt;br /&gt;
** Kategorie 2. UNIGIS-Studierende, BIZ-GEO-Lernende, Hochschul-Mitarbeiter CHF 550.--&lt;br /&gt;
** Kategorie 3. Studierende an einer Hochschule bis 25 J., HSR-Mitarbeiter CHF 350.--. &lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS und in Datenbanken.&lt;br /&gt;
* Referenten: Dr. Andreas Neumann (GIS Stadt Uster) und Prof. Stefan Keller (HSR).&lt;br /&gt;
* Schulungsart: Die Teilnehmenden nehmen einen eigenen Laptop mit (wir haben auch Laptops mit vorinstallierter Software). Der Anteil Uebungen und Theorie ist in etwa ausgeglichen.&lt;br /&gt;
* Durchführung: Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Das Seminar findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden. &lt;br /&gt;
&lt;br /&gt;
Selbststudium: Gemäss individueller Absprache (und vorausgesetzt der Anerkennung durch UNIGIS/Z_GIS Uni Salzburg).&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss des Kurses kennen die Teilnehmer die wichtigsten Funktionen von Open Source GIS &#039;Quantum GIS&#039; (QGIS) Desktop, können Daten importieren, analysieren, eine Karte mit professionellem Layout erstellen sowie Objekte mit Attributen und Vektorgeometrien erfassen.&lt;br /&gt;
&lt;br /&gt;
== Programm ==&lt;br /&gt;
&lt;br /&gt;
Aus dem Programm:&lt;br /&gt;
* Einführung&lt;br /&gt;
* QGIS Installation&lt;br /&gt;
* Vorstellung des Graphischen User Interfaces&lt;br /&gt;
* Datenquellen&lt;br /&gt;
* Kartensymbolisierung&lt;br /&gt;
* Kartenlayout mit dem Print Composer&lt;br /&gt;
* Editieren von Vektor-Geometrien und Texte&lt;br /&gt;
* Arbeiten mit Attributen&lt;br /&gt;
* Einfache Vektor- und Raster-Analysen&lt;br /&gt;
* Datenexport&lt;br /&gt;
* Ausblick: Python-Plugins, QGIS Server, Fachapplikationen&lt;br /&gt;
&lt;br /&gt;
== Unterlagen ==&lt;br /&gt;
&lt;br /&gt;
Kurs-Unterlagen:&lt;br /&gt;
* Programm / Teilnehmerliste&lt;br /&gt;
* QGIS Manual 2.0 (englisch): http://www.qgis.org&lt;br /&gt;
* Text &amp;quot;Datenformate und Webdienste&amp;quot; (AN)&lt;br /&gt;
* Folien &amp;quot;Symbolisierung und Layout&amp;quot;&lt;br /&gt;
* Text &amp;quot;Geodaten, Formate und Dienste&amp;quot; (Geomatikausbildung)&lt;br /&gt;
* Datenbeschreibung und Datennutzungsvereinbarung (zur Unterschrift) (AN)&lt;br /&gt;
&lt;br /&gt;
== Uebungen ==&lt;br /&gt;
&lt;br /&gt;
Übung Meine erste Kartensymbolisierung mit Drucklayout (Grundwasserkarte):&lt;br /&gt;
* Voraussetzung: Vektordaten (siehe &#039;hydr_*&#039; unten) und Stil (&#039;Projekte\grundwasserkarte\qml\hydrologie_grundwasser_leiter.qml&#039;) geladen.&lt;br /&gt;
* Lösung: siehe QGIS-Projektdatei.&lt;br /&gt;
&lt;br /&gt;
Übung Datenquellen:&lt;br /&gt;
* Voraussetzung: QGIS gestartet. Leerer QGIS-Desktop (sonst: &amp;quot;Neues Projekt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Übung Analysen mit Vektor (Puffer, Verschnitt, Punkt-im-Polygon, &amp;quot;Räumliche Abfrage&amp;quot;:&lt;br /&gt;
* Voraussetzung: QGIS gestartet. Leerer QGIS-Desktop (sonst: &amp;quot;Neues Projekt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Übung Analysen mit Raster (Geländeanalye und Zonenstatistik/Rasterrechner):&lt;br /&gt;
* Voraussetzung: QGIS gestartet. Leerer QGIS-Desktop (sonst: &amp;quot;Neues Projekt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Kurs-Übungsdaten Uster (Lizenz beachten!):&lt;br /&gt;
* Vektordaten - Datei &#039;uster_2013-01-15.sqlite (inkl. Sachdaten)&lt;br /&gt;
** av_gebaeude (Polygon) - Gebäude der amtlichen Vermessung&lt;br /&gt;
** rp_nutzungszonen (Polygon) - Nutzungszonen / Raumplanung&lt;br /&gt;
** hydr_bedeckung_grundwasser_leiter (Multi Polygon) &lt;br /&gt;
** hydr_fliessrichtung_hochwasserstand (Line String)&lt;br /&gt;
** hydr_fliessrichtung_mittelwasserstand (Line String)&lt;br /&gt;
** hydr_grundwasser_isohypse_hochwasserstand (Multi Line String)&lt;br /&gt;
** hydr_grundwasser_isohypse_mittelwasserstand (Multi Line String)&lt;br /&gt;
** hydr_grundwasser_leiter (Multi Polygon)&lt;br /&gt;
** stat_einwohner_anonym (Point) - Einwohner-Daten mit Geschlecht/Alter, randomisiert und anonym&lt;br /&gt;
* Rasterdaten: &lt;br /&gt;
** uep_2009_gray.tif - Übersichtsplan (8 lines/mm) (180 MB)&lt;br /&gt;
** orthofoto_jpeg_2008.tif - Orthofoto (1&#039;700 MB)&lt;br /&gt;
** dtm_av.tif - Digitales Geländemodell-Daten der amtlichen Vermessung (DTM-AV) (40 MB)&lt;br /&gt;
* Grafikdaten:&lt;br /&gt;
** Ordner symbols - Symbole (Icons) im [[SVG]]-Format  &lt;br /&gt;
** Ordner patterns - Patterns im [[SVG]]-Format&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen: Gängiger Rechner mit gängigen Betriebssystemen (Windows, Linux, Mac), funktionierendem WLAN-Anschluss und Admin-Rechten (zur Installation von Software). &lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; Zu Installieren: Das aktuellste &#039;&#039;&#039;QGIS 2&#039;&#039;&#039;. Windows-User nehmen den [http://hub.qgis.org/projects/quantum-gis/wiki/DownloadDe#Standalone-Installer-f%C3%BCr-neue-Benutzer-empfohlen Standalone-Installer] oder http://qgis.org/downloads/weekly/ (siehe ggf. auch [[QGIS]]).&lt;br /&gt;
&lt;br /&gt;
QGIS kennt zwei Arten von Erweiterungen (Plugins), &lt;br /&gt;
* C++-Plugins (fest einkompiliert, aber ggf. noch nicht aktiviert) und &lt;br /&gt;
* Python-Plugins (können nachträglich nachgeladen werden). Python-Plugins brauchen bei der Installation eine funtkionierende Netzverbindung. &lt;br /&gt;
&lt;br /&gt;
Konfiguration QGIS (siehe auch [[Quantum_GIS#QGIS_Plugins]]): &lt;br /&gt;
* Empfohlene Python-Plugins (vgl. Menu &amp;quot;Erweiterungen &amp;gt; Python-Erweiterung herunterladen...&amp;quot; wählen; dann dort auf den Tab &amp;quot;Repositorien&amp;quot; wechseln und auf &amp;quot;Erweiterungsrepositorien Dritter hinzufügen&amp;quot; klicken):&lt;br /&gt;
** &#039;&#039;CAD Tools Plugin&#039;&#039; (Python Plugin)&lt;br /&gt;
** &#039;&#039;Digitizing Tools&#039;&#039; (Python Plugin)&lt;br /&gt;
** &#039;&#039;Numerical Vertex Edit&#039;&#039; (Python Plugin)&lt;br /&gt;
** &#039;&#039;NumericalDigitize&#039;&#039; (Python Plugin)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Das sind die wesentlichen Erweiterungen für den Kurs - natürlich gibt es noch mehr!&lt;br /&gt;
&lt;br /&gt;
== Tipps und Tricks ==&lt;br /&gt;
&lt;br /&gt;
* [[QGIS - Tipps und Tricks]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Weiterbildung]], [[Kategorie:QGIS]]&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_QGIS_Einf%C3%BChrung&amp;diff=45125</id>
		<title>Kurs QGIS Einführung</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Kurs_QGIS_Einf%C3%BChrung&amp;diff=45125"/>
		<updated>2013-01-15T10:06:48Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt-Seminar &#039;&#039;&#039;&amp;quot;Einführung in QGIS&amp;quot; Desktop&#039;&#039;&#039; (Kürzel Sem_QGIS) - Das benutzerfreundliche, quelloffene Geographische Informationssystem (GIS) für Desktop (und Server).&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: Fr. 18. Januar 2013. &amp;gt;&amp;gt; [[Media:QGIS_Kurs_2013-01-18_Anmeldung.pdf|Zur Anmeldung (.PDF)]]&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
* [[Kurs PostGIS Einführung]] und allgemein [[GIS-Kurse]]&lt;br /&gt;
* [[QGIS]], [[Spatialite]], [[PostGIS]]&lt;br /&gt;
&lt;br /&gt;
== Organisation ==&lt;br /&gt;
&lt;br /&gt;
* Dauer: 1 Tag, 9:00 bis ca. 16:30 Uhr plus Selbststudium.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):&lt;br /&gt;
** Kategorie 1. Regulärer Teilnehmender CHF 750.--&lt;br /&gt;
** Kategorie 2. UNIGIS-Studierende, Hochschul-Mitarbeiter CHF 550.--&lt;br /&gt;
** Kategorie 3. Studierende an einer Hochschule bis 25 J., HSR-Mitarbeiter CHF 400.--. &lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS und in Datenbanken.&lt;br /&gt;
* Referenten: Dr. Andreas Neumann (GIS Stadt Uster) und Prof. Stefan Keller (HSR).&lt;br /&gt;
* Schulungsart: Die Teilnehmenden nehmen einen eigenen Laptop mit (wir haben auch Laptops mit vorinstallierter Software). Der Anteil Uebungen und Theorie ist in etwa ausgeglichen.&lt;br /&gt;
* Durchführung: Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Das Seminar findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden. &lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Der Kurs richtet sich an Einsteiger in die Verwaltung von Geodaten mit dem Open Source GIS &#039;Quantum GIS&#039; (QGIS) Desktop. Damit lassen sich Geodaten importieren, bereinigen, es können Karten mit professionellem Layout erstellt werden und es können verschiedene Datenquellen analysiert werden.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss des Kurses kennen die Teilnehmer die wichtigsten Funktionen von QGIS, können Daten importieren, eine Karte erstellen und Objekte mit Attributen und Vektorgeometrien erfassen.&lt;br /&gt;
&lt;br /&gt;
== Programm ==&lt;br /&gt;
&lt;br /&gt;
Aus dem Programm:&lt;br /&gt;
* Einführung&lt;br /&gt;
* QGIS Installation&lt;br /&gt;
* Vorstellung des Graphischen User Interfaces&lt;br /&gt;
* Datenquellen&lt;br /&gt;
* Kartensymbolisierung&lt;br /&gt;
* Kartenlayout mit dem Print Composer&lt;br /&gt;
* Editieren von Vektor-Geometrien und Texte&lt;br /&gt;
* Arbeiten mit Attributen&lt;br /&gt;
* Einfache Vektor- und Raster-Analysen&lt;br /&gt;
* Datenexport&lt;br /&gt;
* Ausblick: Python-Plugins, QGIS Server, Datenmodelle (Interlis)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Zu Installieren: &#039;&#039;&#039;QGIS 1.8&#039;&#039;&#039; (Windows-User nehmen den [http://hub.qgis.org/projects/quantum-gis/wiki/DownloadDe#Standalone-Installer-f%C3%BCr-neue-Benutzer-empfohlen Standalone-Installer]); siehe auch [[QGIS]])&lt;br /&gt;
&lt;br /&gt;
Konfiguration QGIS (siehe auch [[Quantum_GIS#QGIS_Plugins]])&lt;br /&gt;
* Empfohlene C++-Plugins:&lt;br /&gt;
** Räumliche Abfrage&lt;br /&gt;
** Rasteranalyse&lt;br /&gt;
* Empfohlene Python-Plugins (Tipp: Menu &amp;quot;Erweiterungen&amp;quot; &amp;quot;Python-Erweiterung herunterladen&amp;quot; wählen und dort auf den Tab &amp;quot;Repositorien&amp;quot; wechseln und auf &amp;quot;Erweiterungsrepositorien Dritter hinzufügen&amp;quot; klicken):&lt;br /&gt;
** DB Manager&lt;br /&gt;
** CAD Tools plugin&lt;br /&gt;
** Numerical Vertex Edit&lt;br /&gt;
** NumericalDigitize&lt;br /&gt;
** ZonalStats&lt;br /&gt;
 &lt;br /&gt;
Das sind die Wesentlichen für den Kurs - natürlich gibt es noch mehr!&lt;br /&gt;
&lt;br /&gt;
== Unterlagen/Übungen ==&lt;br /&gt;
&lt;br /&gt;
Unterlagen:&lt;br /&gt;
# Programm / Teilnehmerliste&lt;br /&gt;
# QGIS Manual 1.8 (englisch)&lt;br /&gt;
# Folien &amp;quot;Symbolisierung und Layout&amp;quot;&lt;br /&gt;
# Text &amp;quot;Geodaten, Formate und Dienste&amp;quot; (Geomatikausbildung)&lt;br /&gt;
# Datenbeschreibung (und Datennutzungsvereinbarung)&lt;br /&gt;
&lt;br /&gt;
Daten (uster.sqlite):&lt;br /&gt;
* AV-Daten (av): 11 Tabellen =&amp;gt; av_bodenbedeckung; av_bodenbedeckung_name; av_bodenbedeckung_proj; av_einzelobjekte_flaechen; av_einzelobjekte_linien; av_flurnamen; av_flurnamen_positionen; av_gebaeude; av_gebaeudeadressen; av_gebaeudeadressen_hausnummerpositionen; av_gebaeudenummern; av_gemeindegrenze_linie; av_liegenschaften; av_liegenschaften_beschriftung; av_strassenbeschriftung; av_strassenstuecke.&lt;br /&gt;
* Hydrologie (hydr): 11 Tabellen =&amp;gt; hydr_bedeckung_grundwasserleiter; hydr_gewaesserachsen; hydr_gewaesserschutzbereich_ao; hydr_gewaesserschutzbereich_au; hydr_grundwasser_isohypse_hochwassser; hydr_grundwasser_isohypse_mittelwasserstand; hydr_grundwasser_leiter; hydr_grundwasser_pegel; hydr_grundwasser_quellstrang; hydr_grundwasserfassungen; hydr_grundwasserschutzzonen; hydr_quellstrang&lt;br /&gt;
* Nutzungszonen (rp): 5 Tabellen =&amp;gt; rp_abstandslinien; rp_nutzungszonen; rp_nutzungszonen_laermempfindlichkeit; rp_nutzungszonen_zonengrenzen_beschriftung; rp_sondernutzungen_bz_mit_gppflicht; rp_sondernutzungen_perimeter_mit_rechtskr_gp&lt;br /&gt;
&lt;br /&gt;
== Tipps und Tricks ==&lt;br /&gt;
&lt;br /&gt;
* [[QGIS - Tipps und Tricks]]&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
&lt;br /&gt;
Gemäss individueller Absprache (und vorausgesetzt der Anerkennung durch UNIGIS/Z_GIS Uni Salzburg).&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
* [http://www.qgis.org/de/dokumentation/handbuecher.html Der offizielle Guide zu QGIS 1.7 (de/en)]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Weiterbildung]], [[Kategorie:QGIS]]&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_QGIS_Einf%C3%BChrung&amp;diff=45124</id>
		<title>Kurs QGIS Einführung</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Kurs_QGIS_Einf%C3%BChrung&amp;diff=45124"/>
		<updated>2013-01-15T10:06:17Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt-Seminar &#039;&#039;&#039;&amp;quot;Einführung in QGIS&amp;quot; Desktop&#039;&#039;&#039; (Kürzel Sem_QGIS) - Das benutzerfreundliche, quelloffene Geographische Informationssystem (GIS) für Desktop (und Server).&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: Fr. 18. Januar 2013. &amp;gt;&amp;gt; [[Media:QGIS_Kurs_2013-01-18_Anmeldung.pdf|Zur Anmeldung (.PDF)]]&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
* [[Kurs PostGIS Einführung]] und allgemein [[GIS-Kurse]]&lt;br /&gt;
* [[QGIS]], [[Spatialite]], [[PostGIS]]&lt;br /&gt;
&lt;br /&gt;
== Organisation ==&lt;br /&gt;
&lt;br /&gt;
* Dauer: 1 Tag, 9:00 bis ca. 16:30 Uhr plus Selbststudium.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):&lt;br /&gt;
** Kategorie 1. Regulärer Teilnehmender CHF 750.--&lt;br /&gt;
** Kategorie 2. UNIGIS-Studierende, Hochschul-Mitarbeiter CHF 550.--&lt;br /&gt;
** Kategorie 3. Studierende an einer Hochschule bis 25 J., HSR-Mitarbeiter CHF 400.--. &lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS und in Datenbanken.&lt;br /&gt;
* Referenten: Dr. Andreas Neumann (GIS Stadt Uster) und Prof. Stefan Keller (HSR).&lt;br /&gt;
* Schulungsart: Die Teilnehmenden nehmen einen eigenen Laptop mit (wir haben auch Laptops mit vorinstallierter Software). Der Anteil Uebungen und Theorie ist in etwa ausgeglichen.&lt;br /&gt;
* Durchführung: Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Das Seminar findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden. &lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Der Kurs richtet sich an Einsteiger in die Verwaltung von Geodaten mit dem Open Source GIS &#039;Quantum GIS&#039; (QGIS) Desktop. Damit lassen sich Geodaten importieren, bereinigen, es können Karten mit professionellem Layout erstellt werden und es können verschiedene Datenquellen analysiert werden.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss des Kurses kennen die Teilnehmer die wichtigsten Funktionen von QGIS, können Daten importieren, eine Karte erstellen und Objekte mit Attributen und Vektorgeometrien erfassen.&lt;br /&gt;
&lt;br /&gt;
== Programm ==&lt;br /&gt;
&lt;br /&gt;
Aus dem Programm:&lt;br /&gt;
* Einführung&lt;br /&gt;
* QGIS Installation&lt;br /&gt;
* Vorstellung des Graphischen User Interfaces&lt;br /&gt;
* Datenquellen&lt;br /&gt;
* Kartensymbolisierung&lt;br /&gt;
* Kartenlayout mit dem Print Composer&lt;br /&gt;
* Editieren von Vektor-Geometrien und Texte&lt;br /&gt;
* Arbeiten mit Attributen&lt;br /&gt;
* Einfache Vektor- und Raster-Analysen&lt;br /&gt;
* Datenexport&lt;br /&gt;
* Ausblick: Python-Plugins, QGIS Server, Datenmodelle (Interlis)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Zu Installieren: &#039;&#039;&#039;QGIS 1.8&#039;&#039;&#039; (Windows-User nehmen den [http://hub.qgis.org/projects/quantum-gis/wiki/DownloadDe#Standalone-Installer-f%C3%BCr-neue-Benutzer-empfohlen Standalone-Installer]); siehe auch [[QGIS]])&lt;br /&gt;
&lt;br /&gt;
Konfiguration QGIS (siehe auch [[Quantum_GIS#QGIS_Plugins]])&lt;br /&gt;
* Empfohlene C++-Plugins:&lt;br /&gt;
** Räumliche Abfrage&lt;br /&gt;
** Rasteranalyse&lt;br /&gt;
* Empfohlene Python-Plugins (Tipp: Menu &amp;quot;Erweiterungen&amp;quot; &amp;quot;Python-Erweiterung herunterladen&amp;quot; wählen und dort auf den Tab &amp;quot;Repositorien&amp;quot; wechseln und auf &amp;quot;Erweiterungsrepositorien Dritter hinzufügen&amp;quot; klicken):&lt;br /&gt;
** CAD Tools plugin&lt;br /&gt;
** Numerical Vertex Edit&lt;br /&gt;
** NumericalDigitize&lt;br /&gt;
** ZonalStats&lt;br /&gt;
 &lt;br /&gt;
Das sind die Wesentlichen für den Kurs - natürlich gibt es noch mehr!&lt;br /&gt;
&lt;br /&gt;
== Unterlagen/Übungen ==&lt;br /&gt;
&lt;br /&gt;
Unterlagen:&lt;br /&gt;
# Programm / Teilnehmerliste&lt;br /&gt;
# QGIS Manual 1.8 (englisch)&lt;br /&gt;
# Folien &amp;quot;Symbolisierung und Layout&amp;quot;&lt;br /&gt;
# Text &amp;quot;Geodaten, Formate und Dienste&amp;quot; (Geomatikausbildung)&lt;br /&gt;
# Datenbeschreibung (und Datennutzungsvereinbarung)&lt;br /&gt;
&lt;br /&gt;
Daten (uster.sqlite):&lt;br /&gt;
* AV-Daten (av): 11 Tabellen =&amp;gt; av_bodenbedeckung; av_bodenbedeckung_name; av_bodenbedeckung_proj; av_einzelobjekte_flaechen; av_einzelobjekte_linien; av_flurnamen; av_flurnamen_positionen; av_gebaeude; av_gebaeudeadressen; av_gebaeudeadressen_hausnummerpositionen; av_gebaeudenummern; av_gemeindegrenze_linie; av_liegenschaften; av_liegenschaften_beschriftung; av_strassenbeschriftung; av_strassenstuecke.&lt;br /&gt;
* Hydrologie (hydr): 11 Tabellen =&amp;gt; hydr_bedeckung_grundwasserleiter; hydr_gewaesserachsen; hydr_gewaesserschutzbereich_ao; hydr_gewaesserschutzbereich_au; hydr_grundwasser_isohypse_hochwassser; hydr_grundwasser_isohypse_mittelwasserstand; hydr_grundwasser_leiter; hydr_grundwasser_pegel; hydr_grundwasser_quellstrang; hydr_grundwasserfassungen; hydr_grundwasserschutzzonen; hydr_quellstrang&lt;br /&gt;
* Nutzungszonen (rp): 5 Tabellen =&amp;gt; rp_abstandslinien; rp_nutzungszonen; rp_nutzungszonen_laermempfindlichkeit; rp_nutzungszonen_zonengrenzen_beschriftung; rp_sondernutzungen_bz_mit_gppflicht; rp_sondernutzungen_perimeter_mit_rechtskr_gp&lt;br /&gt;
&lt;br /&gt;
== Tipps und Tricks ==&lt;br /&gt;
&lt;br /&gt;
* [[QGIS - Tipps und Tricks]]&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
&lt;br /&gt;
Gemäss individueller Absprache (und vorausgesetzt der Anerkennung durch UNIGIS/Z_GIS Uni Salzburg).&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
* [http://www.qgis.org/de/dokumentation/handbuecher.html Der offizielle Guide zu QGIS 1.7 (de/en)]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Weiterbildung]], [[Kategorie:QGIS]]&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostgreSQL_f%C3%BCr_Fortgeschrittene&amp;diff=37860</id>
		<title>Kurs PostgreSQL für Fortgeschrittene</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Kurs_PostgreSQL_f%C3%BCr_Fortgeschrittene&amp;diff=37860"/>
		<updated>2012-01-20T16:13:17Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt-Seminar &#039;&#039;&#039;&amp;quot;PostgreSQL für Fortgeschrittene&amp;quot;&#039;&#039;&#039; (Kürzel Sem_PostgreSQL_FF).&lt;br /&gt;
&lt;br /&gt;
  Informationen und Anmeldung in Vorbereitung (alter Link: [http://gis.hsr.ch/index.php?option=com_content&amp;amp;task=view&amp;amp;id=334&amp;amp;Itemid=151 Informationen und Anmeldung... (alt)])&lt;br /&gt;
&lt;br /&gt;
Nicht zu verwechseln mit [[GISpunkt-Seminar PostGIS für Fortgeschrittene]]. Siehe auch:&lt;br /&gt;
* [[GIS-Seminare]]&lt;br /&gt;
* [[PostGIS]] und [[PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Allgemeines ==&lt;br /&gt;
&lt;br /&gt;
Konzept: &lt;br /&gt;
* Theorie und vorbereitete Übungen am Morgen.&lt;br /&gt;
* Erfahrungsberichte und Workshop-Diskussionen am Nachmittag.&lt;br /&gt;
* Erfahrene Referenten aus Hochschule und Praxis.&lt;br /&gt;
&lt;br /&gt;
Zielpublikum:&lt;br /&gt;
* Informatiker und IT-Leute mit Kenntnissen einer relationalen Datenbank, namentlich MySQL, Oracle oder SQL Server.&lt;br /&gt;
&lt;br /&gt;
Organisatorisches: &lt;br /&gt;
* 9:00 bis ca. 17:00 Uhr, HSR.&lt;br /&gt;
&lt;br /&gt;
== Programminhalt == &lt;br /&gt;
Themen-Überblick (noch in Vorbereitung):&lt;br /&gt;
&lt;br /&gt;
* Begrüssung und Überblick &lt;br /&gt;
* Einführung PostgreSQL: Geschichte, Architektur, Spezifisches&lt;br /&gt;
* Tabellenvererbung&lt;br /&gt;
* Views und Rules &lt;br /&gt;
* Trigger und Rules&lt;br /&gt;
* Stored Procedures (pl/pgsql)&lt;br /&gt;
* User Defined Functions in Java, Python, Perl&lt;br /&gt;
* Spezielle Datentypen und Erweiterungen: u.a. Full Text Search, hstore, Geodatentypen (PostGIS)&lt;br /&gt;
* Administrierung: Backup und Statistik&lt;br /&gt;
* (Mittag)&lt;br /&gt;
* Optimierung/Performance Tuning: &lt;br /&gt;
** Indexe&lt;br /&gt;
** &amp;quot;Explaining Explain&amp;quot;&lt;br /&gt;
** Konfiguration&lt;br /&gt;
** Clustering&lt;br /&gt;
* Historisierung&lt;br /&gt;
* Hardware-Fragen (RAID, SSD, etc.)&lt;br /&gt;
* Tipps &amp;amp; Tricks: Nützliche SQL-Scripts&lt;br /&gt;
* Workshop-Diskussionen zu Themen der Teilnehmer, z.B. &lt;br /&gt;
** Migration von Oracle zu PostgreSQL, Migration von MySQL zu PostgreSQL&lt;br /&gt;
** ...&lt;br /&gt;
* Ausblick&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
* [[PostgreSQL]] 9.1 (Release September 2011!).&lt;br /&gt;
&lt;br /&gt;
== Unterlagen/Übungen ==&lt;br /&gt;
&lt;br /&gt;
* Werden abgegeben.&lt;br /&gt;
&lt;br /&gt;
== Daten ==&lt;br /&gt;
&lt;br /&gt;
* Werden abgegeben.&lt;br /&gt;
&lt;br /&gt;
== Tipps und Tricks ==&lt;br /&gt;
&lt;br /&gt;
* Siehe [[PostgreSQL - Tipps und Tricks]]&lt;br /&gt;
* Übrigens: Bei Interesse organisieren wir gerne wieder einen PostgreSQL-Höck in Zürich. Siehe [[PostgreSQL-PostGIS-Höck]].&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
&lt;br /&gt;
* tbd.&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
* tbd.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Weiterbildung]] [[Kategorie:PostgreSQL]]&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_f%C3%BCr_Fortgeschrittene&amp;diff=37858</id>
		<title>Kurs PostGIS für Fortgeschrittene</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Kurs_PostGIS_f%C3%BCr_Fortgeschrittene&amp;diff=37858"/>
		<updated>2012-01-20T10:55:02Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Daten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt-Seminar &#039;&#039;&#039;&amp;quot;PostGIS für Fortgeschrittene&amp;quot;&#039;&#039;&#039; (Kürzel Sem_PostGIS_FF).&lt;br /&gt;
&lt;br /&gt;
Fr. 20. Januar 2012. Nicht zu verwechseln mit [[GISpunkt-Seminar PostgreSQL für Fortgeschrittene]]. Siehe auch:&lt;br /&gt;
* [[GISpunkt-Seminar PostGIS]], [[GIS-Seminare]]&lt;br /&gt;
* [[PostGIS]] und [[PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
== Programm ==&lt;br /&gt;
&lt;br /&gt;
* 09:00-09:15 Einführung, Vorstellung. (sep. Gruppe (A) diejenigen, die installieren, (B) die schon installiert haben) (SK)&lt;br /&gt;
* 09:15-10:00 (A): Installation inkl. Daten einlesen. (SK mit Helfer)&lt;br /&gt;
* 09:15-10:00 (B): Teil 1. Daten einlesen, Teil 2. Selbsttest lösen (Repetition aus SQL und Kurs &amp;quot;Einführung in PostGIS). (AN+SK)&lt;br /&gt;
* 10:00-10:15 Überblick PostGIS 2.0, inkl. Extensions, Datentyp Geography. (SK)&lt;br /&gt;
* 10:15-10:30 SQL-Shell in QGIS. (AN)&lt;br /&gt;
* 10:30-11:00 PAUSE&lt;br /&gt;
* 11:00-11:45 &amp;quot;Spatial SQL Advanced&amp;quot; mit PostgreSQL: DE-9IM, Views (mit IDs), Trigger (Nachführung Fläche, Constraints im Leitungskataster), Rules (Updatable Views), Konsistenz-Checks. (AN)&lt;br /&gt;
* 11:45-12:30 Neue Vektorgeometrie-Funktionen in PostGIS 2.0 mit Übung. (SK)&lt;br /&gt;
* 12:30-13:30 MITTAGESSEN&lt;br /&gt;
* 13:30-14:00 Übung komplexe räumliche SQL-Abfragen. (AN)&lt;br /&gt;
* 14:00-15:00 PostGIS Raster mit Übung. (AN)&lt;br /&gt;
* 15:00-15:30 PostGIS 3D und PostGIS Topologie. (SK)&lt;br /&gt;
* 15:30-16:15 Ev. Performance-Optimierung, PostGIS-spezifischer Server-Setup (Konfiguration, Tablespaces, Clustering, Read-only-Optimierung). (SK)&lt;br /&gt;
* 16:15-16:30 Ausblick (u.a. Routing). (SK)&lt;br /&gt;
&lt;br /&gt;
Vorkenntisse:&lt;br /&gt;
* Kurs &amp;quot;Einführung in PostGIS/PostgreSQL&amp;quot;, bzw. Kenntnisse von SQL sowie Spatial SQL-Funktionen&lt;br /&gt;
* PostgreSQL Tools (psql, pgadminIII), PostGIS-Tools (shp2pgsql)&lt;br /&gt;
* Kenntnisse eines GIS zur Visualisierung und zum Editieren von Geodaten&lt;br /&gt;
&lt;br /&gt;
== Unterlagen/Übungen ==&lt;br /&gt;
&lt;br /&gt;
Siehe auch Materialien im Kursordner.&lt;br /&gt;
&lt;br /&gt;
Online-Doku.:&lt;br /&gt;
* [http://www.postgresonline.com/downloads/special_feature/postgresql90_cheatsheet_A4.pdf Cheat Sheet &amp;quot;PostgreSQL 9.0&amp;quot;] (postgresonline.com)&lt;br /&gt;
* [http://www.postgis.us/downloads/postgis20_cheatsheet.pdf  Cheat Sheet &amp;quot;PostGIS 2.0&amp;quot;] (postgis.us)&lt;br /&gt;
* [http://www.postgis.us/downloads/postgis20_topology_cheatsheet.pdf Cheat Sheet &amp;quot;PostGIS 2.0 Topology&amp;quot;] (postgis.us)&lt;br /&gt;
&lt;br /&gt;
Literatur:&lt;br /&gt;
* &amp;quot;PostGIS in Action&amp;quot;, Obe und Hsu, Manning. [http://www.postgis.us/page_buy_book Online order]&lt;br /&gt;
* http://wiki.hsr.ch/Datenbanken/DatenbankLiteratur&lt;br /&gt;
&lt;br /&gt;
Support/Firmen: &lt;br /&gt;
* [http://wiki.hsr.ch/Datenbanken/PostgreSQLReferenzen Referenzen von PostreSQL-Installationen]&lt;br /&gt;
* [http://www.postgres-support.com postgres-support.com Schweiz/Deutschland/Österreich]&lt;br /&gt;
&lt;br /&gt;
== Daten ==&lt;br /&gt;
&lt;br /&gt;
Siehe sep. Installationsanleitung.&lt;br /&gt;
&lt;br /&gt;
Uster:&lt;br /&gt;
&lt;br /&gt;
Trigger-Funktion:&lt;br /&gt;
&lt;br /&gt;
  CREATE OR REPLACE FUNCTION test.insert_update_test_trigger_function()&lt;br /&gt;
    RETURNS trigger AS&lt;br /&gt;
  $BODY$&lt;br /&gt;
    DECLARE&lt;br /&gt;
    myrec RECORD;&lt;br /&gt;
  BEGIN&lt;br /&gt;
    NEW.flaeche := ST_Area(NEW.the_geom);&lt;br /&gt;
    NEW.umfang := ST_Perimeter(NEW.the_geom);&lt;br /&gt;
    SELECT array_to_string(array_agg(nz.zonenbez_gemeinde),&#039;; &#039;) &lt;br /&gt;
    AS zonen into myrec FROM raumplanung.nutzungszonen nz WHERE ST_Intersects(NEW.the_geom,nz.the_geom);&lt;br /&gt;
    NEW.zonen := myrec.zonen;&lt;br /&gt;
    RETURN NEW;&lt;br /&gt;
  END;&lt;br /&gt;
  $BODY$&lt;br /&gt;
  LANGUAGE plpgsql VOLATILE&lt;br /&gt;
  COST 100;&lt;br /&gt;
&lt;br /&gt;
== Tipps und Tricks ==&lt;br /&gt;
&lt;br /&gt;
Weitere:&lt;br /&gt;
* [[PostGIS - Tipps und Tricks]]&lt;br /&gt;
* [[PostgreSQL - Tipps und Tricks]]&lt;br /&gt;
* [[PostGIS-Beispiele]]&lt;br /&gt;
&lt;br /&gt;
Restore... (pg_restore):&lt;br /&gt;
* &amp;quot;File Option&amp;quot;: Dateiendungen für Dumps sind &amp;quot;.backup&amp;quot;; wechseln Sie zu &amp;quot;All Files (*.*)&amp;quot;, wenn der Dump einen anderen Namen hat. Dumps erkennt man daran... &lt;br /&gt;
* &amp;quot;Restore Options #1&amp;quot; folgende Optionen, damit die Owner/Privileges Einstellungen ignoriert werden: &amp;quot;Don&#039;t save: Owner, Privilege, Tablespace&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Installation of PostgreSQL 9.1 (production, 32bit) with PostGIS 1.5 (production), PostGIS 2.0 Experimental (32bit) and QGIS:&lt;br /&gt;
* Step 0: Overview of installation of PostgreSQL 9.1.x and PostGIS 1.5 [http://geomatica.como.polimi.it/corsi/sw_gis/postgis_qgis_inst.pdf Instructions (PDF)] &lt;br /&gt;
* Step 1: Installation of PostgreSQL 9.1.x ([http://www.enterprisedb.com/products-services-training/pgdownload#windows Download PostgreSQL for Windows 32bit])&lt;br /&gt;
** NOTE FOR ALL USERS! Don&#039;t choose &#039;64bit Build&#039; - even if 64bit-CPU available (because of PostGIS 2.0 Experimental which is 32bit-only)&lt;br /&gt;
** Make a note of the password. If PostgreSQL is used on your own laptop (localhost) and for educational purposes, we uses user &#039;postgres&#039; with password &#039;postgres&#039;&lt;br /&gt;
* Step 2: PostGIS 1.5 (production, 32bit)&lt;br /&gt;
** Use Stackbuilder from PostgreSQL postprocessing step (NOTE: Internet access is needed here)&lt;br /&gt;
* Step 3: Installation of PostGIS 2.0 (experimental) ([http://www.postgis.org/download/windows/experimental.php Windows 32bit], see weblink &amp;quot;For PostgreSQL 9.1 (compiled against PostgreSQL 9.1.0...&amp;quot;)&lt;br /&gt;
** Make a copy of the whole &amp;lt;&amp;lt;POSTGRE_DIR&amp;gt;&amp;gt;\bin to a backup directory since some PostGIS 1.5 executables will be replaced by PostGIS 2.0.&lt;br /&gt;
** Unzip ZIP-file of PostGIS 2.0 to an temporary installation directory (=&amp;gt; &amp;lt;&amp;lt;POSTGIS_INSTALL_DIR&amp;gt;&amp;gt; = &#039;postgis-pg91-binaries-2.0.0svn/&#039;).&lt;br /&gt;
** Follow instructions of the README file:&lt;br /&gt;
*** Make a copy of makepostgisdb_using_extensions.bat and makepostgisdb.bat (includes raster), and edit POSTGIS_INSTALL_DIR to adapt following variables: PGPASSWORD, THEDB, PGINSTALL (see listing below).&lt;br /&gt;
*** The only difference in these edits is one environment variable: for makepostgisdb_using_extensions.bat its &#039;THEDB=postgis20_extension&#039; and for makepostgisdb.bat its &#039;THEDB=postgis20&#039;.&lt;br /&gt;
*** Open a CMD-Shell as administrator (NOTE FOR WINDOWS USERS! Choose cmd.exe from Start menu but run cmd.exe with right click on it &#039;Run as administrator&#039;!)&lt;br /&gt;
*** In CMD-Shell run makepostgisdb_using_extensions.bat and makepostgisdb.bat&lt;br /&gt;
* Step 4: ActivePerl &lt;br /&gt;
** The database (Uster) needs pl/perl scripts inside PostsgreSQL db. We install ActivePerl ([http://www.activestate.com/activeperl/downloads Windows-Version]).&lt;br /&gt;
* Step 5: Installation of QGIS (Quantum GIS) Stable Version and Trunk Version&lt;br /&gt;
** There are two different installers. We use OSGeo4W ([http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe osgeo4w-setup.exe]) (NOTE: Internet access is needed here)&lt;br /&gt;
*** When asked about the installation/runtime directory path, choose default (e.g. &#039;C:\OSGeo4W&#039;) on Windows. Usually you would install programs under &#039;C:\Program Files (x86)&#039;. But there is evidence that some tools could be bothered by spaces in paths. &lt;br /&gt;
*** Choose &amp;quot;Advanced Installation&amp;quot; (use the newest version of each software =&amp;gt; mostly the first click in the installation tree)&lt;br /&gt;
*** Category „Commandline Utilities“: setup: OSGeo4W Installer/Updater&lt;br /&gt;
*** Category „Desktop“: qgis, qgis-dev (NOTE: &#039;qgis-dev&#039; means &amp;quot;Trunk&amp;quot;-Version)&lt;br /&gt;
*** Category „Libs“: psycopg2, pyqwt5-qt4, qt4-devel&lt;br /&gt;
** NOTE: This installation includes by default Python (2.5.2)&lt;br /&gt;
* Finish: Restart system (in order to restore environment like paths to libraries).&lt;br /&gt;
&lt;br /&gt;
File &#039;makepostgisdb_using_extensions.bat&#039;:&lt;br /&gt;
  REM this is an example of how to create a new db and spatially enable it using CREATE EXTENSION&lt;br /&gt;
  set PGPORT=5432&lt;br /&gt;
  set PGHOST=localhost&lt;br /&gt;
  set PGUSER=postgres&lt;br /&gt;
  set PGPASSWORD=postgres&lt;br /&gt;
  set THEDB=postgis20_extension&lt;br /&gt;
  set PGINSTALL=C:\Program Files (x86)\PostgreSQL\9.1&lt;br /&gt;
  set PGADMIN=%PGINSTALL%\pgAdmin III&lt;br /&gt;
  set PGBIN=%PGINSTALL%\bin\&lt;br /&gt;
  set PGLIB=%PGINSTALL%\lib\&lt;br /&gt;
  set POSTGISVER=2.0&lt;br /&gt;
  xcopy bin\*.* &amp;quot;%PGBIN%&amp;quot;&lt;br /&gt;
  xcopy /I /S bin\postgisgui\* &amp;quot;%PGBIN%\postgisgui&amp;quot;&lt;br /&gt;
  xcopy /I plugins.d &amp;quot;%PGADMIN%\plugins.d&amp;quot;&lt;br /&gt;
  xcopy lib\*.* &amp;quot;%PGLIB%&amp;quot;&lt;br /&gt;
  xcopy share\extension\*.* &amp;quot;%PGINSTALL%\share\extension&amp;quot;&lt;br /&gt;
  &amp;quot;%PGBIN%\psql&amp;quot;  -c &amp;quot;CREATE DATABASE %THEDB%&amp;quot;&lt;br /&gt;
  &amp;quot;%PGBIN%\psql&amp;quot;  -d &amp;quot;%THEDB%&amp;quot; -c &amp;quot;CREATE EXTENSION postgis;&amp;quot;&lt;br /&gt;
  &amp;quot;%PGBIN%\psql&amp;quot;  -d &amp;quot;%THEDB%&amp;quot; -c &amp;quot;CREATE EXTENSION postgis_topology;&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  REM Uncomment the below line if this is a template database&lt;br /&gt;
  &amp;quot;%PGBIN%\psql&amp;quot; -d &amp;quot;%THEDB%&amp;quot; -c &amp;quot;UPDATE pg_database SET datistemplate = true WHERE datname = &#039;%THEDB%&#039;;GRANT ALL ON geometry_columns TO PUBLIC; GRANT ALL ON spatial_ref_sys TO PUBLIC&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  pause&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
&lt;br /&gt;
* tbd.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Weiterbildung]] [[Kategorie:PostGIS]] [[Kategorie:PostgreSQL]]&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_f%C3%BCr_Fortgeschrittene&amp;diff=37857</id>
		<title>Kurs PostGIS für Fortgeschrittene</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Kurs_PostGIS_f%C3%BCr_Fortgeschrittene&amp;diff=37857"/>
		<updated>2012-01-20T10:53:56Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Daten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt-Seminar &#039;&#039;&#039;&amp;quot;PostGIS für Fortgeschrittene&amp;quot;&#039;&#039;&#039; (Kürzel Sem_PostGIS_FF).&lt;br /&gt;
&lt;br /&gt;
Fr. 20. Januar 2012. Nicht zu verwechseln mit [[GISpunkt-Seminar PostgreSQL für Fortgeschrittene]]. Siehe auch:&lt;br /&gt;
* [[GISpunkt-Seminar PostGIS]], [[GIS-Seminare]]&lt;br /&gt;
* [[PostGIS]] und [[PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
== Programm ==&lt;br /&gt;
&lt;br /&gt;
* 09:00-09:15 Einführung, Vorstellung. (sep. Gruppe (A) diejenigen, die installieren, (B) die schon installiert haben) (SK)&lt;br /&gt;
* 09:15-10:00 (A): Installation inkl. Daten einlesen. (SK mit Helfer)&lt;br /&gt;
* 09:15-10:00 (B): Teil 1. Daten einlesen, Teil 2. Selbsttest lösen (Repetition aus SQL und Kurs &amp;quot;Einführung in PostGIS). (AN+SK)&lt;br /&gt;
* 10:00-10:15 Überblick PostGIS 2.0, inkl. Extensions, Datentyp Geography. (SK)&lt;br /&gt;
* 10:15-10:30 SQL-Shell in QGIS. (AN)&lt;br /&gt;
* 10:30-11:00 PAUSE&lt;br /&gt;
* 11:00-11:45 &amp;quot;Spatial SQL Advanced&amp;quot; mit PostgreSQL: DE-9IM, Views (mit IDs), Trigger (Nachführung Fläche, Constraints im Leitungskataster), Rules (Updatable Views), Konsistenz-Checks. (AN)&lt;br /&gt;
* 11:45-12:30 Neue Vektorgeometrie-Funktionen in PostGIS 2.0 mit Übung. (SK)&lt;br /&gt;
* 12:30-13:30 MITTAGESSEN&lt;br /&gt;
* 13:30-14:00 Übung komplexe räumliche SQL-Abfragen. (AN)&lt;br /&gt;
* 14:00-15:00 PostGIS Raster mit Übung. (AN)&lt;br /&gt;
* 15:00-15:30 PostGIS 3D und PostGIS Topologie. (SK)&lt;br /&gt;
* 15:30-16:15 Ev. Performance-Optimierung, PostGIS-spezifischer Server-Setup (Konfiguration, Tablespaces, Clustering, Read-only-Optimierung). (SK)&lt;br /&gt;
* 16:15-16:30 Ausblick (u.a. Routing). (SK)&lt;br /&gt;
&lt;br /&gt;
Vorkenntisse:&lt;br /&gt;
* Kurs &amp;quot;Einführung in PostGIS/PostgreSQL&amp;quot;, bzw. Kenntnisse von SQL sowie Spatial SQL-Funktionen&lt;br /&gt;
* PostgreSQL Tools (psql, pgadminIII), PostGIS-Tools (shp2pgsql)&lt;br /&gt;
* Kenntnisse eines GIS zur Visualisierung und zum Editieren von Geodaten&lt;br /&gt;
&lt;br /&gt;
== Unterlagen/Übungen ==&lt;br /&gt;
&lt;br /&gt;
Siehe auch Materialien im Kursordner.&lt;br /&gt;
&lt;br /&gt;
Online-Doku.:&lt;br /&gt;
* [http://www.postgresonline.com/downloads/special_feature/postgresql90_cheatsheet_A4.pdf Cheat Sheet &amp;quot;PostgreSQL 9.0&amp;quot;] (postgresonline.com)&lt;br /&gt;
* [http://www.postgis.us/downloads/postgis20_cheatsheet.pdf  Cheat Sheet &amp;quot;PostGIS 2.0&amp;quot;] (postgis.us)&lt;br /&gt;
* [http://www.postgis.us/downloads/postgis20_topology_cheatsheet.pdf Cheat Sheet &amp;quot;PostGIS 2.0 Topology&amp;quot;] (postgis.us)&lt;br /&gt;
&lt;br /&gt;
Literatur:&lt;br /&gt;
* &amp;quot;PostGIS in Action&amp;quot;, Obe und Hsu, Manning. [http://www.postgis.us/page_buy_book Online order]&lt;br /&gt;
* http://wiki.hsr.ch/Datenbanken/DatenbankLiteratur&lt;br /&gt;
&lt;br /&gt;
Support/Firmen: &lt;br /&gt;
* [http://wiki.hsr.ch/Datenbanken/PostgreSQLReferenzen Referenzen von PostreSQL-Installationen]&lt;br /&gt;
* [http://www.postgres-support.com postgres-support.com Schweiz/Deutschland/Österreich]&lt;br /&gt;
&lt;br /&gt;
== Daten ==&lt;br /&gt;
&lt;br /&gt;
Siehe sep. Installationsanleitung.&lt;br /&gt;
&lt;br /&gt;
Uster:&lt;br /&gt;
&lt;br /&gt;
Trigger-Funktion:&lt;br /&gt;
&lt;br /&gt;
  CREATE OR REPLACE FUNCTION test.insert_update_test_trigger_function()&lt;br /&gt;
    RETURNS trigger AS&lt;br /&gt;
  $BODY$&lt;br /&gt;
    DECLARE&lt;br /&gt;
    myrec RECORD;&lt;br /&gt;
  BEGIN&lt;br /&gt;
    NEW.flaeche := ST_Area(NEW.the_geom);&lt;br /&gt;
    NEW.umfang := ST_Perimeter(NEW.the_geom);&lt;br /&gt;
    SELECT array_to_string(array_agg(nz.zonenbez_gemeinde),&#039;; &#039;) AS zonen into myrec FROM raumplanung.nutzungszonen nz WHERE ST_Intersects(NEW.the_geom,nz.the_geom);&lt;br /&gt;
	NEW.zonen := myrec.zonen;&lt;br /&gt;
    RETURN NEW;&lt;br /&gt;
  END;&lt;br /&gt;
  $BODY$&lt;br /&gt;
  LANGUAGE plpgsql VOLATILE&lt;br /&gt;
  COST 100;&lt;br /&gt;
&lt;br /&gt;
== Tipps und Tricks ==&lt;br /&gt;
&lt;br /&gt;
Weitere:&lt;br /&gt;
* [[PostGIS - Tipps und Tricks]]&lt;br /&gt;
* [[PostgreSQL - Tipps und Tricks]]&lt;br /&gt;
* [[PostGIS-Beispiele]]&lt;br /&gt;
&lt;br /&gt;
Restore... (pg_restore):&lt;br /&gt;
* &amp;quot;File Option&amp;quot;: Dateiendungen für Dumps sind &amp;quot;.backup&amp;quot;; wechseln Sie zu &amp;quot;All Files (*.*)&amp;quot;, wenn der Dump einen anderen Namen hat. Dumps erkennt man daran... &lt;br /&gt;
* &amp;quot;Restore Options #1&amp;quot; folgende Optionen, damit die Owner/Privileges Einstellungen ignoriert werden: &amp;quot;Don&#039;t save: Owner, Privilege, Tablespace&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Installation of PostgreSQL 9.1 (production, 32bit) with PostGIS 1.5 (production), PostGIS 2.0 Experimental (32bit) and QGIS:&lt;br /&gt;
* Step 0: Overview of installation of PostgreSQL 9.1.x and PostGIS 1.5 [http://geomatica.como.polimi.it/corsi/sw_gis/postgis_qgis_inst.pdf Instructions (PDF)] &lt;br /&gt;
* Step 1: Installation of PostgreSQL 9.1.x ([http://www.enterprisedb.com/products-services-training/pgdownload#windows Download PostgreSQL for Windows 32bit])&lt;br /&gt;
** NOTE FOR ALL USERS! Don&#039;t choose &#039;64bit Build&#039; - even if 64bit-CPU available (because of PostGIS 2.0 Experimental which is 32bit-only)&lt;br /&gt;
** Make a note of the password. If PostgreSQL is used on your own laptop (localhost) and for educational purposes, we uses user &#039;postgres&#039; with password &#039;postgres&#039;&lt;br /&gt;
* Step 2: PostGIS 1.5 (production, 32bit)&lt;br /&gt;
** Use Stackbuilder from PostgreSQL postprocessing step (NOTE: Internet access is needed here)&lt;br /&gt;
* Step 3: Installation of PostGIS 2.0 (experimental) ([http://www.postgis.org/download/windows/experimental.php Windows 32bit], see weblink &amp;quot;For PostgreSQL 9.1 (compiled against PostgreSQL 9.1.0...&amp;quot;)&lt;br /&gt;
** Make a copy of the whole &amp;lt;&amp;lt;POSTGRE_DIR&amp;gt;&amp;gt;\bin to a backup directory since some PostGIS 1.5 executables will be replaced by PostGIS 2.0.&lt;br /&gt;
** Unzip ZIP-file of PostGIS 2.0 to an temporary installation directory (=&amp;gt; &amp;lt;&amp;lt;POSTGIS_INSTALL_DIR&amp;gt;&amp;gt; = &#039;postgis-pg91-binaries-2.0.0svn/&#039;).&lt;br /&gt;
** Follow instructions of the README file:&lt;br /&gt;
*** Make a copy of makepostgisdb_using_extensions.bat and makepostgisdb.bat (includes raster), and edit POSTGIS_INSTALL_DIR to adapt following variables: PGPASSWORD, THEDB, PGINSTALL (see listing below).&lt;br /&gt;
*** The only difference in these edits is one environment variable: for makepostgisdb_using_extensions.bat its &#039;THEDB=postgis20_extension&#039; and for makepostgisdb.bat its &#039;THEDB=postgis20&#039;.&lt;br /&gt;
*** Open a CMD-Shell as administrator (NOTE FOR WINDOWS USERS! Choose cmd.exe from Start menu but run cmd.exe with right click on it &#039;Run as administrator&#039;!)&lt;br /&gt;
*** In CMD-Shell run makepostgisdb_using_extensions.bat and makepostgisdb.bat&lt;br /&gt;
* Step 4: ActivePerl &lt;br /&gt;
** The database (Uster) needs pl/perl scripts inside PostsgreSQL db. We install ActivePerl ([http://www.activestate.com/activeperl/downloads Windows-Version]).&lt;br /&gt;
* Step 5: Installation of QGIS (Quantum GIS) Stable Version and Trunk Version&lt;br /&gt;
** There are two different installers. We use OSGeo4W ([http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe osgeo4w-setup.exe]) (NOTE: Internet access is needed here)&lt;br /&gt;
*** When asked about the installation/runtime directory path, choose default (e.g. &#039;C:\OSGeo4W&#039;) on Windows. Usually you would install programs under &#039;C:\Program Files (x86)&#039;. But there is evidence that some tools could be bothered by spaces in paths. &lt;br /&gt;
*** Choose &amp;quot;Advanced Installation&amp;quot; (use the newest version of each software =&amp;gt; mostly the first click in the installation tree)&lt;br /&gt;
*** Category „Commandline Utilities“: setup: OSGeo4W Installer/Updater&lt;br /&gt;
*** Category „Desktop“: qgis, qgis-dev (NOTE: &#039;qgis-dev&#039; means &amp;quot;Trunk&amp;quot;-Version)&lt;br /&gt;
*** Category „Libs“: psycopg2, pyqwt5-qt4, qt4-devel&lt;br /&gt;
** NOTE: This installation includes by default Python (2.5.2)&lt;br /&gt;
* Finish: Restart system (in order to restore environment like paths to libraries).&lt;br /&gt;
&lt;br /&gt;
File &#039;makepostgisdb_using_extensions.bat&#039;:&lt;br /&gt;
  REM this is an example of how to create a new db and spatially enable it using CREATE EXTENSION&lt;br /&gt;
  set PGPORT=5432&lt;br /&gt;
  set PGHOST=localhost&lt;br /&gt;
  set PGUSER=postgres&lt;br /&gt;
  set PGPASSWORD=postgres&lt;br /&gt;
  set THEDB=postgis20_extension&lt;br /&gt;
  set PGINSTALL=C:\Program Files (x86)\PostgreSQL\9.1&lt;br /&gt;
  set PGADMIN=%PGINSTALL%\pgAdmin III&lt;br /&gt;
  set PGBIN=%PGINSTALL%\bin\&lt;br /&gt;
  set PGLIB=%PGINSTALL%\lib\&lt;br /&gt;
  set POSTGISVER=2.0&lt;br /&gt;
  xcopy bin\*.* &amp;quot;%PGBIN%&amp;quot;&lt;br /&gt;
  xcopy /I /S bin\postgisgui\* &amp;quot;%PGBIN%\postgisgui&amp;quot;&lt;br /&gt;
  xcopy /I plugins.d &amp;quot;%PGADMIN%\plugins.d&amp;quot;&lt;br /&gt;
  xcopy lib\*.* &amp;quot;%PGLIB%&amp;quot;&lt;br /&gt;
  xcopy share\extension\*.* &amp;quot;%PGINSTALL%\share\extension&amp;quot;&lt;br /&gt;
  &amp;quot;%PGBIN%\psql&amp;quot;  -c &amp;quot;CREATE DATABASE %THEDB%&amp;quot;&lt;br /&gt;
  &amp;quot;%PGBIN%\psql&amp;quot;  -d &amp;quot;%THEDB%&amp;quot; -c &amp;quot;CREATE EXTENSION postgis;&amp;quot;&lt;br /&gt;
  &amp;quot;%PGBIN%\psql&amp;quot;  -d &amp;quot;%THEDB%&amp;quot; -c &amp;quot;CREATE EXTENSION postgis_topology;&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  REM Uncomment the below line if this is a template database&lt;br /&gt;
  &amp;quot;%PGBIN%\psql&amp;quot; -d &amp;quot;%THEDB%&amp;quot; -c &amp;quot;UPDATE pg_database SET datistemplate = true WHERE datname = &#039;%THEDB%&#039;;GRANT ALL ON geometry_columns TO PUBLIC; GRANT ALL ON spatial_ref_sys TO PUBLIC&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  pause&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
&lt;br /&gt;
* tbd.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Weiterbildung]] [[Kategorie:PostGIS]] [[Kategorie:PostgreSQL]]&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Broken/Kurs_QGIS_Einf%5Cxfchrung&amp;diff=34385</id>
		<title>Diskussion:Broken/Kurs QGIS Einf\xfchrung</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Broken/Kurs_QGIS_Einf%5Cxfchrung&amp;diff=34385"/>
		<updated>2011-09-06T07:43:30Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Version 1.0.2 Standalone (Windows) von http://qgis.org/de/herunterladen/binaerpakete.html&lt;br /&gt;
&lt;br /&gt;
Workshop anlässlich des [[UNIGIS-Tag Schweiz|3. UNIGIS-Tags Schweiz 2009]] sowie an der AGIT 2009.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[QGIS]].&lt;br /&gt;
&lt;br /&gt;
* Kanton Solothurn &lt;br /&gt;
** Strassenkarte (WFS): http://www.sogis1.so.ch/cgi-bin/sogis/wfs/fossgis2009.wfs&lt;br /&gt;
** Strassenkarte (WMS): http://www.sogis1.so.ch/cgi-bin/sogis/sogis_strassenkarte.wms&lt;br /&gt;
* WMS Blue Marble von NASA: http://wms.jpl.nasa.gov/wms.cgi?SERVICE=WMS&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Tageskurs mit zusätzlichem Selbststudiumsteil und bewerteter Abgabe.&lt;br /&gt;
&lt;br /&gt;
* Do. 8. September 2011 (?), Raum tbd.&lt;br /&gt;
* Zur Anmeldung (pdf) (bitte ausfüllen und E-mailen oder faxen). &lt;br /&gt;
* Anmeldeschluss: 1. September 2011 (beachten Sie die allg. Geschäftsbedingungen/Abmeldefristen).&lt;br /&gt;
* Weitere Kurse und Durchführungstermine siehe Agenda!&lt;br /&gt;
&lt;br /&gt;
--- QGIS-Bild ---&lt;br /&gt;
&lt;br /&gt;
Organisation:&lt;br /&gt;
* Dauer: 1 Tag, 9:00 bis ca. 16:30 Uhr plus Selbststudium.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):&lt;br /&gt;
** Kategorie 1. Anmeldungen ohne Angabe (anwendbar für alle) CHF 750.--&lt;br /&gt;
** Kategorie 2. UNIGIS-Studierende, Hochschul-Mitarbeiter CHF 550.--&lt;br /&gt;
** Kategorie 3. Studierende an einer Hochschule bis 25 J. CHF 400.--. &lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben. UNIGIS-Studierende erhalten (bei Erfolg) einen ECTS-Punkt angerechnet.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS und in Datenbanken.&lt;br /&gt;
* Referenten: Andreas Neumann (GIS Stadt Uster) sowie Prof. Stefan Keller und Mitarbeiter (HSR).&lt;br /&gt;
* Hinweise: &lt;br /&gt;
** Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Das Seminar findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
** Es wird empfohlen, den eigenen Laptop mitzunehmen. &lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden.&lt;br /&gt;
&lt;br /&gt;
Aus dem Programm:&lt;br /&gt;
* Begrüssung, Organisatorisches (SK, 10min; 9:00-9:10)&lt;br /&gt;
* Einführung (AN, 15 min; 9:10-9:25)&lt;br /&gt;
** Informationen über QGIS-Projektaufbau und Gemeinschaft&lt;br /&gt;
** Zusammenarbeit mit anderen OS-GIS Projekten &lt;br /&gt;
* QGIS Installation (Ü) (SK/AN, 30 min; 9:25-9:55) &lt;br /&gt;
** QGIS 1.7 ab OSGEo4W (mit WLAN), USB-Sticks (ohne WLAN)&lt;br /&gt;
* Pause (20min; 9:55-10:15; Puffer für Installation)&lt;br /&gt;
* Vorstellung des Graphischen User Interfaces (D) (AN, 15min; 10:15-10:30)&lt;br /&gt;
* Datenquellen (SK, 25min; 10:30-10:55)&lt;br /&gt;
** Verschiedene Datenquellen diskutieren (DB, File/Fileformate, Webdienste) (D)&lt;br /&gt;
** Daten im Kurs (V)&lt;br /&gt;
** Daten und Webdienste für Projekt laden (Ü)&lt;br /&gt;
* Kartensymbolisierung (D) (AN, 35min; 10:55-11:30)&lt;br /&gt;
** Kartensymbolisierung (Ü)&lt;br /&gt;
** Beschriftung / Labelling (Ü)&lt;br /&gt;
* Kartenlayout (AN, 30min; 11:30-12:00)&lt;br /&gt;
** Vorstellen der Möglichkeiten mit dem Print Composer (D)&lt;br /&gt;
** Layoutübung (Ü)&lt;br /&gt;
* (Mittag; 12:00-13:00)&lt;br /&gt;
* Editieren von Geometrien (Ü) (SK/AN, 60min; 13:00-14:00)&lt;br /&gt;
** Einfaches Editieren&lt;br /&gt;
** Komplexeres Editieren&lt;br /&gt;
** Snapping, Shared/topologisches Editieren&lt;br /&gt;
** Editieren von Texten&lt;br /&gt;
* Arbeiten mit Attributen mit SQLite Manager Plugin(?) (V,D) (AN, 40min; 14:30-15:10 )&lt;br /&gt;
** Attribute erfassen (Ü)&lt;br /&gt;
** nach Attributen filtern (Ü)&lt;br /&gt;
** mit Tabellen arbeiten, Tablejoins&lt;br /&gt;
** Formulare gestalten (D)&lt;br /&gt;
** Feldrechner (Ü)&lt;br /&gt;
* Pause (15min; 15:10-15:25)&lt;br /&gt;
* Einfache Analysen (SK, 45min; 15:25-16:10)&lt;br /&gt;
** Vektor (Ü)&lt;br /&gt;
** Raster, Rasterrechner (D)&lt;br /&gt;
* Datenexport (Ü) (SK, 15min; 16:10-16:25)&lt;br /&gt;
* Ausblick Teil 1 (AN, 20min; 16:25-16:45)&lt;br /&gt;
** Erweiterungen mit Plugins&lt;br /&gt;
** QGIS-Projekt im Web publizieren mit QGIS Server&lt;br /&gt;
* Ausblick Teil 2 (SK, 15min; 16:45-17:00)&lt;br /&gt;
** Geoprocessing (WPS, Python)&lt;br /&gt;
** Umgang mit Datenmodellen (Interlis)&lt;br /&gt;
* Abschluss (SK)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zu QGIS siehe hier im GISpunkt HSR-Wiki.&lt;br /&gt;
&lt;br /&gt;
Weblink: http://tinyurl.com/qgis-kurs (tbd.)&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Broken/Kurs_QGIS_Einf%5Cxfchrung&amp;diff=34384</id>
		<title>Diskussion:Broken/Kurs QGIS Einf\xfchrung</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Broken/Kurs_QGIS_Einf%5Cxfchrung&amp;diff=34384"/>
		<updated>2011-09-06T07:33:02Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Version 1.0.2 Standalone (Windows) von http://qgis.org/de/herunterladen/binaerpakete.html&lt;br /&gt;
&lt;br /&gt;
Workshop anlässlich des [[UNIGIS-Tag Schweiz|3. UNIGIS-Tags Schweiz 2009]] sowie an der AGIT 2009.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[QGIS]].&lt;br /&gt;
&lt;br /&gt;
* Kanton Solothurn &lt;br /&gt;
** Strassenkarte (WFS): http://www.sogis1.so.ch/cgi-bin/sogis/wfs/fossgis2009.wfs&lt;br /&gt;
** Strassenkarte (WMS): http://www.sogis1.so.ch/cgi-bin/sogis/sogis_strassenkarte.wms&lt;br /&gt;
* WMS Blue Marble von NASA: http://wms.jpl.nasa.gov/wms.cgi?SERVICE=WMS&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Tageskurs mit zusätzlichem Selbststudiumsteil und bewerteter Abgabe.&lt;br /&gt;
&lt;br /&gt;
* Do. 8. September 2011 (?), Raum tbd.&lt;br /&gt;
* Zur Anmeldung (pdf) (bitte ausfüllen und E-mailen oder faxen). &lt;br /&gt;
* Anmeldeschluss: 1. September 2011 (beachten Sie die allg. Geschäftsbedingungen/Abmeldefristen).&lt;br /&gt;
* Weitere Kurse und Durchführungstermine siehe Agenda!&lt;br /&gt;
&lt;br /&gt;
--- QGIS-Bild ---&lt;br /&gt;
&lt;br /&gt;
Organisation:&lt;br /&gt;
* Dauer: 1 Tag, 9:00 bis ca. 16:30 Uhr plus Selbststudium.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):&lt;br /&gt;
** Kategorie 1. Anmeldungen ohne Angabe (anwendbar für alle) CHF 750.--&lt;br /&gt;
** Kategorie 2. UNIGIS-Studierende, Hochschul-Mitarbeiter CHF 550.--&lt;br /&gt;
** Kategorie 3. Studierende an einer Hochschule bis 25 J. CHF 400.--. &lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben. UNIGIS-Studierende erhalten (bei Erfolg) einen ECTS-Punkt angerechnet.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS und in Datenbanken.&lt;br /&gt;
* Referenten: Andreas Neumann (GIS Stadt Uster) sowie Prof. Stefan Keller und Mitarbeiter (HSR).&lt;br /&gt;
* Hinweise: &lt;br /&gt;
** Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Das Seminar findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
** Es wird empfohlen, den eigenen Laptop mitzunehmen. &lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden.&lt;br /&gt;
&lt;br /&gt;
Aus dem Programm:&lt;br /&gt;
* Begrüssung, Organisatorisches (SK, 10min; 9:00-9:10)&lt;br /&gt;
* Einführung (AN, 15 min; 9:10-9:25)&lt;br /&gt;
** Informationen über QGIS-Projektaufbau und Gemeinschaft&lt;br /&gt;
** Zusammenarbeit mit anderen OS-GIS Projekten &lt;br /&gt;
* QGIS Installation (Ü) (SK/AN, 30 min; 9:25-9:55) &lt;br /&gt;
** QGIS 1.7 ab OSGEo4W (mit WLAN), USB-Sticks (ohne WLAN)&lt;br /&gt;
* Pause (20min; 9:55-10:15; Puffer für Installation)&lt;br /&gt;
* Vorstellung des Graphischen User Interfaces (D) (AN, 15min; 10:15-10:30)&lt;br /&gt;
* Datenquellen (SK, 25min; 10:30-10:55)&lt;br /&gt;
** Verschiedene Datenquellen diskutieren (DB, File/Fileformate, Webdienste) (D)&lt;br /&gt;
** Daten im Kurs (V)&lt;br /&gt;
** Daten und Webdienste für Projekt laden (Ü)&lt;br /&gt;
* Kartensymbolisierung (D) (AN, 35min; 10:55-11:30)&lt;br /&gt;
** Kartensymbolisierung (Ü)&lt;br /&gt;
** Beschriftung / Labelling (Ü)&lt;br /&gt;
* Kartenlayout (AN, 30min; 11:30-12:00)&lt;br /&gt;
** Vorstellen der Möglichkeiten mit dem Print Composer (D)&lt;br /&gt;
** Layoutübung (Ü)&lt;br /&gt;
* (Mittag; 12:00-13:00)&lt;br /&gt;
* Editieren von Geometrien (Ü) (SK/AN, 60min; 13:00-14:00)&lt;br /&gt;
** Einfaches Editieren&lt;br /&gt;
** Komplexeres Editieren&lt;br /&gt;
** Snapping, Shared/topologisches Editieren&lt;br /&gt;
** Editieren von Texten&lt;br /&gt;
* Arbeiten mit Attributen mit SQLite Manager Plugin(?) (V,D) (AN, 40min; 14:30-15:10 )&lt;br /&gt;
** Attribute erfassen (Ü)&lt;br /&gt;
** nach Attributen filtern (Ü)&lt;br /&gt;
** mit Tabellen arbeiten, Tablejoins&lt;br /&gt;
** Formulare gestalten (D)&lt;br /&gt;
** Feldrechner (Ü)&lt;br /&gt;
* Pause (15min; 15:10-15:25)&lt;br /&gt;
* Einfache Analysen (SK, 45min; 15:25-16:10)&lt;br /&gt;
** Vektor (Ü)&lt;br /&gt;
** Raster, Rasterrechner (D)&lt;br /&gt;
* Datenexport (Ü) (SK, 15min; 16:10-16:25)&lt;br /&gt;
* Ausblick Teil 1 (AN, 25min; 16:25-16:50)&lt;br /&gt;
** Erweiterungen mit Plugins&lt;br /&gt;
** QGIS-Projekt im Web publizieren mit QGIS Server&lt;br /&gt;
* Ausblick Teil 2 (SK)&lt;br /&gt;
** Geoprocessing (WPS, Python)&lt;br /&gt;
** Umgang mit Datenmodellen (Interlis)&lt;br /&gt;
* Abschluss (SK)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zu QGIS siehe hier im GISpunkt HSR-Wiki.&lt;br /&gt;
&lt;br /&gt;
Weblink: http://tinyurl.com/qgis-kurs (tbd.)&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Broken/Kurs_QGIS_Einf%5Cxfchrung&amp;diff=34380</id>
		<title>Diskussion:Broken/Kurs QGIS Einf\xfchrung</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Broken/Kurs_QGIS_Einf%5Cxfchrung&amp;diff=34380"/>
		<updated>2011-09-06T07:25:50Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Version 1.0.2 Standalone (Windows) von http://qgis.org/de/herunterladen/binaerpakete.html&lt;br /&gt;
&lt;br /&gt;
Workshop anlässlich des [[UNIGIS-Tag Schweiz|3. UNIGIS-Tags Schweiz 2009]] sowie an der AGIT 2009.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[QGIS]].&lt;br /&gt;
&lt;br /&gt;
* Kanton Solothurn &lt;br /&gt;
** Strassenkarte (WFS): http://www.sogis1.so.ch/cgi-bin/sogis/wfs/fossgis2009.wfs&lt;br /&gt;
** Strassenkarte (WMS): http://www.sogis1.so.ch/cgi-bin/sogis/sogis_strassenkarte.wms&lt;br /&gt;
* WMS Blue Marble von NASA: http://wms.jpl.nasa.gov/wms.cgi?SERVICE=WMS&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Tageskurs mit zusätzlichem Selbststudiumsteil und bewerteter Abgabe.&lt;br /&gt;
&lt;br /&gt;
* Do. 8. September 2011 (?), Raum tbd.&lt;br /&gt;
* Zur Anmeldung (pdf) (bitte ausfüllen und E-mailen oder faxen). &lt;br /&gt;
* Anmeldeschluss: 1. September 2011 (beachten Sie die allg. Geschäftsbedingungen/Abmeldefristen).&lt;br /&gt;
* Weitere Kurse und Durchführungstermine siehe Agenda!&lt;br /&gt;
&lt;br /&gt;
--- QGIS-Bild ---&lt;br /&gt;
&lt;br /&gt;
Organisation:&lt;br /&gt;
* Dauer: 1 Tag, 9:00 bis ca. 16:30 Uhr plus Selbststudium.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):&lt;br /&gt;
** Kategorie 1. Anmeldungen ohne Angabe (anwendbar für alle) CHF 750.--&lt;br /&gt;
** Kategorie 2. UNIGIS-Studierende, Hochschul-Mitarbeiter CHF 550.--&lt;br /&gt;
** Kategorie 3. Studierende an einer Hochschule bis 25 J. CHF 400.--. &lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben. UNIGIS-Studierende erhalten (bei Erfolg) einen ECTS-Punkt angerechnet.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS und in Datenbanken.&lt;br /&gt;
* Referenten: Andreas Neumann (GIS Stadt Uster) sowie Prof. Stefan Keller und Mitarbeiter (HSR).&lt;br /&gt;
* Hinweise: &lt;br /&gt;
** Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Das Seminar findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
** Es wird empfohlen, den eigenen Laptop mitzunehmen. &lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden.&lt;br /&gt;
&lt;br /&gt;
Aus dem Programm:&lt;br /&gt;
* Begrüssung, Organisatorisches (SK, 10min; 9:00-9:10)&lt;br /&gt;
* Einführung (AN, 15 min; 9:10-9:25)&lt;br /&gt;
** Informationen über QGIS-Projektaufbau und Gemeinschaft&lt;br /&gt;
** Zusammenarbeit mit anderen OS-GIS Projekten &lt;br /&gt;
* QGIS Installation (Ü) (SK/AN, 30 min; 9:25-9:55) &lt;br /&gt;
** QGIS 1.7 ab OSGEo4W (mit WLAN), USB-Sticks (ohne WLAN)&lt;br /&gt;
* Pause (20min; 9:55-10:15; Puffer für Installation)&lt;br /&gt;
* Vorstellung des Graphischen User Interfaces (D) (AN, 15min; 10:15-10:30)&lt;br /&gt;
* Datenquellen (SK, 25min; 10:30-10:55)&lt;br /&gt;
** Verschiedene Datenquellen diskutieren (DB, File/Fileformate, Webdienste) (D)&lt;br /&gt;
** Daten im Kurs (V)&lt;br /&gt;
** Daten und Webdienste für Projekt laden (Ü)&lt;br /&gt;
* Kartensymbolisierung (D) (AN, 35min; 10:55-11:30)&lt;br /&gt;
** Kartensymbolisierung (Ü)&lt;br /&gt;
** Beschriftung / Labelling (Ü)&lt;br /&gt;
* Kartenlayout (AN, 30min; 11:30-12:00)&lt;br /&gt;
** Vorstellen der Möglichkeiten mit dem Print Composer (D)&lt;br /&gt;
** Layoutübung (Ü)&lt;br /&gt;
* (Mittag; 12:00-13:00)&lt;br /&gt;
* Editieren von Geometrien (Ü) (SK/AN, 60min; 13:00-14:00)&lt;br /&gt;
** Einfaches Editieren&lt;br /&gt;
** Komplexeres Editieren&lt;br /&gt;
** Snapping, Shared/topologisches Editieren&lt;br /&gt;
** Editieren von Texten&lt;br /&gt;
* Arbeiten mit Attributen mit SQLite Manager Plugin(?) (V,D) (AN)&lt;br /&gt;
** Attribute erfassen (Ü)&lt;br /&gt;
** nach Attributen filtern (Ü)&lt;br /&gt;
** Formulare gestalten (D)&lt;br /&gt;
** Feldrechner (Ü)&lt;br /&gt;
* Einfache Analysen (SK)&lt;br /&gt;
** Vektor (Ü)&lt;br /&gt;
** Raster, Rasterrechner (D)&lt;br /&gt;
* Datenexport (Ü) (SK)&lt;br /&gt;
* Ausblick Teil 1 (AN)&lt;br /&gt;
** Erweiterungen mit Plugins&lt;br /&gt;
** QGIS-Projekt im Web publizieren mit QGIS Server&lt;br /&gt;
* Ausblick Teil 2 (SK)&lt;br /&gt;
** Geoprocessing (WPS, Python)&lt;br /&gt;
** Umgang mit Datenmodellen (Interlis)&lt;br /&gt;
* Abschluss (SK)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zu QGIS siehe hier im GISpunkt HSR-Wiki.&lt;br /&gt;
&lt;br /&gt;
Weblink: http://tinyurl.com/qgis-kurs (tbd.)&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Broken/Kurs_QGIS_Einf%5Cxfchrung&amp;diff=34374</id>
		<title>Diskussion:Broken/Kurs QGIS Einf\xfchrung</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Broken/Kurs_QGIS_Einf%5Cxfchrung&amp;diff=34374"/>
		<updated>2011-09-06T07:16:19Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Version 1.0.2 Standalone (Windows) von http://qgis.org/de/herunterladen/binaerpakete.html&lt;br /&gt;
&lt;br /&gt;
Workshop anlässlich des [[UNIGIS-Tag Schweiz|3. UNIGIS-Tags Schweiz 2009]] sowie an der AGIT 2009.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[QGIS]].&lt;br /&gt;
&lt;br /&gt;
* Kanton Solothurn &lt;br /&gt;
** Strassenkarte (WFS): http://www.sogis1.so.ch/cgi-bin/sogis/wfs/fossgis2009.wfs&lt;br /&gt;
** Strassenkarte (WMS): http://www.sogis1.so.ch/cgi-bin/sogis/sogis_strassenkarte.wms&lt;br /&gt;
* WMS Blue Marble von NASA: http://wms.jpl.nasa.gov/wms.cgi?SERVICE=WMS&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Tageskurs mit zusätzlichem Selbststudiumsteil und bewerteter Abgabe.&lt;br /&gt;
&lt;br /&gt;
* Do. 8. September 2011 (?), Raum tbd.&lt;br /&gt;
* Zur Anmeldung (pdf) (bitte ausfüllen und E-mailen oder faxen). &lt;br /&gt;
* Anmeldeschluss: 1. September 2011 (beachten Sie die allg. Geschäftsbedingungen/Abmeldefristen).&lt;br /&gt;
* Weitere Kurse und Durchführungstermine siehe Agenda!&lt;br /&gt;
&lt;br /&gt;
--- QGIS-Bild ---&lt;br /&gt;
&lt;br /&gt;
Organisation:&lt;br /&gt;
* Dauer: 1 Tag, 9:00 bis ca. 16:30 Uhr plus Selbststudium.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):&lt;br /&gt;
** Kategorie 1. Anmeldungen ohne Angabe (anwendbar für alle) CHF 750.--&lt;br /&gt;
** Kategorie 2. UNIGIS-Studierende, Hochschul-Mitarbeiter CHF 550.--&lt;br /&gt;
** Kategorie 3. Studierende an einer Hochschule bis 25 J. CHF 400.--. &lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben. UNIGIS-Studierende erhalten (bei Erfolg) einen ECTS-Punkt angerechnet.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS und in Datenbanken.&lt;br /&gt;
* Referenten: Andreas Neumann (GIS Stadt Uster) sowie Prof. Stefan Keller und Mitarbeiter (HSR).&lt;br /&gt;
* Hinweise: &lt;br /&gt;
** Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Das Seminar findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
** Es wird empfohlen, den eigenen Laptop mitzunehmen. &lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden.&lt;br /&gt;
&lt;br /&gt;
Aus dem Programm:&lt;br /&gt;
* Begrüssung, Organisatorisches (SK, 10 min.)&lt;br /&gt;
* Einführung (AN, 15 min.)&lt;br /&gt;
** Informationen über QGIS-Projektaufbau und Gemeinschaft&lt;br /&gt;
** Zusammenarbeit mit anderen OS-GIS Projekten &lt;br /&gt;
* QGIS Installation (Ü) (SK/AN, 30 min.) &lt;br /&gt;
** QGIS 1.7 ab OSGEo4W (mit WLAN), USB-Sticks (ohne WLAN)&lt;br /&gt;
* Vorstellung des Graphischen User Interfaces (D) (AN, 15min)&lt;br /&gt;
* Datenquellen (SK, x min.)&lt;br /&gt;
** Verschiedene Datenquellen diskutieren (DB, File/Fileformate, Webdienste) (D)&lt;br /&gt;
** Daten im Kurs (V)&lt;br /&gt;
** Daten und Webdienste für Projekt laden (Ü)&lt;br /&gt;
* Kartensymbolisierung (D) (AN, 30min)&lt;br /&gt;
** Kartensymbolisierung (Ü)&lt;br /&gt;
** Beschriftung / Labelling (Ü)&lt;br /&gt;
* Kartenlayout (AN, 30min)&lt;br /&gt;
** Vorstellen der Möglichkeiten mit dem Print Composer (D)&lt;br /&gt;
** Layoutübung (Ü)&lt;br /&gt;
* (Mittag)&lt;br /&gt;
* Editieren von Geometrien (Ü) (SK/AN)&lt;br /&gt;
** Einfaches Editieren&lt;br /&gt;
** Komplexeres Editieren&lt;br /&gt;
** Snapping, Shared/topologisches Editieren&lt;br /&gt;
** Editieren von Texten&lt;br /&gt;
* Arbeiten mit Attributen mit SQLite Manager Plugin(?) (V,D) (AN)&lt;br /&gt;
** Attribute erfassen (Ü)&lt;br /&gt;
** nach Attributen filtern (Ü)&lt;br /&gt;
** Formulare gestalten (D)&lt;br /&gt;
** Feldrechner (Ü)&lt;br /&gt;
* Einfache Analysen (SK)&lt;br /&gt;
** Vektor (Ü)&lt;br /&gt;
** Raster, Rasterrechner (D)&lt;br /&gt;
* Datenexport (Ü) (SK)&lt;br /&gt;
* Ausblick Teil 1 (AN)&lt;br /&gt;
** Erweiterungen mit Plugins&lt;br /&gt;
** QGIS-Projekt im Web publizieren mit QGIS Server&lt;br /&gt;
* Ausblick Teil 2 (SK)&lt;br /&gt;
** Geoprocessing (WPS, Python)&lt;br /&gt;
** Umgang mit Datenmodellen (Interlis)&lt;br /&gt;
* Abschluss (SK)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zu QGIS siehe hier im GISpunkt HSR-Wiki.&lt;br /&gt;
&lt;br /&gt;
Weblink: http://tinyurl.com/qgis-kurs (tbd.)&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Broken/Kurs_QGIS_Einf%5Cxfchrung&amp;diff=33371</id>
		<title>Diskussion:Broken/Kurs QGIS Einf\xfchrung</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Broken/Kurs_QGIS_Einf%5Cxfchrung&amp;diff=33371"/>
		<updated>2011-07-19T09:40:23Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Version 1.0.2 Standalone (Windows) von http://qgis.org/de/herunterladen/binaerpakete.html&lt;br /&gt;
&lt;br /&gt;
Workshop anlässlich des [[UNIGIS-Tag Schweiz|3. UNIGIS-Tags Schweiz 2009]] sowie an der AGIT 2009.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[QGIS]].&lt;br /&gt;
&lt;br /&gt;
* Kanton Solothurn &lt;br /&gt;
** Strassenkarte (WFS): http://www.sogis1.so.ch/cgi-bin/sogis/wfs/fossgis2009.wfs&lt;br /&gt;
** Strassenkarte (WMS): http://www.sogis1.so.ch/cgi-bin/sogis/sogis_strassenkarte.wms&lt;br /&gt;
* WMS Blue Marble von NASA: http://wms.jpl.nasa.gov/wms.cgi?SERVICE=WMS&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Tageskurs mit zusätzlichem Selbststudiumsteil und bewerteter Abgabe.&lt;br /&gt;
&lt;br /&gt;
* Do. 8. September 2011 (?), Raum tbd.&lt;br /&gt;
* Zur Anmeldung (pdf) (bitte ausfüllen und E-mailen oder faxen). &lt;br /&gt;
* Anmeldeschluss: 1. September 2011 (beachten Sie die allg. Geschäftsbedingungen/Abmeldefristen).&lt;br /&gt;
* Weitere Kurse und Durchführungstermine siehe Agenda!&lt;br /&gt;
&lt;br /&gt;
--- QGIS-Bild ---&lt;br /&gt;
&lt;br /&gt;
Organisation:&lt;br /&gt;
* Dauer: 1 Tag, 9:00 bis ca. 16:30 Uhr plus Selbststudium.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):&lt;br /&gt;
** Kategorie 1. Anmeldungen ohne Angabe (anwendbar für alle) CHF 750.--&lt;br /&gt;
** Kategorie 2. UNIGIS-Studierende, Hochschul-Mitarbeiter CHF 550.--&lt;br /&gt;
** Kategorie 3. Studierende an einer Hochschule bis 25 J. CHF 400.--. &lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben. UNIGIS-Studierende erhalten (bei Erfolg) einen ECTS-Punkt angerechnet.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS und in Datenbanken.&lt;br /&gt;
* Referenten: Andreas Neumann (GIS Stadt Uster) sowie Prof. Stefan Keller und Mitarbeiter (HSR).&lt;br /&gt;
* Hinweise: &lt;br /&gt;
** Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Das Seminar findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
** Es wird empfohlen, den eigenen Laptop mitzunehmen. &lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden.&lt;br /&gt;
&lt;br /&gt;
Aus dem Programm:&lt;br /&gt;
* Einführung&lt;br /&gt;
** Informationen über QGIS Projektaufbau und Gemeinschaft&lt;br /&gt;
** Zusammenarbeit mit anderen OS-GIS Projekten&lt;br /&gt;
* QGIS Installation (Ü)&lt;br /&gt;
* Vorstellung des Graphischen User Interfaces (D)&lt;br /&gt;
* Datenquellen&lt;br /&gt;
** verschiedene Datenquellen diskutieren&lt;br /&gt;
** Daten und Dienste für Projekt laden (Ü)&lt;br /&gt;
* Kartensymbolisierung&lt;br /&gt;
** Kartensymbolisierung (Ü)&lt;br /&gt;
* Kartenlayout mit dem Print Composer&lt;br /&gt;
** Vorstellen der Möglichkeiten (D)&lt;br /&gt;
** Layoutübung (Ü)&lt;br /&gt;
* Editieren von Geometrien (Ü)&lt;br /&gt;
** Einfaches Editieren&lt;br /&gt;
** Komplexeres Editieren&lt;br /&gt;
** Snapping, Shared/topologisches editieren&lt;br /&gt;
** Editieren von Texten&lt;br /&gt;
* Arbeiten mit Attributen&lt;br /&gt;
** Attribute erfassen (Ü)&lt;br /&gt;
** nach Attributen filtern (Ü)&lt;br /&gt;
** Formulare gestalten (D)&lt;br /&gt;
** Feldrechner (Ü)&lt;br /&gt;
* Einfache Analysen&lt;br /&gt;
** Vektor (Ü)&lt;br /&gt;
** Raster (D)&lt;br /&gt;
* Datenexport (Ü)&lt;br /&gt;
* Ausblick&lt;br /&gt;
** Erweiterungen mit Plugins&lt;br /&gt;
** QGIS Projekt im Web publizieren mit QGIS Server&lt;br /&gt;
** Geoprocessing (WPS, Python)&lt;br /&gt;
** Umgang mit Datenmodellen (Interlis)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zu QGIS siehe hier im GISpunkt HSR-Wiki.&lt;br /&gt;
&lt;br /&gt;
Weblink: http://tinyurl.com/qgis-kurs (tbd.)&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Broken/Kurs_QGIS_Einf%5Cxfchrung&amp;diff=33370</id>
		<title>Diskussion:Broken/Kurs QGIS Einf\xfchrung</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Broken/Kurs_QGIS_Einf%5Cxfchrung&amp;diff=33370"/>
		<updated>2011-07-19T09:37:55Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Version 1.0.2 Standalone (Windows) von http://qgis.org/de/herunterladen/binaerpakete.html&lt;br /&gt;
&lt;br /&gt;
Workshop anlässlich des [[UNIGIS-Tag Schweiz|3. UNIGIS-Tags Schweiz 2009]] sowie an der AGIT 2009.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[QGIS]].&lt;br /&gt;
&lt;br /&gt;
* Kanton Solothurn &lt;br /&gt;
** Strassenkarte (WFS): http://www.sogis1.so.ch/cgi-bin/sogis/wfs/fossgis2009.wfs&lt;br /&gt;
** Strassenkarte (WMS): http://www.sogis1.so.ch/cgi-bin/sogis/sogis_strassenkarte.wms&lt;br /&gt;
* WMS Blue Marble von NASA: http://wms.jpl.nasa.gov/wms.cgi?SERVICE=WMS&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Tageskurs mit zusätzlichem Selbststudiumsteil und bewerteter Abgabe.&lt;br /&gt;
&lt;br /&gt;
* Do. 8. September 2011 (?), Raum tbd.&lt;br /&gt;
* Zur Anmeldung (pdf) (bitte ausfüllen und E-mailen oder faxen). &lt;br /&gt;
* Anmeldeschluss: 1. September 2011 (beachten Sie die allg. Geschäftsbedingungen/Abmeldefristen).&lt;br /&gt;
* Weitere Kurse und Durchführungstermine siehe Agenda!&lt;br /&gt;
&lt;br /&gt;
--- QGIS-Bild ---&lt;br /&gt;
&lt;br /&gt;
Organisation:&lt;br /&gt;
* Dauer: 1 Tag, 9:00 bis ca. 16:30 Uhr plus Selbststudium.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):&lt;br /&gt;
** Kategorie 1. Anmeldungen ohne Angabe (anwendbar für alle) CHF 750.--&lt;br /&gt;
** Kategorie 2. UNIGIS-Studierende, Hochschul-Mitarbeiter CHF 550.--&lt;br /&gt;
** Kategorie 3. Studierende an einer Hochschule bis 25 J. CHF 400.--. &lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben. UNIGIS-Studierende erhalten (bei Erfolg) einen ECTS-Punkt angerechnet.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS und in Datenbanken.&lt;br /&gt;
* Referenten: Andreas Neumann (GIS Stadt Uster) sowie Prof. Stefan Keller und Mitarbeiter (HSR).&lt;br /&gt;
* Hinweise: &lt;br /&gt;
** Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Das Seminar findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
** Es wird empfohlen, den eigenen Laptop mitzunehmen. &lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden.&lt;br /&gt;
&lt;br /&gt;
Aus dem Programm:&lt;br /&gt;
* Einführung&lt;br /&gt;
** Informationen über QGIS Projektaufbau und Gemeinschaft&lt;br /&gt;
** Zusammenarbeit mit anderen OS-GIS Projekten&lt;br /&gt;
* QGIS Installation (Ü)&lt;br /&gt;
* Vorstellung des Graphischen User Interfaces (D)&lt;br /&gt;
* Datenquellen&lt;br /&gt;
** verschiedene Datenquellen diskutieren&lt;br /&gt;
** Daten und Dienste für Projekt laden (Ü)&lt;br /&gt;
* Kartensymbolisierung&lt;br /&gt;
** Kartensymbolisierung (Ü)&lt;br /&gt;
* Kartenlayout mit dem Print Composer&lt;br /&gt;
** Vorstellen der Möglichkeiten (D)&lt;br /&gt;
** Layoutübung (Ü)&lt;br /&gt;
* Editieren von Geometrien&lt;br /&gt;
** Einfaches Editieren&lt;br /&gt;
** Komplexeres Editieren&lt;br /&gt;
** Snapping, Shared/topologisches editieren&lt;br /&gt;
** Editieren von Texten&lt;br /&gt;
* Arbeiten mit Attributen&lt;br /&gt;
** Attribute erfassen&lt;br /&gt;
** nach Attributen filtern&lt;br /&gt;
** Formulare gestalten&lt;br /&gt;
** Feldrechner&lt;br /&gt;
* Einfache Analysen&lt;br /&gt;
** Vektor&lt;br /&gt;
** Raster&lt;br /&gt;
* Datenexport&lt;br /&gt;
* Ausblick&lt;br /&gt;
** Erweiterungen mit Plugins&lt;br /&gt;
** QGIS Projekt im Web publizieren mit QGIS Server&lt;br /&gt;
** Geoprocessing (WPS, Python)&lt;br /&gt;
** Umgang mit Datenmodellen (Interlis)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zu QGIS siehe hier im GISpunkt HSR-Wiki.&lt;br /&gt;
&lt;br /&gt;
Weblink: http://tinyurl.com/qgis-kurs (tbd.)&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Broken/Kurs_QGIS_Einf%5Cxfchrung&amp;diff=33369</id>
		<title>Diskussion:Broken/Kurs QGIS Einf\xfchrung</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Broken/Kurs_QGIS_Einf%5Cxfchrung&amp;diff=33369"/>
		<updated>2011-07-19T09:26:53Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Version 1.0.2 Standalone (Windows) von http://qgis.org/de/herunterladen/binaerpakete.html&lt;br /&gt;
&lt;br /&gt;
Workshop anlässlich des [[UNIGIS-Tag Schweiz|3. UNIGIS-Tags Schweiz 2009]] sowie an der AGIT 2009.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[QGIS]].&lt;br /&gt;
&lt;br /&gt;
* Kanton Solothurn &lt;br /&gt;
** Strassenkarte (WFS): http://www.sogis1.so.ch/cgi-bin/sogis/wfs/fossgis2009.wfs&lt;br /&gt;
** Strassenkarte (WMS): http://www.sogis1.so.ch/cgi-bin/sogis/sogis_strassenkarte.wms&lt;br /&gt;
* WMS Blue Marble von NASA: http://wms.jpl.nasa.gov/wms.cgi?SERVICE=WMS&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Tageskurs mit zusätzlichem Selbststudiumsteil und bewerteter Abgabe.&lt;br /&gt;
&lt;br /&gt;
* Do. 8. September 2011 (?), Raum tbd.&lt;br /&gt;
* Zur Anmeldung (pdf) (bitte ausfüllen und E-mailen oder faxen). &lt;br /&gt;
* Anmeldeschluss: 1. September 2011 (beachten Sie die allg. Geschäftsbedingungen/Abmeldefristen).&lt;br /&gt;
* Weitere Kurse und Durchführungstermine siehe Agenda!&lt;br /&gt;
&lt;br /&gt;
--- QGIS-Bild ---&lt;br /&gt;
&lt;br /&gt;
Organisation:&lt;br /&gt;
* Dauer: 1 Tag, 9:00 bis ca. 16:30 Uhr plus Selbststudium.&lt;br /&gt;
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):&lt;br /&gt;
** Kategorie 1. Anmeldungen ohne Angabe (anwendbar für alle) CHF 750.--&lt;br /&gt;
** Kategorie 2. UNIGIS-Studierende, Hochschul-Mitarbeiter CHF 550.--&lt;br /&gt;
** Kategorie 3. Studierende an einer Hochschule bis 25 J. CHF 400.--. &lt;br /&gt;
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben. UNIGIS-Studierende erhalten (bei Erfolg) einen ECTS-Punkt angerechnet.&lt;br /&gt;
* Vorkenntnisse: Grundkenntnisse in GIS und in Datenbanken.&lt;br /&gt;
* Referenten: Andreas Neumann (GIS Stadt Uster) sowie Prof. Stefan Keller und Mitarbeiter (HSR).&lt;br /&gt;
* Hinweise: &lt;br /&gt;
** Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Das Seminar findet ab fünf zahlenden Teilnehmern statt.&lt;br /&gt;
** Es wird empfohlen, den eigenen Laptop mitzunehmen. &lt;br /&gt;
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden.&lt;br /&gt;
&lt;br /&gt;
Aus dem Programm:&lt;br /&gt;
* Einführung&lt;br /&gt;
** Informationen über QGIS Projektaufbau und Gemeinschaft&lt;br /&gt;
** Zusammenarbeit mit anderen OS-GIS Projekten&lt;br /&gt;
* QGIS Installation (Ü)&lt;br /&gt;
* Vorstellung des Graphischen User Interfaces (D)&lt;br /&gt;
* Datenquellen&lt;br /&gt;
** verschiedene Datenquellen diskutieren&lt;br /&gt;
** Daten und Dienste für Projekt laden (Ü)&lt;br /&gt;
* Kartensymbolisierung&lt;br /&gt;
** Kartensymbolisierung (Ü)&lt;br /&gt;
* Kartenlayout mit dem Print Composer&lt;br /&gt;
* Editieren von Geometrien&lt;br /&gt;
** Einfaches Editieren&lt;br /&gt;
** Komplexeres Editieren&lt;br /&gt;
** Snapping, Shared/topologisches editieren&lt;br /&gt;
** Editieren von Texten&lt;br /&gt;
* Arbeiten mit Attributen&lt;br /&gt;
** Attribute erfassen&lt;br /&gt;
** nach Attributen filtern&lt;br /&gt;
** Formulare gestalten&lt;br /&gt;
** Feldrechner&lt;br /&gt;
* Einfache Analysen&lt;br /&gt;
** Vektor&lt;br /&gt;
** Raster&lt;br /&gt;
* Datenexport&lt;br /&gt;
* Ausblick&lt;br /&gt;
** Erweiterungen mit Plugins&lt;br /&gt;
** QGIS Projekt im Web publizieren mit QGIS Server&lt;br /&gt;
** Geoprocessing (WPS, Python)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zu QGIS siehe hier im GISpunkt HSR-Wiki.&lt;br /&gt;
&lt;br /&gt;
Weblink: http://tinyurl.com/qgis-kurs (tbd.)&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=QGIS&amp;diff=22156</id>
		<title>QGIS</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=QGIS&amp;diff=22156"/>
		<updated>2009-01-27T09:10:26Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Quantum GIS (QGIS) ist ein benutzerfreundliches Open Source [[GIS]] welches unter Linux, Unix, Mac OSX und Windows läuft. &lt;br /&gt;
&lt;br /&gt;
See also [[OpenJUMP]].&lt;br /&gt;
&lt;br /&gt;
QGIS ist in C++ geschrieben, basiert auf Trolltechs [http://www.qtsoftware.com/products/products/appdev qt GUI Bibliothek]. QGIS kann mit [http://www.python.org/download/ Python] und C++, mittels eines Plugin-Konzepts und mit Hilfe der QGIS API erweitert werden. QGIS verwendet die Bibliotheken [[OGR]], [[GDAL]], [[GEOS]] und [[PROJ]]. Als räumliche Datenbank wird derzeit [[PostGIS]] unterstützt, Support für SQLite ist in Arbeit. Die Formate [[GML]] und ESRI [[Shapefile]]s sowie alle Formate die von OGR unterstützt werden können gelesen und geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
== Tipps ==&lt;br /&gt;
&lt;br /&gt;
* Generating (html) clickable image maps: See [http://www.duif.net/qgis/ QGIS webpage].&lt;br /&gt;
&lt;br /&gt;
== Was ist QGIS? ==&lt;br /&gt;
Hier einige Stärken und Funktionen und auch die Schwächen von QGIS (Dank an A. Neumann):&lt;br /&gt;
&lt;br /&gt;
QGIS kann Rasterdaten und Vektordaten laden, darstellen und editieren. Zudem werden räumliche Datenbanken (derzeit primär PostgreSQL/Postgis), WMS- und WFS-Dienste als Datenquellen unterstützt. Attributdaten können über die integrierte Tabellenfunktion editiert werden und Selektionen über den Query-Builder durchgeführt werden. Der Map Composer unterstützt das interaktive Erstellen von Kartenlayouts. Das Editieren von Vektordaten unterstützt das Snapping auf Vertices und Kanten (getrennt konfigurierbar für einzelne Ebenen), das Shared-Editing (etwa bei Polygon-Ebenen) und das Auftrennen von Polygonen.&lt;br /&gt;
&lt;br /&gt;
Für Entwickler ist die Möglichkeit interessant, QGIS mit Hilfe von Python oder C++ Plugins zu erweitern. QGIS stellt dazu eine eigene QGIS-API (siehe http://doc.qgis.org/) als Schnittstelle zur Verfügung. Formulare und Dialogelemente können über den qtdesigner, einen interaktiven GUI-Designer erstellt werden, welcher von der Firma Trolltech/Nokia zur Verfügung gestellt wird. Zahlreiche zusätzliche Funktionalitäten, wie etwa ein Postgis-Manager, ein Höhenprofilgenerator, ein GPS-Ladewerkzeug, Formatkonverter, u.v.m werden bereits über Plugins zur Verfügung gestellt. Plugins können bequem über Plugin-Repositories dazuinstalliert werden. Auch selbst-geschriebene Plugins können über eigene Repositories verteilt werden.&lt;br /&gt;
&lt;br /&gt;
Sehr interessant ist auch die Möglichkeit QGIS zusammen mit GRASS-GIS einzusetzen, ein Open-Source Desktop-GIS für Rasteranalyse, Vektoranalyse, Netzwerkanalyse, Geländemodellierung, hydrologische Analysen, Fernerkundung und Geostatistik. GRASS-Funktionalitäten stehen über das QGIS-GRASS Plugin direkt innerhalb von QGIS zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
QGIS wird auch in der Schweiz bereits produktiv eingesetzt und wird von Schweizer GIS-Nutzern aktiv mitgestaltet und weiterentwickelt. So kommt die Software bereits im Kanton Solothurn und in der Stadt-Uster für einige Desktop-GIS-Projekte zum Einsatz und die Weiterentwicklung finanziell unterstützt. Andere Städte haben bereits ihr Interesse für den Einsatz von QGIS gezeigt. QGIS kann sehr gut auch zusammen mit kommerziellen GIS-Systemen betrieben werden. So wird QGIS etwa in der Stadt Uster zusammen mit Autodesk und Topobase-Software betrieben. Auch der Datenaustausch mit ESRI- und Intergraph-Software ist über verschiedene Schnittstellen gewährleistet und wird in Zukunft noch  ausgebaut werden. Besondere Bedeutung haben dabei auch die OGC-Schnittstellen WMS, WFS und die Postgis-Schnittstellen, welche das Darstellen verteilter Datensätze, auch zusammen mit anderen GIS-Systemen erlauben. In der Praxis hat sich gezeigt, dass das Erlernen von QGIS für neue Benutzer oft einfacher und schneller vonstatten geht als bei komplexerer, kommerzieller GIS-Software - ein Umstand der insbesondere bei Gelegenheits-GIS-Benutzern nicht zu unterschätzen ist.&lt;br /&gt;
&lt;br /&gt;
Für Schweizer GIS-Nutzer besonders interessant ist der Umstand, dass einer der Hauptentwickler, Marco Hugentobler, in Zürich wohnhaft ist und auch Support leisten kann. Marco hat massgeblich am Print Composer, an der Postgis-Schnittstelle und an den Editierfunktionen gearbeitet. Zudem besteht innerhalb der Schweizer QGIS-Nutzer ein Austausch und eine Koordination für die Weiterentwicklung von QGIS. Da QGIS auf Standard-Programmiertechniken wie QT/C++/Python beruht, können potentiell auch andere Firmen kommerziellen Support leisten und die Weiterentwicklung von QGIS mitgestalten.&lt;br /&gt;
&lt;br /&gt;
Für Interessenten die QGIS noch nicht kennen, sollen neben den Stärken und Funktionen von QGIS auch die Schwächen, der Vollständigkeit halber, erwähnt werden:&lt;br /&gt;
&lt;br /&gt;
* Fehlender Support für Kurven (Kreisbögen). QGIS basiert auf anderen OSGEO Komponenten (wie z.B. GEOS), welche Kurven noch nicht unterstützen. Geodaten die Kurven enthalten müssen über Formatkonverter wie gdal/ogr oder FME in Segmente mit Geradenstücken umgewandelt werden.&lt;br /&gt;
* Keine Unterstützung für Konstruktionen (etwa Bogenschnitte, Rechtwinkelzüge, etc.)&lt;br /&gt;
* Limitierte Undo-Funktionen etwa beim Editieren und im Print Composer&lt;br /&gt;
* Limitierte Unterstützung für dxf - es gibt zwar ein dxf2shape Plugin, aber das direkte öffnen von dxf-Dateien ist noch nicht möglich&lt;br /&gt;
* Limitierte Unterstützung von Oracle-Spatial oder ArcSDE (dies ist zwar über OGR möglich, jedoch noch zu umständlich und nicht so performant wie die Postgis-Schnittstelle)&lt;br /&gt;
* Komplexere kartografische Darstellungen lassen sich manchmal nur über Umwege erreichen (z.B. Pfeile, Marker, Mehrfachsymbolisierungen)&lt;br /&gt;
&lt;br /&gt;
Aufgrund dieser Limitierungen kann QGIS derzeit etwa schlecht für die Amtliche Vermessung oder den Leitungskataster verwendet werden. Es ist aber für einfachere GIS-Projekte (z.B. thematische Pläne, Grünflächenkataster, Natur und Umwelt, GEP-Datenviewer, Stadtplanung, Feuerwehr, Polizei, etc.) und als mächtiger Geodatenviewer interessant. Daten der amtlichen Vermessung und des Leitungskataster können selbstverständlich betrachtet, aufgrund der Limitierungen aber noch nicht editiert werden.&lt;br /&gt;
&lt;br /&gt;
Zudem arbeitet das QGIS-Team und die anderen OSGEO-Entwickler sehr aktiv an der Behebung der oben genannten Limitierungen, sodass einige der Probleme vielleicht schon bald der Vergangenheit angehören könnten.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Installer von http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe verwenden. &lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass man neben den Defaults die folgenden Pakete auswählt: &lt;br /&gt;
* Advanced, nicht Express install&lt;br /&gt;
* Commandline: Python&lt;br /&gt;
* Desktop: QGIS&lt;br /&gt;
* Libraries (ev. sind einige schon vorausgewählt):&lt;br /&gt;
** gdal (besonders wichtig)&lt;br /&gt;
** libpq&lt;br /&gt;
** proj (besonders wichtig)&lt;br /&gt;
** pyqt4&lt;br /&gt;
** python-qgis&lt;br /&gt;
** python-win32&lt;br /&gt;
** qt4-libs &lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* Homepage: http://www.qgis.org/&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GIS]]&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=18065</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=18065"/>
		<updated>2008-05-27T15:05:37Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Dokumente/Unterlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
* [http://gis.hsr.ch/index.php?option=com_content&amp;amp;task=view&amp;amp;id=182&amp;amp;Itemid=150 UNIGIS-Tag Schweiz]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Browser&lt;br /&gt;
* TextPad, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Dokumente/Unterlagen ==&lt;br /&gt;
* [[Media:Postgis_einfuehrung_2008.pdf|Einführung in Postgis (Folien, PDF)]]&lt;br /&gt;
* [[Media:Einfuehrung_postgresql_postgis.pdf|Einführung in PostgreSQL und Postgis. Geschichte, Features, Datenbankbegriffe und Beispiele. (Text, PDF)]]&lt;br /&gt;
* [[Media:Backup_Import_Export.pdf|DB-Administration: Anlegen von DB, Datensicherung und Maintenance. (Folien, PDF)]]&lt;br /&gt;
* [[Media:Postgis_Daten-Konvertierung.pdf|Daten-Konvertierung: COPY, pg_dump, shp2pgsql, ogr, u.a. (Folien, PDF)]]&lt;br /&gt;
* [[Media:Postgis_historisierung.pdf|Ansatz für die Historisierung von Tabellen in Postgis, (Text, 2008-05)]]&lt;br /&gt;
* [[Media:Postgis-case-studies.pdf|Postgis Case Studies - What is it, who is using it, and why? (Folien von Refractions Research, PDF)]]&lt;br /&gt;
* [[Media:Postgis-for-power-users.pdf|PostGIS - Tips for the PostGIS Power User: Queries, Tuning, etc. (Folien von Kevin Neufeld, Refractions Research 2007)]]&lt;br /&gt;
* [[Media:9dem_springer.pdf|Dimensionally Extended Nine-Intersection Model (DE-9IM), (Text von Christian Strobl, DLR, 2007)]]&lt;br /&gt;
* [http://www.bostongis.com/postgis_quickguide.bqg?outputformat=PDF Postgis-Quickguide/Cheatsheet (PDF File from BostonGIS)]&lt;br /&gt;
&lt;br /&gt;
== Uebungen am Seminartag und danach (Selbststudium) ==&lt;br /&gt;
&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;
== Uebungen-Sammlung ==&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Datei:Postgis_Daten-Konvertierung.pdf&amp;diff=18064</id>
		<title>Datei:Postgis Daten-Konvertierung.pdf</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Datei:Postgis_Daten-Konvertierung.pdf&amp;diff=18064"/>
		<updated>2008-05-27T15:04:00Z</updated>

		<summary type="html">&lt;p&gt;Neumann: Daten-Konvertierung: COPY, pg_dump, shp2pgsql, ogr, u.a.; Autor: S. Keller u. A. Neumann, 2008-05.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Daten-Konvertierung: COPY, pg_dump, shp2pgsql, ogr, u.a.; Autor: S. Keller u. A. Neumann, 2008-05.&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=18063</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=18063"/>
		<updated>2008-05-27T13:20:49Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Dokumente/Unterlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
* [http://gis.hsr.ch/index.php?option=com_content&amp;amp;task=view&amp;amp;id=182&amp;amp;Itemid=150 UNIGIS-Tag Schweiz]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Browser&lt;br /&gt;
* TextPad, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Dokumente/Unterlagen ==&lt;br /&gt;
* [[Media:Postgis_einfuehrung_2008.pdf|Einführung in Postgis (Folien, PDF)]]&lt;br /&gt;
* [[Media:Einfuehrung_postgresql_postgis.pdf|Einführung in PostgreSQL und Postgis. Geschichte, Features, Datenbankbegriffe und Beispiele. (Text, PDF)]]&lt;br /&gt;
* [[Media:Backup_Import_Export.pdf|DB-Administration: Anlegen von DB, Datensicherung und Maintenance. (Folien, PDF)]]&lt;br /&gt;
* [[Media:Postgis_historisierung.pdf|Ansatz für die Historisierung von Tabellen in Postgis, (Text, 2008-05)]]&lt;br /&gt;
* [[Media:Postgis-case-studies.pdf|Postgis Case Studies - What is it, who is using it, and why? (Folien von Refractions Research, PDF)]]&lt;br /&gt;
* [[Media:Postgis-for-power-users.pdf|PostGIS - Tips for the PostGIS Power User: Queries, Tuning, etc. (Folien von Kevin Neufeld, Refractions Research 2007)]]&lt;br /&gt;
* [[Media:9dem_springer.pdf|Dimensionally Extended Nine-Intersection Model (DE-9IM), (Text von Christian Strobl, DLR, 2007)]]&lt;br /&gt;
* [http://www.bostongis.com/postgis_quickguide.bqg?outputformat=PDF Postgis-Quickguide/Cheatsheet (PDF File from BostonGIS)]&lt;br /&gt;
&lt;br /&gt;
== Uebungen am Seminartag und danach (Selbststudium) ==&lt;br /&gt;
&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;
== Uebungen-Sammlung ==&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Datei:Backup_Import_Export.pdf&amp;diff=18062</id>
		<title>Datei:Backup Import Export.pdf</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Datei:Backup_Import_Export.pdf&amp;diff=18062"/>
		<updated>2008-05-27T13:18:47Z</updated>

		<summary type="html">&lt;p&gt;Neumann: DB-Administration: Anlegen von DB, Datensicherung und Maintenance. Autor: S. Keller und A. Neumann, 2005-08.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DB-Administration: Anlegen von DB, Datensicherung und Maintenance. Autor: S. Keller und A. Neumann, 2005-08.&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=18051</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=18051"/>
		<updated>2008-05-27T07:32:01Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Dokumente/Unterlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
* [http://gis.hsr.ch/index.php?option=com_content&amp;amp;task=view&amp;amp;id=182&amp;amp;Itemid=150 UNIGIS-Tag Schweiz]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Browser&lt;br /&gt;
* TextPad, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Dokumente/Unterlagen ==&lt;br /&gt;
* [[Media:Postgis_einfuehrung_2008.pdf|Einführung in Postgis (Folien, PDF)]]&lt;br /&gt;
* [[Media:Einfuehrung_postgresql_postgis.pdf|Einführung in PostgreSQL und Postgis. Geschichte, Features, Datenbankbegriffe und Beispiele. (Text, PDF)]]&lt;br /&gt;
* [[Media:Postgis_historisierung.pdf|Ansatz für die Historisierung von Tabellen in Postgis, (Text, 2008-05)]]&lt;br /&gt;
* [[Media:Postgis-case-studies.pdf|Postgis Case Studies - What is it, who is using it, and why? (Folien von Refractions Research, PDF)]]&lt;br /&gt;
* [[Media:Postgis-for-power-users.pdf|PostGIS - Tips for the PostGIS Power User: Queries, Tuning, etc. (Folien von Kevin Neufeld, Refractions Research 2007)]]&lt;br /&gt;
* [[Media:9dem_springer.pdf|Dimensionally Extended Nine-Intersection Model (DE-9IM), (Text von Christian Strobl, DLR, 2007)]]&lt;br /&gt;
* [http://www.bostongis.com/postgis_quickguide.bqg?outputformat=PDF Postgis-Quickguide/Cheatsheet (PDF File from BostonGIS)]&lt;br /&gt;
&lt;br /&gt;
== Uebungen am Seminartag und danach (Selbststudium) ==&lt;br /&gt;
&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;
== Uebungen-Sammlung ==&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Datei:Postgis_historisierung.pdf&amp;diff=18050</id>
		<title>Datei:Postgis historisierung.pdf</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Datei:Postgis_historisierung.pdf&amp;diff=18050"/>
		<updated>2008-05-27T07:29:31Z</updated>

		<summary type="html">&lt;p&gt;Neumann: Ansatz für die Historisierung von Tabellen in Postgis. Stand 2008-05. Autor: A. Neumann&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ansatz für die Historisierung von Tabellen in Postgis. Stand 2008-05. Autor: A. Neumann&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17991</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=17991"/>
		<updated>2008-05-23T14:50:35Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Abgegebene Dokumente/Unterlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Abgegebene Dokumente/Unterlagen ==&lt;br /&gt;
* [[Media:Postgis_einfuehrung_2008.pdf|Einführung in Postgis (Folien, PDF)]]&lt;br /&gt;
* [[Media:Einfuehrung_postgresql_postgis.pdf|Einführung in PostgreSQL und Postgis. Geschichte, Features, Datenbankbegriffe und Beispiele. (Text, PDF)]]&lt;br /&gt;
* [[Media:Postgis-case-studies.pdf|Postgis Case Studies - What is it, who is using it, and why? (Folien von Refractions Research, PDF)]]&lt;br /&gt;
* [[Media:Postgis-for-power-users.pdf|PostGIS - Tips for the PostGIS Power User: Queries, Tuning, etc. (Folien von Kevin Neufeld, Refractions Research 2007)]]&lt;br /&gt;
* [[Media:9dem_springer.pdf|Dimensionally Extended Nine-Intersection Model (DE-9IM), (Text von Christian Strobl, DLR, 2007)]]&lt;br /&gt;
* [http://www.bostongis.com/postgis_quickguide.bqg?outputformat=PDF Postgis-Quickguide/Cheatsheet (PDF File from BostonGIS)]&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
Teilnehmer/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Datei:Einfuehrung_postgresql_postgis.pdf&amp;diff=17990</id>
		<title>Datei:Einfuehrung postgresql postgis.pdf</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Datei:Einfuehrung_postgresql_postgis.pdf&amp;diff=17990"/>
		<updated>2008-05-23T14:48:41Z</updated>

		<summary type="html">&lt;p&gt;Neumann: Einführung in PostgreSQL und Postgis. Geschichte, Features, Datenbankbegriffe und Beispiele. Autor: A. Neumann 2007-2008.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einführung in PostgreSQL und Postgis. Geschichte, Features, Datenbankbegriffe und Beispiele. Autor: A. Neumann 2007-2008.&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17974</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=17974"/>
		<updated>2008-05-22T16:04:43Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Abgegebene Dokumente/Unterlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Abgegebene Dokumente/Unterlagen ==&lt;br /&gt;
* [[Media:Postgis_einfuehrung_2008.pdf|Einführung in Postgis (Folien, PDF)]]&lt;br /&gt;
* [[Media:Postgis-case-studies.pdf|Postgis Case Studies - What is it, who is using it, and why? (Folien von Refractions Research, PDF)]]&lt;br /&gt;
* [[Media:Postgis-for-power-users.pdf|PostGIS - Tips for the PostGIS Power User: Queries, Tuning, etc. (Folien von Kevin Neufeld, Refractions Research 2007)]]&lt;br /&gt;
* [[Media:9dem_springer.pdf|Dimensionally Extended Nine-Intersection Model (DE-9IM), (Text von Christian Strobl, DLR, 2007)]]&lt;br /&gt;
* [http://www.bostongis.com/postgis_quickguide.bqg?outputformat=PDF Postgis-Quickguide/Cheatsheet (PDF File from BostonGIS)]&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
Teilnehmer/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17973</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=17973"/>
		<updated>2008-05-22T15:51:59Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Abgegebene Dokumente/Unterlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Abgegebene Dokumente/Unterlagen ==&lt;br /&gt;
* [[Media:Postgis_einfuehrung_2008.pdf|Einführung in Postgis (Folien, PDF)]]&lt;br /&gt;
* [[Media:Postgis-case-studies.pdf|Postgis Case Studies - What is it, who is using it, and why? (Folien von Refractions Research, PDF)]]&lt;br /&gt;
* [[Media:Postgis-for-power-users.pdf|PostGIS - Tips for the PostGIS Power User: Queries, Tuning, etc. (Folien von Kevin Neufeld, Refractions Research 2007)]]&lt;br /&gt;
* [[Media:9dem_springer.pdf|Dimensionally Extended Nine-Intersection Model (DE-9IM), (Text von Christian Strobl, DLR, 2007)]]&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
Teilnehmer/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Datei:9dem_springer.pdf&amp;diff=17972</id>
		<title>Datei:9dem springer.pdf</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Datei:9dem_springer.pdf&amp;diff=17972"/>
		<updated>2008-05-22T15:49:09Z</updated>

		<summary type="html">&lt;p&gt;Neumann: Dimensionally Extended Nine-Intersection Model (DE-9IM), Autor: Christian Strobl&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dimensionally Extended Nine-Intersection Model (DE-9IM), Autor: Christian Strobl&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17971</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=17971"/>
		<updated>2008-05-22T15:10:26Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Abgegebene Dokumente/Unterlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Abgegebene Dokumente/Unterlagen ==&lt;br /&gt;
* [[Media:Postgis_einfuehrung_2008.pdf|Einführung in Postgis (Folien, PDF)]]&lt;br /&gt;
* [[Media:Postgis-case-studies.pdf|Postgis Case Studies - What is it, who is using it, and why? (Folien von Refractions Research, PDF)]]&lt;br /&gt;
* [[Media:Postgis-for-power-users.pdf|PostGIS - Tips for the PostGIS Power User: Queries, Tuning, etc. (Folien von Kevin Neufeld, Refractions Research 2007)]]&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
Teilnehmer/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Datei:Postgis-for-power-users.pdf&amp;diff=17970</id>
		<title>Datei:Postgis-for-power-users.pdf</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Datei:Postgis-for-power-users.pdf&amp;diff=17970"/>
		<updated>2008-05-22T15:09:11Z</updated>

		<summary type="html">&lt;p&gt;Neumann: PostGIS - Tips for the PostGIS Power User: Queries, Tuning, etc. Autor: Kevin Neufeld, Refractions Research 2007.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PostGIS - Tips for the PostGIS Power User: Queries, Tuning, etc. Autor: Kevin Neufeld, Refractions Research 2007.&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Datei:Postgis_einfuehrung_2008.pdf&amp;diff=17969</id>
		<title>Datei:Postgis einfuehrung 2008.pdf</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Datei:Postgis_einfuehrung_2008.pdf&amp;diff=17969"/>
		<updated>2008-05-22T15:05:29Z</updated>

		<summary type="html">&lt;p&gt;Neumann: hat eine neue Version von „Bild:Postgis einfuehrung 2008.pdf“ hochgeladen: PostGIS-Einführung, Architektur und Funktionen; Autor: A. Neumann, 2008.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Folien zu Postgis-Einführung, Kurs 2008 - A. Neumann&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17968</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=17968"/>
		<updated>2008-05-22T14:57:32Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Abgegebene Dokumente/Unterlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Abgegebene Dokumente/Unterlagen ==&lt;br /&gt;
* [[Media:Postgis_einfuehrung_2008.pdf|Einführung in Postgis (Folien, PDF)]]&lt;br /&gt;
* [[Media:Postgis-case-studies.pdf|Postgis Case Studies - What is it, who is using it, and why? (Folien von Refractions Research, PDF)]]&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
Teilnehmer/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Datei:Postgis-case-studies.pdf&amp;diff=17967</id>
		<title>Datei:Postgis-case-studies.pdf</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Datei:Postgis-case-studies.pdf&amp;diff=17967"/>
		<updated>2008-05-22T14:55:46Z</updated>

		<summary type="html">&lt;p&gt;Neumann: Postgis Case Studies - What is it, who is using it, and why? - Autor: Refractions Research, 2007.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Postgis Case Studies - What is it, who is using it, and why? - Autor: Refractions Research, 2007.&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17966</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=17966"/>
		<updated>2008-05-22T14:54:16Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Abgegebene Dokumente/Unterlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Abgegebene Dokumente/Unterlagen ==&lt;br /&gt;
* [[Media:Postgis_einfuehrung_2008.pdf|Einführung in Postgis (Folien, PDF)]]&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
Teilnehmer/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17965</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=17965"/>
		<updated>2008-05-22T14:21:54Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Abgegebene Dokumente/Unterlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Abgegebene Dokumente/Unterlagen ==&lt;br /&gt;
[[Media:Postgis_einfuehrung_2008.pdf|Einführung in Postgis (Folien, PDF)]]&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
Teilnehmer/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17964</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=17964"/>
		<updated>2008-05-22T14:19:55Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Abgegebene Dokumente/Unterlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Abgegebene Dokumente/Unterlagen ==&lt;br /&gt;
[[Media:Postgis_einfuehrung_2008.pdf]Einführung in Postgis (Folien, PDF)]&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
Teilnehmer/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17963</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=17963"/>
		<updated>2008-05-22T14:19:32Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Abgegebene Dokumente/Unterlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Abgegebene Dokumente/Unterlagen ==&lt;br /&gt;
[[Media:Postgis_einfuehrung_2008.pdf:Einführung in Postgis (Folien, PDF)]]&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
Teilnehmer/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17962</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=17962"/>
		<updated>2008-05-22T14:18:01Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Abgegebene Dokumente/Unterlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Abgegebene Dokumente/Unterlagen ==&lt;br /&gt;
[[Media:Postgis_einfuehrung_2008.pdf]]&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
Teilnehmer/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17961</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=17961"/>
		<updated>2008-05-22T14:16:57Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Abgegebene Dokumente/Unterlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Abgegebene Dokumente/Unterlagen ==&lt;br /&gt;
[[Postgis_einfuehrung_2008.pdf]]&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
Teilnehmer/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Datei:Postgis_einfuehrung_2008.pdf&amp;diff=17960</id>
		<title>Datei:Postgis einfuehrung 2008.pdf</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Datei:Postgis_einfuehrung_2008.pdf&amp;diff=17960"/>
		<updated>2008-05-22T14:14:44Z</updated>

		<summary type="html">&lt;p&gt;Neumann: Folien zu Postgis-Einführung, Kurs 2008 - A. Neumann&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Folien zu Postgis-Einführung, Kurs 2008 - A. Neumann&lt;/div&gt;</summary>
		<author><name>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17954</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=17954"/>
		<updated>2008-05-22T10:01:42Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* PgAdmin3 - Graphische Schnittstelle zu PostgreSQL&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Abgegebene Dokumente/Unterlagen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
Teilnehmer/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17953</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=17953"/>
		<updated>2008-05-22T09:17:41Z</updated>

		<summary type="html">&lt;p&gt;Neumann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, o.ä.&lt;br /&gt;
* [[PostgreSQL]]/[[PostGIS]]&lt;br /&gt;
* [[OpenJUMP]]&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
* [[OGR]]&lt;br /&gt;
&lt;br /&gt;
== Abgegebene Dokumente/Unterlagen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Selbststudium ==&lt;br /&gt;
Teilnehmer/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17952</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=17952"/>
		<updated>2008-05-22T09:16:17Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Selbststudium */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, 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/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Kurs_PostGIS_Einf%C3%BChrung&amp;diff=17951</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=17951"/>
		<updated>2008-05-22T09:15:59Z</updated>

		<summary type="html">&lt;p&gt;Neumann: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GISpunkt/UNIGIS-Seminar: Einführung in PostGIS/PostgreSQL (Kürzel Sem_PostGIS)&lt;br /&gt;
&lt;br /&gt;
  Nächste Durchführung: 30. Mai 2008, 9:00 bis 16:30 Uhr, PC-Raum 1.213 HSR.&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 Startseite, Programm und Anmeldung]&lt;br /&gt;
* [[UNIGIS-Tag Schweiz]]&lt;br /&gt;
* [[PostgreSQL]] und [[PostGIS]]&lt;br /&gt;
&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, Scintilla, 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/innen: (Vorlage [[Sem PostGIS Stefan]])&lt;br /&gt;
* [[Sem PostGIS Roger]]&lt;br /&gt;
* ([[Sem PostGIS Juliana]])&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. Juli 2008 (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 sowie ein &#039;Thema/Topic&#039; (d.h. eine thematisch zusammengehörende Ebene/Layers)&lt;br /&gt;
# Umprojizieren (z.B. CH1903-&amp;gt;WGS84)&lt;br /&gt;
# Als KML speichern&lt;br /&gt;
# Ausschnitt (Perimeter, definiert mittels BBox)&lt;br /&gt;
# Buffer rund um einen Ausschnitt&lt;br /&gt;
# Spatial Join (Overlay, Flächenverschnitt)&lt;br /&gt;
# Eigene Query, d.h. eine Anfrage gemäss eigenem Vorschlag (&#039;&#039;optional als Zusatz&#039;&#039;)&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>Neumann</name></author>
	</entry>
</feed>