[postgis-users] Checking Road Network Topology
Miller, Stephan
smille12 at harris.com
Tue Jan 20 11:45:47 PST 2015
All -
I am attempting to validate the topology of a dense road network ( 1.2 Million roads) modeled after http://blog.mathieu-leplatre.info/use-postgis-topologies-to-clean-up-road-networks.html from July 2013<http://blog.mathieu-leplatre.info/use-postgis-topologies-to-clean-up-road-networks.html%20from%20July%202013>. The code is given below:
-- HC_RoadTopologicalCheck
-- Drop the existing topology
SELECT topology.DropTopology('roads_topo');
SELECT topology.CreateTopology('roads_topo',4326, 0.000001, true);
SELECT topology.AddTopoGeometryColumn('roads_topo', 'fgcm', 'transportationgroundcrv', 'topo_shape', 'LINESTRING');
--UPDATE transportationgroundcrv SET topo_shape = topology.toTopoGeom(transportationgroundcrv.shape, 'roads_topo', 1, 1.0);
-- Encapsulate the UPDATE inside code that checks for errors
DO $$ DECLARE r record;
BEGIN
FOR r IN SELECT * FROM transportationgroundcrv loop
BEGIN
UPDATE transportationgroundcrv SET topo_shape = topology.toTopoGeom(transportationgroundcrv.shape, 'roads_topo', 1, 1.0)
WHERE r.objectid = r.objectid;
EXCEPTION
WHEN OTHERS THEN
RAISE WARNING 'Loading of record % failed: %', r.objectid, SQLERRM;
END;
END LOOP;
END$$;
Select * from ValidateTopology('roads_topo');
I am getting everything passing to the exception statement and all the records are being flagged with
WARNING: Loading of record 791456 failed: SQL/MM Spatial exception - curve not simple
Intermittently, I am getting the following error also.
WARNING: Loading of record 792591 failed: Spatial exception - geometry intersects edge 69612
Everything appears to be flagged as an error; the ValidateTopology call returns nothing.
Any insights or suggestions would be appreciated.
Steve
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20150120/2c136d86/attachment.html>
More information about the postgis-users
mailing list