Advertisement
Guest User

Untitled

a guest
Aug 9th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.62 KB | None | 0 0
  1. LAYER
  2. NAME "special_protection_areas_500m"
  3. CONNECTIONTYPE postgis
  4. CONNECTION "dbname=iShareDataNFNP_Live user=postgres password=spatial"
  5. 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"
  6. PROCESSING "CLOSE_CONNECTION=DEFER"
  7. METADATA
  8. "qstring_validation_pattern" "."
  9. "qstr_validation_pattern" "."
  10. END
  11. TYPE POLYGON
  12. STATUS OFF
  13. #LABELITEM "name"
  14. CLASS
  15. STYLE
  16. #for My House only
  17. END
  18. END
  19. END
  20.  
  21.  
  22. -- Function: at_gis_buffer_exclusive_intersect(text, text, text, integer, text, text)
  23.  
  24. -- DROP FUNCTION at_gis_buffer_exclusive_intersect(text, text, text, integer, text, text);
  25.  
  26. CREATE OR REPLACE FUNCTION at_gis_buffer_exclusive_intersect(searchtable text, searchfield text, searchvalue text, searchbuffer integer, featuretable text, featurecolumns text)
  27. RETURNS SETOF record AS
  28. $BODY$
  29. declare
  30. sql text;
  31. rec_row record;
  32. begin
  33. sql := 'select '||featurecolumns||' from "'||featuretable||'"
  34. where st_intersects(
  35. "'||featuretable||'".wkb_geometry,
  36. (
  37. select st_buffer(
  38. (
  39. select wkb_geometry
  40. from "'||searchtable||'"
  41. where "'||searchfield||'" = '''||searchvalue||'''
  42. ),
  43. '||searchbuffer||'
  44. )
  45. )
  46. ) except (
  47. select '||featurecolumns||'
  48. from "'||featuretable||'"
  49. where st_intersects(
  50. "'||featuretable||'".wkb_geometry,
  51. (
  52. select wkb_geometry
  53. from "'||searchtable||'"
  54. where "'||searchfield||'" = '''||searchvalue||'''
  55. )
  56. )
  57. )
  58. ';
  59.  
  60. raise notice 'Trying: %', sql;
  61. for rec_row in execute sql loop
  62. return next rec_row;
  63. end loop;
  64. end;
  65. $BODY$
  66. LANGUAGE plpgsql VOLATILE
  67. COST 100
  68. ROWS 1000;
  69. ALTER FUNCTION at_gis_buffer_exclusive_intersect(text, text, text, integer, text, text) OWNER TO postgres;
  70. COMMENT ON FUNCTION at_gis_buffer_exclusive_intersect(text, text, text, integer, text, text) IS '
  71. Studio Additional parameters:
  72. ''searchtable'',''searchfield'',''searchvalue'',''searchbuffer'',''featurestable'',''featurescolumns''
  73.  
  74. PostgreSQL usage: at_gis_buffer_exclusive_intersect($1 text, $2 text, $3 text, $4 int, $5 text, $6 text)
  75. $1 = Table to obtain search geometry
  76. $2 = Column to query for search geometry
  77. $3 = Value to filter for search geometry
  78. $4 = Buffer for search
  79. $5 = Table to search for intersecting features
  80. $6 = Columns to return from intersecting feature
  81.  
  82. 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