2010-11-01 53 views
1

比方說,我想建立一個智能手機應用程序,告訴用戶何時/在哪裏下車的地鐵站。我可以想到這樣做的兩種方法:跟蹤地鐵地圖

1)使用GPS和地鐵路線圖,跟蹤用戶的位置,並在到達目的地時通知他。 2)當他開始時讓他按下開始在列車開始時(這可能不現實,因爲用戶可能忘記這麼做),使用從起始站到終端站的已知行程時間,並且在時間到了時通知他。

有人可以告訴我,如果有任何其他好辦法?謝謝。

+1

像這樣的服務必須可靠。如果沒有南方天空的清晰視野,你沒有GPS,所以沒有了。測量開始和結束時間也是如此。即使您有適當的數據饋送實時更新,但在大多數隧道中仍存在更新問題和小區服務問題。只是猜測開始/結束時間遠不夠可靠。誠實地說,做這項工作的最好方法是提醒用戶注意哪個站。 – Brad 2010-11-01 19:37:15

+0

你能否詳細說明如何提醒用戶需要注意哪個站點?例如,用戶選擇目的地電臺,並且每2分鐘地鐵地圖將在目的地電臺閃爍的屏幕上閃爍? – user270811 2010-11-02 07:55:12

回答

2

你可能不得不採取'死算'。基本上,航位推算是一種導航技術,它使用確認的起始位置加上精確的速度和時間來計算新的位置。請記住,速度本身就是航向和速度的組合,而航向必須是真正的航向。在飛機上,羅盤航向必須與風速和方向相結合才能獲得真正的航向。我不認爲你必須考慮地鐵上的漂移,但當用戶四處移動或使用設備本身時,你將不得不考慮不同的設備方向。另外,僅僅因爲航向通常是指南針方位並不意味着它必須是。您可以使用加速度計和計時器完成工作。

正確使用航位推算還需要經常對已知位置進行「重置」,以避免錯誤累積過多。對於這個應用程序,我認爲曲線和停止檢測可以用作重置。「服務」停靠點太靠近實際停靠點,可能會出現誤報,但這些停靠點可能難以忽略。事實上,如果不是出口站,這可能無關緊要,因爲你可能仍然準確地提供下一站警告,如果是出口站,那也不重要,因爲乘車結束了。總結:你需要確保你有一個良好的初始起點;你需要補償設備重新定位才能獲得真正的標題;您需要知道航向變化和航向時間之間的平均速度以計算航向上的距離。您可以通過重置已知地標來提高整體精度。

編輯:我不知道這是否讓你更接近答案,但克里斯·斯特拉頓提出了一個關於加速度計向量求和的有趣觀點。是否有可能足夠精確地跟蹤設備的方向以獲得可靠的與方向無關的重力矢量?你能保持你的矢量總和嗎?這可以提供一個有用的方向無關矢量加速度?如果是這樣,那麼追蹤加速的持續時間將使您獲得該持續時間內的平均速度以及加速結束時的最終速度。沒有加速度,速度將保持不變。把所有這些放在一起可能會在不準確的情況下將不準確性置於無用的地步。

+0

您沒有任何東西可以遠程接近可用的速度指標。集成加速度計不會給你任何有用的東西。運氣很好,你可能能夠在每個軌道關節處檢測到碰撞,但仍然非常牽強。 – 2010-11-01 21:19:44

+0

@Chris Stratton:是的,我不知道使用加速度和持續時間來提高速度是否實用。如果設備完全固定在火車上,但試圖在手持設備中分辨載體可能會讓我頭疼。儘管如此,許多事情讓我很頭疼,我認爲這至少是在提及死腦筋。 – jadero 2010-11-02 18:22:55

1

這兩個聽起來像不好的解決方案。你幾乎肯定不會在地鐵裏得到GPS追蹤。第二種方式聽起來像是不夠準確,導致應用程序無法使用。

1

仔細閱讀法爾瑪麗的回答。他完全正確,雖然他沒有給你答案。讓我試試然後...

如果路線沒有很多曲線,它會更容易:你只需要硬編碼每個電臺的經緯度,然後,計算用戶的位置將是直截了當的(只是一點數學而就是這樣)。如果路線有曲線,那麼你有更多的工作要做,但基本上是一樣的。

您可能會想要使用一種方法來了解當前位置與車站位置之間的距離。你可以使用一些現有的算法,例如Haversine formula

2

如果地鐵線路有蜂窩服務(有些人會因爲安全考慮而關掉它),您可能可以在網絡位置上做些事情。

您可以使用加速度計來嘗試檢測並計算站點停靠點 - 但由於前方延遲,列車會不時停在站點之間。電池壽命也會減少。編輯:意識到你不能從減速中判斷加速度,因爲你不知道方位(除非你發現羅盤傳感器在那個環境中可以工作) - 你只能看到三個加速度計的矢量和大於重力幾秒鐘。

您可以嘗試使用麥克風來檢測火車電機和制動器的聲音(有些是非常有特色的),但電池壽命和車站之間不定期停車有同樣的問題。更不用說預定的車站繞過維修工作。

也許你應該給用戶一個滾動列表標記旅程的站點,讓他們保持跟蹤。

+0

你能否詳細說明如何使用可滾動的電臺列表?再次,在地圖上閃爍點? – user270811 2010-11-02 07:56:52

+0

沒有地圖,從行程的開始到結束(該行的一部分)在一條線上製作一個垂直的電臺列表。通常,這樣的清單被張貼在平臺上或水平地放置在汽車中,並且每個車站通過時打開燈。但是在紐約這樣的城市,你將不得不接入服務變化的通知,因爲車站可以被繞過,列車可以在不同的線路上重新佈線。然後,當通過列車上的廣播系統宣佈從快車到本地或從本地到快車的非預先計劃的更改時,您可以做的事情不多。 – 2010-11-02 12:40:40