Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LAYER
- NAME "special_protection_areas_500m"
- CONNECTIONTYPE postgis
- CONNECTION "dbname=iShareDataNFNP_Live user=postgres password=spatial"
- DATA "wkb_geometry from (select * from at_gis_buffer_exclusive_intersect('address_polygons','uprn','%qstr%', 100, '_special_protection_areas', 'ogc_fid,wkb_geometry,spa_name') as (ogc_fid integer, wkb_geometry geometry, name character(255))) as results using unique ogc_fid using srid=27700"
- PROCESSING "CLOSE_CONNECTION=DEFER"
- METADATA
- "qstring_validation_pattern" "."
- "qstr_validation_pattern" "."
- END
- TYPE POLYGON
- STATUS OFF
- #LABELITEM "name"
- CLASS
- STYLE
- #for My House only
- END
- END
- END
- -- Function: at_gis_buffer_exclusive_intersect(text, text, text, integer, text, text)
- -- DROP FUNCTION at_gis_buffer_exclusive_intersect(text, text, text, integer, text, text);
- CREATE OR REPLACE FUNCTION at_gis_buffer_exclusive_intersect(searchtable text, searchfield text, searchvalue text, searchbuffer integer, featuretable text, featurecolumns text)
- RETURNS SETOF record AS
- $BODY$
- declare
- sql text;
- rec_row record;
- begin
- sql := 'select '||featurecolumns||' from "'||featuretable||'"
- where st_intersects(
- "'||featuretable||'".wkb_geometry,
- (
- select st_buffer(
- (
- select wkb_geometry
- from "'||searchtable||'"
- where "'||searchfield||'" = '''||searchvalue||'''
- ),
- '||searchbuffer||'
- )
- )
- ) except (
- select '||featurecolumns||'
- from "'||featuretable||'"
- where st_intersects(
- "'||featuretable||'".wkb_geometry,
- (
- select wkb_geometry
- from "'||searchtable||'"
- where "'||searchfield||'" = '''||searchvalue||'''
- )
- )
- )
- ';
- raise notice 'Trying: %', sql;
- for rec_row in execute sql loop
- return next rec_row;
- end loop;
- end;
- $BODY$
- LANGUAGE plpgsql VOLATILE
- COST 100
- ROWS 1000;
- ALTER FUNCTION at_gis_buffer_exclusive_intersect(text, text, text, integer, text, text) OWNER TO postgres;
- COMMENT ON FUNCTION at_gis_buffer_exclusive_intersect(text, text, text, integer, text, text) IS '
- Studio Additional parameters:
- ''searchtable'',''searchfield'',''searchvalue'',''searchbuffer'',''featurestable'',''featurescolumns''
- PostgreSQL usage: at_gis_buffer_exclusive_intersect($1 text, $2 text, $3 text, $4 int, $5 text, $6 text)
- $1 = Table to obtain search geometry
- $2 = Column to query for search geometry
- $3 = Value to filter for search geometry
- $4 = Buffer for search
- $5 = Table to search for intersecting features
- $6 = Columns to return from intersecting feature
- Returns: Features intersecting the buffer around a geometry that don''t also intersect the geometry itself';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement