[FOSSGIS-Talk] QGIS - kniffliges Beschriftungsproblem

Andreas Neumann a.neumann at carto.net
Fr Mär 30 10:53:16 CEST 2012


 Hallo,

 Ich gehe hier nicht in die Details über Postgis. Es gibt sicherlich 
 genügend Material auf dem Web das Postgis einführt. Für PostgreSQL 
 selber gibt es exzellente Dokumentation unter http://www.postgresql.org/ 
 und für Postgis unter http://www.postgis.org/

 Das Buch "Postgis in Action" von Regina Obe ist für Postgis-Einsteiger 
 unbedingt zu empfehlen. Man kann es auch als e-Book kaufen. Die Doku ist 
 auf englisch - aber es gibt ja heutzutage exzellente Übersetzungstools 
 wie translate.google.com

 Postgis kann man selbstverständlich lokal (auch unter Windows) 
 installieren. Für Windows gibt es derzeit nur eine 32bit-Version, diese 
 läuft aber auch unter 64bit Windows. Die Administration kann man über 
 pgadmin3 machen (graphisches Tool) und über das DB-Manager Plugin in 
 QGIS. Über DB-Manager kann man auch per drag and drop z.b. Shapefiles 
 einspielen in eine Datenbank.

 Zum Dokument 
 http://gis.uster.ch/dokumentation/publikationen/qgis-2011-was-gibt-es-neues-geomatik-schweiz-artikel/view 
 -

 Dabei geht es primär um Werterelationen, wie z.b. Code 0 im Attribut 
 "Material" der "Schacht"-Tabelle verweist auf die Tabelle 
 "Schacht_Material". Dort gibt es auch den Zahlencode und dann den 
 ausgeschriebenen Wert. Das funktioniert bereits in QGIS 1.9x (oder 
 vielleicht auch schon in QGIS 1.7) - aber das ist auch eine 
 1:1-Beziehung. Festgelegt wird diese Relation in den Layereigenschaften, 
 --> Felder tab --> Widgettyp "Werterelation" (Combobox).

 Es ist Arbeit im Gange für 1:n-Beziehungen, das wäre aber kein 
 richtiger Join, sondern das Einbetten eines Formulars in ein anderes mit 
 automatischer Filterung, also z.b. 1 Abwasserkanal hat mehrere 
 Videountersuchungen.

 Hoffe das hilft,
 Andreas


 On Fri, 30 Mar 2012 10:21:15 +0200 (CEST),  wrote:
> Hallo zusammen,
>
> ich danke Euch allen, daß Ihr Euch meines Problems annehmt!
>
> Zur Tabellen-BEZIEHUNG (Relation): es scheint ab Version 1.8 etwas 
> neues zu
> geben, wenn ich den allerletzen Absatz dieses Dokuments richtig 
> verstehe:
> 
> http://gis.uster.ch/dokumentation/publikationen/qgis-2011-was-gibt-es-neues-geomatik-schweiz-artikel/view
>
> (@ Andreas: stammt das Dokument evtl. von Dir?)
>
> Zu PostgreSQL: ich würde liebend gerne damit arbeiten, wenn ich nur
> wüßte, wie! Ich wüßte gern, wie ich sowas anlege, verwalte, auswerte.
> Muß ich dazu einen (Internet-)Server betreiben, oder kann ich sowas
> auch "auf Festplatte" ablegen (wie z.B. MS-Access)? Wie kriege ich
> das PostGIS "da drauf"? Kann ich vorhande Shapes einfach umwandeln?
> Was ist mit Raster-Daten? Und, und, und...
>
> Gibt es eine leicht verständliche Schritt-für-Schritt
> Anleitung (auf deutsch)?
>
> Grüße sendet Lars
>
>
>
> -----Ursprüngliche Nachricht-----
> Gesendet: Freitag, 30 März 2012 um 08:57:16 Uhr
> Von: "Andreas Neumann" <a.neumann at carto.net>
> An: fossgis-talk-liste at fossgis.de
> Betreff: Re: [FOSSGIS-Talk] QGIS - kniffliges Beschriftungsproblem
>  Hallo,
>
>  Mit PostgreSQL wäre das kein Problem.
>
>  Man macht entweder:
>  a) einen Join und dann ein GROUP BY oder
>  b) einen Subquery der alles in einen String zusammenfasst.
>
>  Zum aggregieren kann man die aggregate Funktionen array_agg() oder
>  string_agg() nehmen:
>  
> http://www.postgresql.org/docs/current/static/functions-aggregate.html
>
>  Ich mache das in Uster z.b. um alle Eigentümer und Adressen einer
>  Parzelle zu aggregieren. Das funktioniert gut.
>
>  Grüsse,
>  Andreas
>
>  On Fri, 30 Mar 2012 08:22:05 +0200,  wrote:
>> Hallo Lars,
>>
>> ich arbeite eigentlich ausschliesslich mit PostgreSQL/PostGIS, des
>> kann ich Dir zu OO keinen Tip geben, sondern nur sagen, wie das in
>> PostgreSQL gehen würde. Ich schliesse mich Lars Lingner an: Besteht
>> die Möglichkeit eine DB zu nutzen?
>> Das mit dem Laden als Vektorlayer wusste ich nicht (weil kein
>> dateibasiertes Arbeiten :)
>> QGIS 1.7 kann nur _ein_ Feld zur Beschriftung heranziehen, die
>> dev-Version erlaubt komplexe Ausdrücke zur Beschriftung (also auch
>> mehrere Felder).
>> Ich denke das von Dir beschriebene Verhalten der 1:n Beziehung
>> (Auswahlverhalten) ist nicht besonders schwer zu realisieren, von da
>> ist es aber ein weiter Weg zur Beschriftung, denn die Beschriftung
>> kann nur auf Felder der Tabelle des Layers erfolgen, nicht auf 
>> Felder
>> in anderen Tabellen. Durch die 1:1 - Verknüpfung werden Felder einer
>> anderen Tabelle quasi zum Bestandteil der entsprechenden Layer, 
>> darum
>> geht das hier.
>>
>> Am 29.03.2012 22:01, schrieb dezentech at web.de:
>>> Hallo Bernhard,
>>>
>>> danke für die Tips.
>>>
>>> Das Wort "Pivottabelle" habe ich das letzte Mal vor ca. 15 Jahren
>>> gehört... Mit Excel kann man damit Auswertungen aufgrund
>>> verschiedener
>>> Parameter machen. Jedoch ist es mir nicht gelungen, auf Basis der
>>> eindeutigen Hausnummer, die Namen transponiert in die gleiche Zeile
>>> hintereinander zu schreiben... Wie läuft denn sowas mit OpenOffice?
>>>
>>> Ich habe zwischenzeitlich entdeckt, daß man in QGIS geometrielose
>>> Tabellen (csv) einladen kann: Add Vector Layer - Dateityp "csv". 
>>> Für
>>> ein
>>> Join würde das also gehen (wenn ich denn diese Pivot-Sache
>>> hinkriegen
>>> würde...).
>>>
>>> Jedoch, glaube ich, daß man keine VERKNÜPFUNG (1:1) sondern eine
>>> BEZIEHUNG (1:n) zwischen beiden Tabellen herstellen muß. Ich kenne
>>> sowas
>>> noch aus alten ESRI ArcInfo Zeiten. Wahrscheinlich müßte in QGIS
>>> dafür
>>> ein Plugin geschrieben werden, sofern es nicht schon eins gibt, das
>>> ich
>>> nicht finde...
>>>
>>> BEZIEHUNG heißt, daß die Attributtabelle meines Häuser-Shape-Layers
>>> so
>>> bleibt, wie sie ist. Die geometrielose Tabelle wird in das Projekt
>>> hinzugeladen. Wenn man nun eine Beziehung aufgrund einer 
>>> eindeutigen
>>> Spalte (hier: Hausnummer) zwischen beiden herstellt, dann kann man
>>> z.B.
>>> die Haus-Nr. 1 des Shape-Files markieren und in der Namen-Tabelle
>>> werden
>>> alle Zeilen mit der gleichen Hausnummer ebenfalls markiert. Und
>>> umgekehrt kann man einen Namen in der Tabelle markieren und QGIS
>>> markiert das entsprechende Shape-Objekt.
>>>
>>> Wenn man es schafft, solche Beziehungen in QGIS herzustellen, dann
>>> dürfte es (meiner laienhaften Meinung nach) nicht mehr so schwer
>>> sein,
>>> die Beschriftung der Shape-Objekte anhand einer auszuwählenden
>>> Spalte
>>> (z.B. Name oder Vorname) der geometrielosen Tabelle ausführen zu
>>> lassen,
>>> so daß alle zur Hausnummer 1 in Spalte "Name" gehörenden Namen
>>> ausgegeben werden.
>>>
>>> Was sagen die Experten dazu?
>>>
>>> Grüße sendet Lars
>>>
>>>
>>> bernhard.stroebl at jena.de schrieb:
>>>> Hallo,
>>>>
>>>> QGIS kann keine 1:n Joins (wie sollte das auch gehen? dann müssten
>>>> ja
>>>> die Polygone verfielfacht werden). Du mußt Deine Exceltabelle also
>>>> so
>>>> umstrukturieren, dass Du einen 1:1 Join machen kannst.
>>>> Ich würde es ungefähr folgendermassen probieren (nicht getestet):
>>>> eine
>>>> Pivottabelle machen (ich kenne Excel nicht, vermute aber mal, dass
>>>> das
>>>> darin geht, d.h. Spalte1 = hnr, spalte2 = Name1, spalte3 = Name2
>>>> usw.)
>>>> Einladen kannst Du nur csv-Tabellen, Du musst das Ergebnis also 
>>>> als
>>>> csv abspeichern. Ich glaube, dass Du auch eine x und eine y-Spalte
>>>> anlegen mußt, kannst Du irgendwas reinschreiben, denn QGIS lädt,
>>>> soweit ich weiss, keine geometrielosen Tabellen von csv. Dann 
>>>> alles
>>>> als Shapedatei abspeichern, ein neues Feld anlegen "Beschriftung"
>>>> und
>>>> mit dem Feldrechner name1 || ' ' || name2 usw. darin eintragen.
>>>>
>>>> viel Erfolg
>>>>
>>>> Bernhard
>>>>
>>>>
>>>>
>>>> Am 29.03.2012 09:03, schrieb dezentech at web.de:
>>>>> Hallo zusammen,
>>>>>
>>>>> ich habe in QGIS ein Polygon-Shape mit 10 Grundflächen von
>>>>> Mehrfamilienhäusern einer Straße. Jedes Mehrfamilienhaus hat als
>>>>> Attributwert eine eindeutige Hausnummer (1 bis 10). Und ich habe
>>>>> eine
>>>>> geometrielose Tabelle (Excel) mit 50 Namen. Zu jedem Namen gibt 
>>>>> es
>>>>> die
>>>>> Hausnummer (1 bis 10), in der diese Person wohnt. In allen 
>>>>> Häusern
>>>>> wohnen unterschiedliche Mengen von Namen, mal 3, mal 5, mal 8 
>>>>> usw.
>>>>>
>>>>> Ziel ist, die Polygone mit genau den Namen zu beschriften, die in
>>>>> den
>>>>> jeweiligen Hausnummern wohnen. Das bedeutet, daß jedes Haus
>>>>> unterschiedliche Anzahlen von Namen beinhaltet.
>>>>>
>>>>> Wer hat eine Idee, wie ich
>>>>> 1. eine geometrielose Tabelle in QGIS einladen kann,
>>>>> 2. eine Verknüpfung zwischen dem Shape (mit 10 Objekten) und der
>>>>> Namentabelle (mit 50 Objekten) herstellen kann,
>>>>> 3. die Shapes entsprechend beschriften kann.
>>>>>
>>>>> Danke für Eure Hinweise im Voraus!
>>>>>
>>>>> Grüße sendet Lars
>>>>> _______________________________________________
>>>>> FOSSGIS-Talk-Liste mailing list
>>>>> FOSSGIS-Talk-Liste at fossgis.de
>>>>> https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
>>>>>
>>>>>
>>>>> ________ Information from NOD32 ________
>>>>> This message was checked by NOD32 Antivirus System for Linux Mail
>>>>> Server.
>>>>> http://www.nod32.com
>>>>
>>>>
>>>> ________ Information from NOD32 ________
>>>> This message was checked by NOD32 Antivirus System for Linux Mail
>>>> Server.
>>>> http://www.nod32.com
>>>>
>>>
>>>
>>> ________ Information from NOD32 ________
>>> This message was checked by NOD32 Antivirus System for Linux Mail
>>> Server.
>>> http://www.nod32.com
>>
>>
>>
>> ________ Information from NOD32 ________
>> This message was checked by NOD32 Antivirus System for Linux Mail
>> Server.
>> http://www.nod32.com
>> _______________________________________________
>> FOSSGIS-Talk-Liste mailing list
>> FOSSGIS-Talk-Liste at fossgis.de
>> https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste

-- 
 --
 Andreas Neumann
 Böschacherstrasse 10A
 8624 Grüt (Gossau ZH)
 Switzerland