postgis/topology/test/predicates.sql.in
2018-11-23 17:01:19 +00:00

131 lines
3.4 KiB
MySQL

-- This scripts add some features to the ones defined by load_topology.sql
-- and then runs some binary predicates on them.
--
#define DO_POINT_POINT_INTERSECTS 1
#define DO_POINT_LINE_INTERSECTS 1
#define DO_LINE_LINE_INTERSECTS 1
#define DO_POINT_POLYGON_INTERSECTS 1
#define DO_LINE_POLYGON_INTERSECTS 1
#define DO_POLYGON_POLYGON_INTERSECTS 1
#define DO_POINT_POINT_EQUALS 1
#define DO_LINE_LINE_EQUALS 1
#define DO_POLYGON_POLYGON_EQUALS 1
BEGIN;
#if DO_POINT_POINT_INTERSECTS
-- Detect intersections between traffic_signs
SELECT 'POINT/POINT INTERSECTS' as operation;
SELECT a.feature_name, b.feature_name FROM
features.traffic_signs a, features.traffic_signs b
WHERE a.fid < b.fid AND @SCHEMA@intersects(a.@COLUMN@, b.@COLUMN@);
#endif
#if DO_POINT_LINE_INTERSECTS
-- Detect intersections between city_streets and traffic_signs
SELECT 'POINT/LINE INTERSECTS' as operation;
SELECT a.feature_name, b.feature_name FROM
features.traffic_signs a, features.city_streets b
WHERE @SCHEMA@intersects(a.@COLUMN@, b.@COLUMN@);
#endif
#if DO_LINE_LINE_INTERSECTS
-- Detect intersections between city_streets
SELECT 'LINE/LINE INTERSECTS' as operation;
SELECT a.feature_name, b.feature_name FROM
features.city_streets a, features.city_streets b
WHERE a.fid < b.fid AND @SCHEMA@intersects(a.@COLUMN@, b.@COLUMN@);
#endif
#if DO_POINT_POLYGON_INTERSECTS
-- Detect intersections between traffic_signs and land_parcels
SELECT 'POINT/POLY INTERSECTS' as operation;
SELECT a.feature_name, b.feature_name FROM
features.traffic_signs a, features.land_parcels b
WHERE @SCHEMA@intersects(a.@COLUMN@, b.@COLUMN@);
#endif
#if DO_LINE_POLYGON_INTERSECTS
-- Detect intersections between city_streets and land_parcels
SELECT 'LINE/POLY INTERSECTS' as operation;
SELECT a.feature_name, b.feature_name FROM
features.city_streets a, features.land_parcels b
WHERE @SCHEMA@intersects(a.@COLUMN@, b.@COLUMN@);
#endif
#if DO_POLYGON_POLYGON_INTERSECTS
-- Detect intersections between land_parcels and land_parcels
SELECT 'POLY/POLY INTERSECTS' as operation;
SELECT a.feature_name, b.feature_name FROM
features.land_parcels a, features.land_parcels b
WHERE a.fid < b.fid AND @SCHEMA@intersects(a.@COLUMN@, b.@COLUMN@);
#endif
#if DO_POINT_POINT_EQUALS
SELECT 'POINT/POINT EQUALS' as operation;
SELECT a.feature_name, b.feature_name FROM
features.traffic_signs a, features.traffic_signs b
WHERE a.fid < b.fid AND @SCHEMA@equals(a.@COLUMN@, b.@COLUMN@);
#endif
#if DO_LINE_LINE_EQUALS
SELECT 'LINE/LINE EQUALS' as operation;
SELECT a.feature_name, b.feature_name FROM
features.city_streets a, features.city_streets b
WHERE a.fid < b.fid AND @SCHEMA@equals(a.@COLUMN@, b.@COLUMN@);
#endif
#if DO_POLYGON_POLYGON_EQUALS
SELECT 'POLYGON/POLYGON EQUALS' as operation;
SELECT a.feature_name, b.feature_name FROM
features.land_parcels a, features.land_parcels b
WHERE a.fid < b.fid AND @SCHEMA@equals(a.@COLUMN@, b.@COLUMN@);
#endif
SELECT 'POINT/POINT EQUALS (simple/hierarchical)' as operation;
SELECT a.feature_name, b.feature_name
FROM features.traffic_signs a, features.big_signs b
WHERE a.fid < b.fid AND @SCHEMA@equals(a.feature, b.feature)
ORDER BY a.feature_name;
SELECT 'POLYGON/POLYGON EQUALS (simple/hierarchical)' as operation;
SELECT a.feature_name, b.feature_name
FROM features.land_parcels a, features.big_parcels b
WHERE a.fid < b.fid AND @SCHEMA@equals(a.feature, b.feature)
ORDER BY a.feature_name;
END;