Jak wyczyścić tak zły plik kształtu do routingu?


16

Usiłuję wyczyścić plik shapefile, aby był użyteczny do routingu z pgrouting, postgis, postgresql.

Tutaj skrzyżowanie wydaje się być połączone, ale kiedy powiększamy… Nie jest:

nie powiększony 1 powiększony 1

To samo tutaj:

nie powiększony 2 powiększony 2

Tutaj (jest powiększony maksymalnie) istnieją 2 sposoby, kiedy wydaje się, że jest jeden i tylko jeden jest podłączony:

powiększony maksymalnie o 2

Korzystam z atrybutu ID_vertex_id z różnymi tolerancjami oraz QGIS i PostGIS, ale nie wiem, co z niego korzystać.


Zastanawiam się: czy to naprawdę błędy? Na przykład obie sytuacje można wykorzystać do przedstawienia ulicy dwukierunkowej spotykającej się z ulicą jednokierunkową. Może to być krytyczny problem, ponieważ nie chcesz wprowadzać nowych błędów w celu wyeliminowania innych!
whuber

W rzeczywistości jest to po prostu strasznie zły plik kształtu, chcę bardzo prostego, nieukierunkowanego routingu, a to, co widzisz, jest bardzo przybliżone.
hokkos

Odpowiedzi:


12

Możesz użyć GRASS do czyszczenia. Myślę, że musisz złamać te wektory, usunąć duplikaty, a następnie je zrobić. Do tego służy narzędzie v.clean z opcjami break, rmdupl and snap.


4

W PostGIS spróbuj ST_SnapToGrid, aby przyciągnąć wierzchołki do wirtualnej siatki. Musisz wykonać jakąś pracę detektywistyczną, aby ustalić, jaką odległość przyciągania użyć. Może to być 0,01 (1 cm) lub 1,0 itd.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.