1. 程式人生 > >一個ArcGIS網路分析的最短路徑例子||A Network Analyst Shortest Route of ArcGIS

一個ArcGIS網路分析的最短路徑例子||A Network Analyst Shortest Route of ArcGIS

這是我前幾年利用ArcMap,ArcCatalog做的最短路徑查詢時候實現的步驟說明記錄,留作後用,時代久遠,很容易忘記,適當做個記錄算是個好習慣吧。

例子是以上海地鐵線路換乘的。

可以實現任意兩點之間的地鐵路線查詢。

主要內容:ArcMapArcCatalogNetwork Analyst模組最短路徑查詢。

原本是英文的,為了不讓以為是抄襲別人的,我只是部分修改為中文了。

1 Arcmap中畫地鐵線路圖(向量圖)

兩個層:線路層和站點層

線路層中注意不同線路交叉處,在可以換乘的位置,vertex需要snapping(捕捉)

上海地鐵線路圖

<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]-->

<!-- [if gte mso 10]>

2 Creating a geodatabase network dataset

Firstly, Create a file geodatabase( in Arccatalog);

Secondly, create a new feature dataset;

Thirdly, Import Feature Class, showed as :


<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>

Chose Any Vertex can get a junctionbetween different route.

It will be different,if Endpoint has been chosed.

3 Finding the best routeusing a network dataset


1)create new network dataset

Arccatalog中右擊線路層,newnetwork dataset


<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>

生成Line1_ND.ndLine1_ND_Jucntions檔案.

<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>

生成Network Analyst時候注意選擇網路生成的依據,路徑的ID or time?特別是對於需要換乘的情況,尤其要注意以路徑的ID為優先,對於步行或者不考慮換乘耽誤的時間,則應該以路程的時間消耗為第一選擇。

Field isID

<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>

2Add data

Arcmap的中,右擊add data,講Line1_ND.nd檔案新增。


<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>

3create New Route

<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>

The Network Analyst Window nowcontains empty lists ofStops, Routes and Barriers categories. Additionally, the table of contents contains anew Route Analysis Layer.


<!-- [if !mso]><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>


4Addingstops

網路工具欄


<!-- [if gte vml 1]> <![endif]-->

點選顯示網路工具欄中NetworkAnalyst Window

Stops選中

在地圖中標記任意兩個位置


<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>

<!-- [if !mso]><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>

5)產生路徑

點選sovle按鈕


<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if !mso]><!-- [if gte mso 10]>

6)其他例子

The Shortest Routemarked asgreen Line.


<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>

參考資料推薦:

輕鬆入門教程-ArcGIS Desktop.pdf

GIS軟體應用實驗指導書2006修定.pdf

Finding_Your_Way_with_ArcGIS_Network_Analyst.pdf

Network_Analyst_Tutorial.pdf

韓鵬《地理資訊系統開發――ArcObjects方法》

 以上資料,均可以直接載CSDN中搜索下載到。

//-----------------------------------------------------------

//歡迎批評指正,郵箱:[email protected]

//  QQ:30442301

//-----------------------------------------------------------

相關推薦

一個ArcGIS網路分析路徑例子||A Network Analyst Shortest Route of ArcGIS

這是我前幾年利用ArcMap,ArcCatalog做的最短路徑查詢時候實現的步驟說明記錄,留作後用,時代久遠,很容易忘記,適當做個記錄算是個好習慣吧。 例子是以上海地鐵線路換乘的。 可以實現任意兩點之間的地鐵路線查詢。 主要內容:ArcMap,ArcCatalog,Netw

ArcGIS API for Javascript4.8 路徑網路分析路徑查詢

程式碼是在官方demo上修改來的,官方的demo是需要裝置代理伺服器,才能顯示效果的,這裡我直接設定了ArcGIS Server允許跨域,所以不需要設定代理。 <!DOCTYPE html> <html> <head>

一個例子讓你明白一個演算法-Dijkstra(求源點到各頂點路徑

演算法思想 1.在一個圖中,把所有頂點分為兩個集合P,Q(P為最短路徑集合,Q為待選集合),用dis陣列儲存源點到各個頂點的最短路徑(到自身為0)。 2.初始化P集合,就是加入源點到該集合,並在ma

arcgis api for js入門開發系列十三地圖路徑分析

上一篇實現了demo的地圖列印,本篇新增地圖最短路徑分析,截圖如下: 具體實現的思路如下: 1.點選地圖獲取地名,呼叫了arcgis的地理編碼服務,關於地理編碼服務製作以及釋出章節,感興趣的請檢視這裡 點選地圖獲取地名的核心js程式碼: DCI.Route

arcgis for android 路徑分析 查詢路徑

ArcGIS for Android(10.1.1)只支援線上的網路分析,執行路徑分析可以通過RoutingTask類的solve方法來進行,通過給slove方法傳遞RoutingParameters型別的引數,可以最短路徑的查詢。而要成功執行路徑分析,就必須釋出網路分析

演算法分析與設計課程設計-Dijkstra路徑演算法

演算法分析與設計課程設計報告書         題目:Dijkstra最短路徑演算法 設計人:張欽穎 班級:14計科2班    學號:1414080901218   一、  

Dijkstra(從一個源點到其他各點的路徑

#include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 typedef struct { int vertex[MAXSIZE]; int edges[MAXSIZE][MAXSIZE]; }Gra

計算機演算法設計與分析 (四) 貪心演算法--單源路徑

1.Dijkstra演算法是解決單源最短路徑的一個貪心演算法。給定一個帶權有向圖G=(V,E),其中每條邊的權都是非負實數,另外,還給定V中的一個頂點,稱為源。現在要計算源到其他各個頂點的最短路長度。這裡的路的長度指的是路上各邊權之和。 Dijkstra演算法可

LeetCode : 743. 網路延遲時間(Network Delay Time)解答,有權路徑問題

743. 網路延遲時間 有 N 個網路節點,標記為 1 到 N。 給定一個列表 times,表示訊號經過 有向 邊的傳遞時間。 times[i] = (u, v, w),其中 u 是源節點,v 是目標節點, w 是一個訊號從源節點傳遞到目標節點的時間。 現在,我

迪傑斯特拉(Dijkstra)演算法--有向網路路徑

單源最短路徑問題是:對於給定的有向網路G=(V,E)及單個源點v,求v到G的其餘各頂點的最短路徑。 演算法的基本思想 a.初始時,S只包含源點,即S={v},v的距離為0。U包含除v外的其他頂點,即:U={其餘頂點},若v與U中頂點u有邊,則<u,v>

迪傑斯特拉(Dijkstra)演算法--無向網路路徑

與有向網路不同的是,無向網路的鄰接矩陣是對稱的,所以在構造鄰接矩陣的時候要注意。Dijkstra演算法的具體內容參照我上次寫的迪傑斯特拉(Dijstra)演算法——有向網路最短路徑 下面直接放程式碼和例項,以便更加理解使用。 #include<stdio.

Dijkstra演算法(一個節點到其他所有節點的路徑

Dijkstra(迪傑斯特拉)演算法是典型的單源最短路徑演算法,用於計算一個節點到其他所有節點的最短路徑。主要特點是以起始點為中心向外層層擴充套件,直到擴充套件到終點為止。Dijkstra演算法是很有代表性的最短路徑演算法,在很多專業課程中都作為基本內容有詳細的介紹,如資料

Dijkstra演算法--一個點到其餘點路徑

Dijkstra演算法 要求 求一個點(源點)到其餘各個頂點的最短路徑。 思路 先將源點到其餘各個點的路徑列出來dis[],找到最小值,這個最小值就是源點到這一點u的最短路徑,並標記已經找出,再以這個點開始,依次遍歷到其它點v,如果這個點u到

圖之從一個頂點到其餘各個頂點的路徑(有向圖)

目錄 從一個頂點到其餘各個頂點最短路徑的簡介 舉例以及詳細分析 程式碼塊 測試結果 從一個頂點到其餘各個頂點最短路徑的簡介(又名單元最短路徑) 1.定義概覽 Dijkstra(迪傑斯特拉)演算法是典型的單源最短路徑演算法,用於計算一個節點到其他所

Dijkstra演算法實現從一個源點到其他各點的路徑

最短路徑問題與現實生活中的問題息息相關,所以最短路徑問題一定要掌握,這是書上的介紹 怎麼理解呢?還是給個例子會比較清楚,比如下面這個圖: 初始時,集合s={a}(假設a為源點),t={b,c,d,e} 然後從t中選取到a路徑長度最短的頂點:

計算機網路之路由動態選擇路徑

路由選擇最短路徑背景: 因特網是全球性的網路,因特網內部又劃分為多個子網,專業名稱為自治系統(簡稱AS),自治系統內部有很多路由器,自治系統之間也有很多路由器。 路由器的主要工作是什麼? 答:為經過路由器的資料包找到一條最佳傳輸路徑,並將該資料有效地傳送到目的站點。。

路徑之Dijkstra演算法及例項分析

Dijkstra演算法迪科斯徹演算法 Dijkstra演算法描述為:假設用帶權鄰接矩陣來表示帶權有向圖。首先引進一個輔助向量D,它的每個分量D[i]表示當前所找到的從始點v到每個終點Vi的最短路徑。它的初始狀態為:若兩頂點之間有弧,則D[i]為弧上的權值;否則置D[i]為無

資料結構::迷宮(二)--棧的一個應用(求迷宮路徑

      上篇文章我們知道求解迷宮通路的方法,但是一個迷宮有時是不止一條出路,在這些出路中,我們如何找到最短的那一條,這就是我今天要說的迷宮最短路徑問題。 (此處使用的圖): 【先來分析有什麼解決方案:】 1、方法一:我們如果採用上章中遞迴的方式,將所走的路用2標記起來

迷宮路徑dfs和bfs程式碼分析

dfs用遞迴一步步試探,在所有路徑中選出最短的一條路徑 程式碼: //0是路,1是牆 #include<iostream> #include<algorithm> using

路徑演算法—Floyd(弗洛伊德)演算法分析與實現(Python)

December 19, 2015 10:56 PM Floyd演算法是解決任意兩點間的最短路徑的一種演算法,可以正確處理帶權有向圖或負權的最短路徑問題 解決此問題有兩種方法: 其一是分別以圖中每個頂點為源點共呼叫n次演算法; 其二是採用Floyd演算法