我使用一個應用程序,我的工作就一個GTFS飼料。我試圖列出所選路線的所有停靠點。目前,我試圖命令由stop_sequence名單,但這不能正常工作,因爲有些車次不要去每到一站和數據我已經每行程收到增量stop_sequence由1元止損。這樣做的意義在於,stop_sequence不考慮可能有更多或更少的站其他車次。確定不使用stop_sequence正確GTFS止損訂單?
下面是一個例子:
這是停止對路線的順序,(忽略了一個事實,不是每趟將在每站停車)
Stop A
Stop B
Stop C
Stop D
Stop E
現在,這裏有一些例子車次對於路線:
Trip 1: A, B, C, D
Trip 2: A, B, E
什麼我的數據是這樣做的:
對於行程1:
Stop A: stop_sequence = 1
Stop B: stop_sequence = 2
Stop C: stop_sequence = 3
Stop D: stop_sequence = 4
跳閘2:
Stop A: stop_sequence = 1
Stop B: stop_sequence = 2
Stop E: stop_sequence = 3
所以,當我試圖下令所有可能的中止爲我結束了這樣的路線:
Stop A
Stop B
Stop C
Stop E
Stop D
這顯然是不正確。
有誰知道正確責令停止,可能使用自帶的GTFS訂閱其他數據的任何其他潛在的想法?
與現實世界的例子
這裏已更新爲一個數據庫查詢獲取所有站的路線915 這是AM時間表輸出的例子。
+---------+---------+---------------+------------------------------------------------+
| stop_id | trip_id | stop_sequence | stop_name |
+---------+---------+---------------+------------------------------------------------+
| 11771 | 1269287 | 1 | LOTTE PLAZA US 40 & US 29 |
| 11772 | 1269280 | 1 | HARPER'S FARM RD & CEDAR LA eb |
| 11773 | 1269280 | 2 | LITTLE PATUXENT & GRAY STAR wb |
| 11774 | 1269280 | 3 | LITTLE PATUXENT & WHITE CORD WAY wb |
| 11775 | 1269280 | 4 | LITTLE PATUXENT & BRIGHT PASSAGE eb |
| 11776 | 1269280 | 5 | LITTLE PATUXENT & HICKORY RID nb |
| 11777 | 1269280 | 6 | LITTLE PATUXENT & CEDAR LA eb |
| 11778 | 1269280 | 7 | LITTLE PATUXENT & HARPER'S FARM opp eb |
| 11779 | 1269280 | 8 | COLUMBIA MALL & SOUTH RING RD eb |
| 11782 | 1269280 | 9 | BROKEN LAND & HICKORY RIDGE sb |
| 11780 | 1269289 | 9 | LITTLE PATUXENT & GOV WARFIELD nb |
| 11783 | 1269280 | 10 | BROKEN LAND PARK & RIDE |
| 11781 | 1269289 | 10 | LITTLE PATUXENT & VANTAGE PT nb |
| 11784 | 1269280 | 11 | SCAGGSVILLE PARK & RIDE |
| 11785 | 1269280 | 12 | BURTONSVILLE PARK & RIDE |
| 11786 | 1269280 | 13 | COLESVILLE RD & FENTON ST sb |
| 11787 | 1269280 | 14 | SILVER SPRING METRO STATION |
| 11788 | 1269280 | 15 | WALTER REED HOSP & 16TH ST NW |
| 11789 | 1269280 | 16 | 16TH ST & P ST NW |
| 11790 | 1269280 | 17 | 16TH ST & M ST NW |
| 11718 | 1269280 | 18 | K ST & 16TH ST NW fs eb |
| 11719 | 1269280 | 19 | K ST & 14TH ST NW eb |
| 11791 | 1269280 | 20 | 13TH ST & H ST NW sb |
| 11759 | 1269280 | 21 | PENNSYLVANIA AVE & 12TH ST NW eb |
| 11793 | 1269280 | 22 | CONSTITUTION AVE & 10TH ST NW fs eb |
| 12046 | 1269280 | 23 | 7TH ST NW & CONSTITUTION AVE eb |
| 11650 | 1269280 | 24 | INDEPENDENCE AVE & 7/6 ST SW mid eb |
| 11601 | 1269280 | 25 | INDEPENDENCE AVE & 4TH/3RD ST SW eb |
| 13627 | 1269280 | 26 | M ST & 1st ST SE (NAVY YARD) sb |
| 13628 | 1269280 | 27 | M ST & 4th ST SE (SOUTHEAST FEDERAL CENTER) eb |
| 11569 | 1269280 | 28 | M ST & ISAAC HALL AVE SE eb |
| 11795 | 1269280 | 29 | M ST & 8/9TH STS mid eb |
+---------+---------+---------------+------------------------------------------------+
這裏是鏈接到了很多乘客的當前使用的時間表的PDF文件。的兩個列表不同,其中第一個實例是經過「哥倫比亞購物中心&南二環RD EB」
http://mta.maryland.gov/sites/default/files/915May2011B.pdf
我想將這個應用程式通勤儘可能友好,但是當停止亂序當與通常使用的乘客相比時,可能會引起很多混淆。
更新2:
我還沒有看到排序如何拓撲可以用來獲取正確的順序。是的,它可能會給有效序列,但它不能保證是正確的序列通勤很容易識別。讓我們看看使用我提供的pdf的另一個例子。我們會看看1號和5號航站樓,直到「哥倫比亞購物中心」站。我將創建以下的邊緣:
邊從旅行創造了1
Cedar Lane --> Gray Star Way
Gray Star Way --> White Cord Way
...
Harpers Farm Rd --> Columbia Mall
從旅行產生的邊5
Lotte Plaza --> Columbia Mall
一個拓撲排序,可確保的唯一事情是
爲從頂點u到頂點v每向邊紫外線,U自帶v在在訂貨
這意味着,有多個有效排序,但只有一個是實際正確一個我想要的(但我無法通過其他有效的順序來選擇這個順序,至少不是我能想到的)。
一個有效的排序可能是(這也是正確的):
Lotte Plaza,
Cedar Lane
Gray Star
...
Columbia Mall
甚至
Cedar Lane
Gray Star
...
Lotte Plaza
Columbia Mall
正如你所看到的,根據拓撲排序,這兩個都是有效的,但其中只有一個是我想要的。我想不出一種基於GTFS提供的數據一致地選擇正確序列的方法。
請讓我知道如果我在看這個錯誤的方式。
記住stop_sequence只能用於排序屬於同一行程(又名與stop_times.txt相同trip_id行)停止。正如我在下面提到的,爲了在不同的旅程中創建一個更一般的站點順序(又稱不同的站點順序),您需要使用下面概述的方法。 –
我添加了另一個更新,爲什麼我無法想象拓撲排序如何實現我想要的。 – btse
也許這個圖表將有助於:https://docs.google。com/file/d/0B2T8yNIP0VUQeG1fUVY2X25jcGs /編輯 我同意樂天廣場停下來是棘手的,關於如何訂購它相對於哈珀的農場變化。我在下面更新了我的答案,以自然的方式描述如何分叉,分支和其他變體。肯定會看看OBA代碼,因爲它已經處理了這種情況。 –