如何在交叉路口将OSM道路分割为单个路段?
我想使用OpenStreetMap数据创建一个用于pgRouting的道路网络。我从GeoFabrik将shapefile加载到Postgres表中(启用了PostGIS)。但是,我遇到的一个问题是道路并不总是在十字路口处终止,因此我决定在每个十字路口或十字路口将其全部拆分。 要找出所有地方的道路交叉或相交我用下面的interesections SQL(类似于以前的问题): CREATE TABLE split_points as SELECT DISTINCT ST_GeometryN(ST_Intersection(a.geom, b.geom),1) as geom FROM roads as a, roads as b WHERE ST_Touches(a.geom, b.geom) OR ST_Crosses(a.geom, b.geom) AND a.gid != b.gid GROUP BY ST_Intersection(a.geom, b.geom); 我现在想利用这些点来分路。我使用以下方法: CREATE TABLE split_roads as SELECT ST_GeomFromEWKB((ST_Dump(ST_Split(g.geom, blade.geom))).geom) As geom, generate_series(1,ST_NumGeometries((ST_Split(g.geom, blade.geom)))) as gid FROM split_points …