두 개의 테이블을 생성하는 postgis 스크립트 세트가 있습니다. 하나는 점 세트 중 하나이고 두 번째는 그 주위를 둘러싸는 도로 세트입니다. 모든 데이터는 동일한 투영에 있으며 두 출력은 postgres 2.1이있는 postgres 9.2 테이블에 저장됩니다
도로 네트워크의 그라우팅 토폴로지가 생성되었으며 포인트 테이블에 가장 가까운 도로 구간이 포함 된 열이 있습니다.
그런 다음 최소 스패닝 트리와 같은 것을 사용하여 모든 지점을 연결하는 가장 작은 네트워크를 나타내는 도로 네트워크의 하위 집합을 생성하고 싶습니다. 도로 네트워크는 방향이 정해져 있지 않으며 비용은 단순히 경로 길이입니다.
v.net 모듈 제품군을 사용하여 QGIS / Grass에서이 작업을 수행 할 수 있지만 이상적으로이 최종 단계를 SQL로 유지하고 싶습니다.
나는 새로운 apspWarshall postgis 기능을 살펴 보았지만 전체 네트워크가 아닌 포인트를 연결하는 데 에너지를 집중시키는 방법에 대해 상실했습니다.
이것은 이것을 해결하기 위해 프레임 워크를 만들려고 모은 짧은 스크립트이지만 가장자리의 하위 집합으로 시작하기 위해 함수를 집중시킬 수있는 곳을 볼 수는 없습니다.
SELECT seq, id1 AS node, id2 AS edge, cost, the_geom
FROM pgr_apspWarshall('SELECT gid AS id,
source,
target,
st_length(the_geom) AS cost
FROM road_network
',
false, false
) AS tree
JOIN road_network As roads
ON tree.id2 = roads.gid
단일 경로 최단 경로 문제에서 함수는 시작과 끝을 요구하지만 모든 점에서 문제는 아닙니다. 마찬가지로 Grass에서도 v.net.spanningtree 및 v.net.steiner는 결합 된 네트워크로 작동 할 점과 선 집합을 기대합니다.
PostGIS 에서이 작업을 수행하는 방법에 대한 제안이 있습니까?