Daha çox

Ən qısa yolu yaradın və tapın


Layihəmdə hər bir kəndin dəniz limanına marşrutu boyunca olan məsafəsini hesablamalıyam.

Bununla birlikdə, şəkildə gördüyünüz kimi (indi yer üçün silinir), bütün kəndlər onsuz da yollarla birləşdirilməyib, buna görə hər şeydən əvvəl hər kənddən yola ən qısa yolun necə yaradılacağını soruşmaq istəyirəm. 400-dən çox belə kənd olduğu üçün bu işi görmək üçün avtomatik bir yol axtarıram.

İkinci sualım, şəbəkədəki ən qısa yolu və məsafə bazasını necə tapmaq olar. Bunu da etmək üçün müəyyən python funksiyalarını işə salmaq kimi avtomatik bir yol axtarıram.


Birincisini "Analiz" dəki "Yaxın" alətindən və "Xətdən Xəttə" istifadə edərək etdim. "Near" yolda ən yaxın koordinatları yaradır və "XY to Line" kəndlərdən ən yaxın koordinatlara xətt çəkə bilər.

Hələ ikinci hissədən məyusam.

İlk cavabda user3338197 tərəfindən təklif olunan yolu istifadə etməyə çalışdım. Mövcud yolları və yaratdığım yolları bir şəkil şəklində birləşdirdim və bunun əsasında bir şəbəkə qurdum və dəyişmədən standart parametr olaraq qaldım (10.3 istifadə edirəm). Lakin, həmişə göstərir

Xəbərdarlıq: "Origins" də "Location 1" üçün "Hedefler" tapılmadı

və ya

Xəbərdarlıq: "Hadisələr" də "Yer 1" üçün "Təsisatlar" tapılmadı

Problemin nə olduğunu anlamağa çalışdım, buna görə "Yeni Rota" problemi keçirdim və belə bir nəticə əldə etdim:

[! [ekran görüntüsü2] [2]] [2]

[1]: http://i.stack.imgur.com/mg1uF.jpg "> http://i.stack.imgur.com/XTl7y.png">


Nöqtələrin cizgilərə birləşməsi ilə bağlı ilk şərh sizi ən yaxın yola aparacaq, lakin bu ərazi xərci nəzərə alınmayacaq (yəni meşədən və ya dağdan keçmək daha qısa bir məsafə ola bilər, ancaq daha uzun məsafədən çox uzun çəkəcəkdir) lakin daha asan səyahət olunan marşrut) Bunu şərh kimi etmək üçün sadəcə koordinat cütləriniz arasındakı bir evklidiya məsafəsi trig problemidir (yəni yolunuzun başlanğıcı, nöqtənizi ən yaxın yola bağladığınız yer, [x, y] və kənd mərkəzi [a, b]) http://www.cut-the-knot.org/pythagoras/DistanceFormula.shtml

Şəbəkə hissəsini həll etmək üçün yollardan bir şəbəkə verilənlər bazası yaratmalısınız. Bunu etdikdən sonra ən yaxın bir obyekt problemini həll edəcəksiniz. Bunu etmək üçün başlanğıc nöqtəniz olan müəssisənizi yaradırsınız. Sonra hadisələrinizi yükləyirsiniz, bu da son nöqtələrinizdir (səyahət etdiyiniz yer, yəni liman obyektləri) Sonra şəbəkə problemini həll edirsiniz. Quracağınız yığım (yol, mil ilə, metrlə ola bilər) ki, yol boyunca ümumi məsafəniz olacaqdır.

Bu təlimat onu izah etməyə kömək etməlidir - http://help.arcgis.com/en/arcgisdesktop/10.0/pdf/network-analyst-tutorial.pdf, başqa suallarınız varsa soruşun.


Bu sualın ikinci hissəsinə cavab vermək üçün ilk cavabımı redaktə etməyin və ya səhv olduğum halda başqa bir modun başlanmasının uyğun olub olmadığını bilmədim, lütfən nöqtəni düzəltmək üçün hərəkət edin, hər halda şəbəkə analitiki alətlər panelini yüklədikdən sonra ən yaxın bir obyekt yaradacaqsınız. problem. (ehtiyacınız varsa bunu necə etmək üçün əvvəllər göndərdiyim təlimata baxın) indi hadisəniz kənd olacaq

Kənddən ən yaxın yola qədər bir yol olmasını istəyirsinizsə, yol xüsusiyyət sinifini düzəltməlisiniz, yolu uzatmalı və ya yenisini etməlisiniz, sonra yenidən şəbəkə yaratmalı və yeni şəbəkə xüsusiyyətindən istifadə etməlisiniz. sinif. Bunu etsəniz, hadisəniz həqiqətən başlamaq istədiyiniz kənddə olacaq.

Dözümlülüklərinizi təyin etdiyinizdən əmin olun ki, 300 metr məsafədə ən yaxın yolu tapsın və ya obyektiniz tam olaraq yolda deyil.

Hadisə yerinizi seçdikdən sonra bütün dəniz limanları olacaq imkanlarınızı seçəcəksiniz. Beləliklə limandakı hər yolun sonunda bir tesis simgesini atın. Beləliklə, bir hadisəyə (kəndə) və dəniz limanlarının çoxsaylı obyektlərinə baxırsınız.

Analitik parametrlərini dəyişdirə və yığımınızı metr və ya km-də və ya hər hansı bir şəkildə təyin edə bilərsiniz. Maliyyəti və s. Burada da təyin edə bilərsiniz.

Sonra şəbəkə problemini həll edin. Bu, hər dəfə yalnız bir kənd üçün həll ediləcək, proqramın hər işi üçün yeni bir hadisə yaratmalı olacaqsınız. Sonra məzmununuzda həll edilmiş marşrutdakı atributları açın və məsafənizin yığılmasını göstərən bir sahə görəcəksiniz.

Budur yaxşı bir təlimat https://www.youtube.com/watch?v=Sh6Nb_Yaigw


Videoya baxın: MAKSİMUM TEST BANKI. Sinfin idarə edilməsi 31-58 arası (Oktyabr 2021).