[Devel] kapcsolt táblák

Bán Miklós banm at vocs.unideb.hu
Wed Apr 25 02:07:08 CEST 2018


Szia Gábor,

a botkerti odús projektben így néznek ki a lekérdezések  két táblához
(a 3.nak nincs térképi megjelenítése):


Odúk (főtábla, van geometriája):
--------------------------------
SELECT n.obm_geometry,n.obm_id,-2 AS date_part,nestbox_type
%selected%
FROM %F%public_nestbox_data n%F%
%J%LEFT JOIN public_nestbox_data_observations o ON
o.nestbox_id=n.obm_id%J% 
%taxon_join%
%morefilter%
WHERE %envelope% %qstr%


Megfigyelések (nincs geometriája):
----------------------------------
SELECT o.obm_id,n.obm_geometry,nestbox_type,
COALESCE(extract(days FROM (CURRENT_DATE-datum)::interval),'-1') as
date_part
%selected% 
FROM %F%public_nestbox_data_observations o%F%
%J%LEFT JOIN public_nestbox_data n ON (nestbox_id=n.obm_id) %J%
%taxon_join%
%morefilter% 
WHERE %envelope% %qstr%
ORDER BY datum ASC


Látszik, hogy mindkettő kapcsolt lekérdezés.
A megfigyelések tábla tartalmaz érdekesebb oszlopokat, amiket a térképi
megjelenítéshez használ: Az adatok időpontja alapján színezi a
pöttyöket (~ friss, pár napos, régebbi)

A mapserver réteg definícióban egy rétegben kezelem a két táblát
(lehetne külön is). 
Az odú táblában is legyártom a date_part oszlopot, hogy legyen
értéke a mapserver osztályok miatt, viszont az odú táblában is szereplő
nestbox_type ezzel a -2-es értékkel más színezéseket eredményez: Az
odúk típusai alapján lesz egy színezés.

A fő táblában azért van a JOIN, hogy minden odú lekérdezéssel azonnal
némi megfigyelési adathoz is hozzájussunk. Ezt az "additional_columns"
modul teszi lehetővé, amivel az adott lekérdezéshez felveszünk extra
oszlopokat (azaz ebből látszik ,hogy a JOIN-olt tábla oszlopai
automatikusan nem kerülnek vele a lekérdezésbe)
Az "additional_columns" paraméterezése: 
o.species
o.datum
o.comment

A SQL QUERY stringben látszik, hogy o az alias neve a kapcsolt
observation táblának.

Ez a három oszlop (species, datum, comment) megadása azt eredményezi,
hogy minden lekérdezett odúhoz ezek az oszlopok lekérdeződnek a JOIN
alapján az observation táblából. Ez az adat lapon szürke háttérrel
jelzetten és sosem szerkeszthető módon jelenik meg. A kis eredmény
táblázatban megtöbbszörözi az egyes odú sorokat. Eredmény id
listázásban nem okoz változst, de a listából kibontott részleteknél
ugyanúgy szürke háttérel a főtábla oszlopk alatt n-szer ismétlődve ott
vannak a megfigyelési adatok.



Alább a mapserver class beállítások:

   	CLASS
            NAME 'observations-new'
            EXPRESSION ([date_part]<2 and [date_part]>=0 and [selected]
   	= 0) STYLE
                SYMBOL "circle"
                SIZE 10.0
                OUTLINECOLOR 10 10 10
                #green
                COLOR 59 245 46
            END
        END
        CLASS
            NAME 'observations-recens' 
            EXPRESSION ([date_part]<6 and [date_part]>=2 and [selected]
   	= 0) STYLE
                SYMBOL "circle"
                SIZE 10.0
                # türkiz
                COLOR 23 235 255
                OUTLINECOLOR 30 30 30
                OUTLINEWIDTH 1
            END
        END
        CLASS
            NAME 'observations-old' 
            EXPRESSION ([date_part]>=6 and [selected] = 0)
            STYLE
                SYMBOL "circle"
                SIZE 10.0
                # orange
                COLOR 255 142 1
                OUTLINECOLOR 30 30 30
                OUTLINEWIDTH 1
            END
        END
        CLASS
            NAME 'observations-never' 
            EXPRESSION ([date_part]=-1 and [selected] = 0)
            STYLE
                SYMBOL "circle"
                SIZE 10.0
                # red
                COLOR 255 1 42
                OUTLINECOLOR 246 46 53
                OUTLINEWIDTH 1
            END
        END

        CLASS
            NAME 'nestbox-A' 
            EXPRESSION ([date_part]=-2 and "[nestbox_type]"="A" and
        [selected] = 0) STYLE
                SYMBOL "square"
                SIZE 11.0
                # halvány lila
                COLOR 228 130 202
                OUTLINECOLOR 30 30 30
                OUTLINEWIDTH 1
            END
        END
        CLASS
            NAME 'nestbox-B' 
            EXPRESSION ([date_part]=-2 and "[nestbox_type]"="B" and
        [selected] = 0) STYLE
                SYMBOL "square"
                SIZE 12.0
                # acélkék
                COLOR 69 125 185
                OUTLINECOLOR 30 30 30
                OUTLINEWIDTH 1
            END
        END 
        CLASS
            NAME 'nestbox-C' 
            EXPRESSION ([date_part]=-2 and "[nestbox_type]"="C" and
        [selected] = 0) STYLE
                SYMBOL "square"
                SIZE 12.0
                # sárga
                COLOR 255 250 161
                OUTLINECOLOR 30 30 30
                OUTLINEWIDTH 1
            END
        END 
        CLASS
            NAME 'nestbox-D' 
            EXPRESSION ([date_part]=-2 and "[nestbox_type]"="D" and
        [selected] = 0) STYLE
                SYMBOL "square"
                SIZE 15.0
                # lila
                COLOR 163 98 53
                OUTLINECOLOR 30 30 30
                OUTLINEWIDTH 1
            END
        END

        CLASS
            NAME 'nestbox' 
            EXPRESSION ([date_part]=-2 and NOT "[nestbox_type]" IN
        "A,B,C,D" and [selected] = 0) STYLE
                SYMBOL "square"
                SIZE 12.0
                # sötétkék
                COLOR 50 65 227
                OUTLINECOLOR 30 30 30
                OUTLINEWIDTH 1
            END
        END
        CLASS
            NAME 'selected_points'
            EXPRESSION ([date_part]=-2 and [selected] = 1) # selected /
        highlighted STYLE
                SYMBOL "square"
                SIZE 14.0
                COLOR 250 210 0
                OUTLINECOLOR 30 30 30
                OUTLINEWIDTH 2
            END
        END
        CLASS
            NAME 'selected_points'
            EXPRESSION ([date_part]!=-2 and [selected] = 1) #
        selected / highlighted STYLE
                SYMBOL "circle"
                SIZE 14.0
                COLOR 250 210 0
                OUTLINECOLOR 30 30 30
                OUTLINEWIDTH 2
            END
        END
    END #wms data point layer


üdv, Miki


-- 
Miklós Bán, PhD
MTA-DE "Lendület" Behavioural Ecology Research Group
Department of Evolutionary Zoology, University of Debrecen
H-4010 Debrecen, Egyetem tér 1.
Phone:  +36 52 512-900 ext. 62357
http://zoology.unideb.hu/@Miklos_Ban
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


More information about the Devel mailing list