[OBM Admin] grid modul
Bán Miklós
banm at vocs.unideb.hu
Wed Nov 21 08:21:14 CET 2018
Kapcsolódó SQL lekérdezés példa beállítás:
SELECT d.obm_id, %grid_geometry% AS obm_geometry %selected%
FROM %F%dinpi d%F%
%grid_join%
%rules_join%
%taxon_join%
%morefilter%
WHERE %geometry_type% %envelope% %qstr%
On Mon, 19 Nov 2018 16:29:05 +0100
Bán Miklós <banm at vocs.unideb.hu> wrote:
> Sziasztok,
>
> a grid modulhoz némi tutorial:
>
> Beállítás admin felületen (projekt admin -> modulok):
>
> 2x hozzáadtam, azaz két sorban szerepel egymás alatt a modul az alábbi
> beállításokkal:
>
> grid_view (everybody):
> layer_options:utm_10 (polygon_layer),utm_100 (polygon_layer)
>
> grid_view (logined users):
> layer_options:kef_5 (polygon_layer), utm_2.5 (polygon_layer), utm_10
> (polygon_layer), utm_100 (polygon_layer), original
> (point_layer,polygon_layer)
>
> Azért van kétszer, mert más grid opciók elérhetők a bejelentkezett
> felhasználóknak és a többieknek.
>
> Az opciók egyesével az engedélyezett, elérhető gridek. A legelső az
> alapértelmezett grid. Az opciók felépítése a következő: grid-neve
> (mapserver réteg név ahol megjelenik). A grid neve a
> projekttabla_qgrids tábla egyes oszlopainak a neve.
>
> A fenti példában látszik, hogy az original grid esetén, ami az eredeti
> geometriák megjelenítését jelenti két mapserver réteget is használ,
> mivel itt pont és polygon geometriák is vannak, a többi esetben csak
> egy polygon réteget használ.
>
> .._qgrids tábla felépítésére egy példa:
>
>
> CREATE TABLE dinpi_qgrids (
> row_id integer NOT NULL,
> kef_5 geometry,
> kef_10 geometry
> "utm_2.5" geometry,
> utm_10 geometry,
> utm_100 geometry,
> original geometry,
> );
>
> COMMENT ON COLUMN dinpi_qgrids.kef_5 IS 'KEF 5x5';
> COMMENT ON COLUMN dinpi_qgrids.kef_10 IS 'KEF 10x10';
> COMMENT ON COLUMN dinpi_qgrids."utm_2.5" IS 'UTM 2.5';
> COMMENT ON COLUMN dinpi_qgrids.utm_10 IS 'UTM 10';
> COMMENT ON COLUMN dinpi_qgrids.utm_100 IS 'UTM 100';
> COMMENT ON COLUMN dinpi_qgrids.original IS 'original';
>
>
> ALTER TABLE ONLY dinpi_qgrids
> ADD CONSTRAINT dinpi_qgrids_pkey PRIMARY KEY (row_id);
>
>
> Az oszlop megjegyzéseknek nagy jelentősége van, mert ezeket írja ki a
> modul a kiválasztó listába mint címke, amivel lehet gridet választani.
>
> A grideket egy trigger írja be a táblába amit egyedileg módosítani
> kell, de ez egy jó kiindulás:
>
>
> BEGIN
>
> IF tg_op = 'INSERT' THEN
>
> EXECUTE format('INSERT INTO %I_qgrids (row_id,original) SELECT
> %L,%L::geometry',TG_TABLE_NAME,NEW.obm_id,NEW.obm_geometry);
>
> EXECUTE format('UPDATE %I_qgrids SET "kef_5" = foo.geom FROM (
> SELECT geometry AS geom
> FROM shared."kef_5x5"
> WHERE st_within(%L::geometry,geometry)
> ) as foo WHERE
> row_id=%L',TG_TABLE_NAME,NEW.obm_geometry,NEW.obm_id);
>
> EXECUTE format('UPDATE %I_qgrids SET "kef_10" =
> st_transform(foo.geom,4326) FROM ( SELECT geom
> FROM shared."kef_10x10"
> WHERE st_within(%L::geometry,st_transform(geom,4326))
> ) as foo WHERE
> row_id=%L',TG_TABLE_NAME,NEW.obm_geometry,NEW.obm_id);
>
> EXECUTE format('UPDATE %I_qgrids SET "utm_2.5" =
> st_transform(foo.geom,4326) FROM ( SELECT geometry as geom
> FROM shared."utm_2.5x2.5"
> WHERE st_within(%L::geometry,st_transform(geometry,4326))
> ) as foo WHERE
> row_id=%L',TG_TABLE_NAME,NEW.obm_geometry,NEW.obm_id);
>
> EXECUTE format('UPDATE %I_qgrids SET "utm_10" =
> st_transform(foo.geom,4326) FROM ( SELECT geom
> FROM shared."utm_10x10"
> WHERE st_within(%L::geometry,st_transform(geom,4326))
> ) as foo WHERE
> row_id=%L',TG_TABLE_NAME,NEW.obm_geometry,NEW.obm_id);
>
> EXECUTE format('UPDATE %I_qgrids SET "utm_100" =
> st_transform(foo.geom,4326) FROM ( SELECT geom
> FROM shared."utm_100x100"
> WHERE st_within(%L::geometry,st_transform(geom,4326))
> ) as foo WHERE
> row_id=%L',TG_TABLE_NAME,NEW.obm_geometry,NEW.obm_id);
>
> RETURN NEW;
> END IF;
>
> IF tg_op = 'UPDATE' THEN
>
> EXECUTE format('UPDATE %I_qgrids SET "original"=%L::geometry WHERE
> row_id=%L', TG_TABLE_NAME,NEW.obm_geometry,NEW.obm_id);
>
> EXECUTE format('UPDATE %I_qgrids SET "kef_5" = foo.geom FROM (
> SELECT geometry AS geom
> FROM shared."kef_5x5"
> WHERE st_within(%L::geometry,geometry)
> ) as foo WHERE
> row_id=%L',TG_TABLE_NAME,NEW.obm_geometry,NEW.obm_id);
>
> EXECUTE format('UPDATE %I_qgrids SET "kef_10" =
> st_transform(foo.geom,4326) FROM ( SELECT geom
> FROM shared."kef_10x10"
> WHERE st_within(%L::geometry,st_transform(geom,4326))
> ) as foo WHERE
> row_id=%L',TG_TABLE_NAME,NEW.obm_geometry,NEW.obm_id);
>
> EXECUTE format('UPDATE %I_qgrids SET "utm_2.5" =
> st_transform(foo.geom,4326) FROM ( SELECT geometry as geom
> FROM shared."utm_2.5x2.5"
> WHERE st_within(%L::geometry,st_transform(geometry,4326))
> ) as foo WHERE
> row_id=%L',TG_TABLE_NAME,NEW.obm_geometry,NEW.obm_id);
>
> EXECUTE format('UPDATE %I_qgrids SET "utm_10" =
> st_transform(foo.geom,4326) FROM ( SELECT geom
> FROM shared."utm_10x10"
> WHERE st_within(%L::geometry,st_transform(geom,4326))
> ) as foo WHERE
> row_id=%L',TG_TABLE_NAME,NEW.obm_geometry,NEW.obm_id);
>
> EXECUTE format('UPDATE %I_qgrids SET "utm_100" =
> st_transform(foo.geom,4326) FROM ( SELECT geom
> FROM shared."utm_100x100"
> WHERE st_within(%L::geometry,st_transform(geom,4326))
> ) as foo WHERE
> row_id=%L',TG_TABLE_NAME,NEW.obm_geometry,NEW.obm_id);
>
> RETURN NEW;
> END IF;
>
> IF tg_op = 'DELETE' THEN
> EXECUTE format('DELETE FROM %I_qgrids WHERE
> row_id=%L',TG_TABLE_NAME,OLD.obm_id); RETURN OLD;
> END IF;
>
> END;
>
--
Miklós Bán, PhD
MTA-DE 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
OpenBioMaps
https://openbiomaps.org
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
More information about the Administrator
mailing list