Daha çox

Pgrouting - açıq node faylı ilə topoloji yaradılması


Kompüter qurmağı öyrənərək sadə bir ictimai nəqliyyat marşrut mühərriki yaratmaq istərdim.

Sadə bir metro şəbəkəsindən başlayaraq (DC mənim vəziyyətimdə, aşağıda göstərilənlərə bax), @underdark-dan bu kimi layihələrdən sonra xətt həndəsələrini (LineStrings) və stansiya həndəsələrini (Nöqtələr) birləşdirmək istərdim!

Mənə aydın olmayan şey budur şəbəkə topologiyası yaratmaq üçün pgr_createTopology funksiyasına giriş kimi açıq stansiya geometrilərindən istifadə etməyin bir yolu varsa?

Stansiya yerləri ilə örtülmüş xətt həndəsəsinin ekran görüntüsü: .


Birbaşa pgr_createTopology ilə edə bilməzsiniz, ancaq yaradılan düyünü stansiyalara uyğunlaşdıra bilərsiniz. Bu çox dəqiq problemi yaxınlaşan kitabımızda işıqlandırırıq: http://locatepress.com/pgrouting

Yəni nə edərsən buna bənzər bir şey:

DƏYİŞDİRMƏ CƏDVƏLİ dc_stations SOLUNN ƏLAVƏ EDİN node_id tam ədədi; YENİLƏNİB dc_stations SET node_id = X.id dc_lines_vertices_pgr X WHERE ST_DWithin (dc_stations.geom, X.the_geom, 0.000001);

Yuxarıda göstərilən kod vahidlərinizin dərəcə olduğunu qəbul edir, yoxsa tolerantlığı artırmaq istərdiniz. Həm də asma qayıqlarınızın stansiya dayanacaqlarında artıq qırıldığını düşünür (hər stansiya dayanacağı bir kənarın başlanğıcı və ya sonudur). Əks təqdirdə stansiya qovşağı qovşaqlarındakı linestrings pozmaq lazımdır.


Videoya baxın: 2019 - Shortest path in the database and more with pgRouting (Oktyabr 2021).