2011-05-25 29 views
1

當我到達目的地lat和lon時,android的distanceTo()和distanceBetween()函數會給出結果。但我需要介紹經緯度不能改變的情況(例如,如果我走在街道周圍的高樓大廈,進入建築物或通過轉彎行走短距離)。對於那些條件如何在android中計算距離?如何計算行走時兩點之間的距離(不帶GPS)

當我通過stackoverflow搜索其他答案時,我經歷了here。我試過以下answer。代碼是好的,但是當我試圖通過代碼計算距離時,即使我不走路,它也會給出恆定的值。

請幫我計算兩點

+0

「如果我走在街道內,經緯度可能不會改變......」怎麼樣? – Reno 2011-05-25 07:31:51

+0

你的意思是,你想計算兩點之間的距離,即使它很短,也不會導致GPS數據的變化?以規則的時間間隔進行GPS測量應該足以計算距離。 – Zelimir 2011-05-25 07:35:58

+2

經度和緯度沒有改變是有可能的,因爲如果你在沒有GPS覆蓋的地區行走,這正是會發生的事情。所以,這個問題是有道理的,但沒有精確解釋。 – Zelimir 2011-05-25 07:43:58

回答

5

當你進入你有GPS /緯建築物之間的距離,但之後它不會改變,因爲沒有GPS覆蓋。所以,問題是如何處理這種情況,只是最後的立場。我會用這種方式處理這個有趣的問題:

  • 使用WiFi網絡信息的位置以及(不只是GPS)。

  • 使用傳感器。你有定向和加速度傳感器。我記得有些手機具有步數計數的功能(我在沒有GPS的SonyEricsson上使用過)。

  • 加速度傳感器可能會告訴您有人在移動並幫助您計算步數(您需要進行一些平均步距值估算)。您可以輕鬆得出是否有人在電梯內,並且如果他正在上升或下降,並粗略估計樓層數量。

  • 方位傳感器可以爲您提供有關運動變化方向(拐彎處)的信息。

  • 基於GSM信號強度的位置。來自android.telephony的NeighboringCellInfo爲您提供了有關您周圍小區的RSSI(接收信號強度指示)的信息,但是爲了精確計算基於三角測量的位置(約50 m精度),您需要基站的準確位置(在沒有支持的情況下無法獲得運營商)。

據瞭解,這種估計可能有多不準確,但我沒有看到其他方法。

在任何情況下,很多樂趣探索/開發的東西。

+1

也可以使用使用移動網絡的triDown。 – 2011-06-02 10:44:13

+0

@AndroidKid - 謝謝。更新了我的答案。 – Zelimir 2011-06-03 17:03:06