[FOSSGIS-Talk] Räumliche Abfrage mit QGIS-Ausdruckseditor

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[FOSSGIS-Talk] Räumliche Abfrage mit QGIS-Ausdruckseditor

Claas Leiner
Guten Abend,

ich interpretiere die Geometriefunktion des QGIS-Ausdruckseditor so,
dass man attributbezogene und räumliche Abfragen kombinieren kann. Was
ja bei bestimmten Fragestellungen praktisch ist.

Also versuchte ich testweise in einem Shapefile mit den hessischen
Gemeinden, sämtliche Gemeinden zu ermitteln, die an Gemeinden mit mehr
als 120000 Einwohnern angrenzen, selber jedoch über weniger Einwohner
verfügen. Die Spalte EW_EWZ enthält die Einwohnerzahl.

Ich habe es mit folgender Abfrage versucht:
--------
( touches(
  (Case when  "EW_EWZ" > 120000 then  $geometry End),
  (Case when  "EW_EWZ" < 120000 then  $geometry End))
) = 1
----------

Es wird kein Syntaxfehler angezeigt, jedoch wir auch nichts augegeben
und ausgewählt. Weder 1 für trifft zu noch 0 für trifft nicht zu.

Bin ich mit dieser Vorgegensweise vollkommen auf dem falschen Dampfer?

Mit besten Dank und vielen Grüßen,

Claas

--
....................................................................
FOSSGIS 2015, Die Konferenz für Open Source GIS mit OpenData und
OpenStreetMap in Münster!
11.-13. März 2015 im Schloss der Universität Münster
http://www.fossgis.de/konferenz/2015/

FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
GIS-Bereich und Freier Geodaten!
http://www.fossgis.de/             https://twitter.com/fossgis_eV

____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
[hidden email]
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
Reply | Threaded
Open this post in threaded view
|

Re: [FOSSGIS-Talk] Räumliche Abfrage mit QGIS-Ausdruckseditor

Jürgen E. Fischer
Moin Claas,

On Thu, 26. Feb 2015 at 21:15:00 +0100, Claas Leiner wrote:
> ( touches(
>  (Case when  "EW_EWZ" > 120000 then  $geometry End),
>  (Case when  "EW_EWZ" < 120000 then  $geometry End))
> ) = 1

- $geometry ist die Geometrie des aktuellen Features.
- CASE ohne zutreffendes WHEN und ohne ELSE ist NULL.
- Je nach EW_EWZ wird touches also mit der Geometrie als erstem und NULL als
  zweitem Argument aufgerufen oder umgekehrt und
- touches mit mit mindestens einem NULL-Argument ist auch wieder NULL.

Mit anderen Worten obiges ergibt immer NULL.

Um das zu erreichen was Du eigentlich vorhattest braucht man wohl eine
qgsfunction.

Sonst kann man die Geometriefunktionen aber z.B. mit konstanten Geometrien,
einzelnen Geometrien von über getFeature geholten Objekten oder mit
$atlasgeometry kombinieren.


Jürgen

--
Jürgen E. Fischer           norBIT GmbH             Tel. +49-4931-918175-31
Dipl.-Inf. (FH)             Rheinstraße 13          Fax. +49-4931-918175-50
Software Engineer           D-26506 Norden             http://www.norbit.de
QGIS release manager (PSC)  Germany                    IRC: jef on FreeNode                        
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 827 bytes
Beschreibung: Digital signature
URL         : <https://lists.fossgis.de/pipermail/fossgis-talk-liste/attachments/20150226/12617600/attachment.pgp>
--
....................................................................
FOSSGIS 2015, Die Konferenz für Open Source GIS mit OpenData und
OpenStreetMap in Münster!
11.-13. März 2015 im Schloss der Universität Münster
http://www.fossgis.de/konferenz/2015/

FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
GIS-Bereich und Freier Geodaten!
http://www.fossgis.de/             https://twitter.com/fossgis_eV

____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
[hidden email]
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
Reply | Threaded
Open this post in threaded view
|

Re: [FOSSGIS-Talk] Räumliche Abfrage mit QGIS-Ausdruckseditor

Claas Leiner-2
Moin Jürgen,

vielen Dank für den Hinweis und für das schnelle fixen des
Rasterrechners in der 2.8.1 Version.
Grüße,

Claas

Am 26.02.2015 um 23:05 schrieb Jürgen E. Fischer:

> Moin Claas,
>
> On Thu, 26. Feb 2015 at 21:15:00 +0100, Claas Leiner wrote:
>> ( touches(
>>   (Case when  "EW_EWZ" > 120000 then  $geometry End),
>>   (Case when  "EW_EWZ" < 120000 then  $geometry End))
>> ) = 1
>
> - $geometry ist die Geometrie des aktuellen Features.
> - CASE ohne zutreffendes WHEN und ohne ELSE ist NULL.
> - Je nach EW_EWZ wird touches also mit der Geometrie als erstem und NULL als
>    zweitem Argument aufgerufen oder umgekehrt und
> - touches mit mit mindestens einem NULL-Argument ist auch wieder NULL.
>
> Mit anderen Worten obiges ergibt immer NULL.
>
> Um das zu erreichen was Du eigentlich vorhattest braucht man wohl eine
> qgsfunction.
>
> Sonst kann man die Geometriefunktionen aber z.B. mit konstanten Geometrien,
> einzelnen Geometrien von über getFeature geholten Objekten oder mit
> $atlasgeometry kombinieren.
>
>
> Jürgen
>


-------------
--
....................................................................
FOSSGIS 2015, Die Konferenz für Open Source GIS mit OpenData und
OpenStreetMap in Münster!
11.-13. März 2015 im Schloss der Universität Münster
http://www.fossgis.de/konferenz/2015/

FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
GIS-Bereich und Freier Geodaten!
http://www.fossgis.de/             https://twitter.com/fossgis_eV

____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
[hidden email]
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste