2016-08-02 71 views
0

我正在爲我的城市制作相應GPS座標的位置/地址數據庫。我將使用該數據庫進行反向地理編碼,而不是使用android的地理編碼器類(因爲它有時會發生錯誤的重試或不會給出任何結果)。但是我面臨的問題是,每當我嘗試通過比較當前的GPS座標和存儲的地址來使用數據庫時,當前的GPS座標與存儲的座標不匹配。這是因爲我正在移動時,當前和存儲的GPS座標之間只有很小的變化(2-3位數差異)。那麼有沒有什麼方法(算法)來檢查座標之間的相似性之間的相似性,使用當前的座標將與存儲的座標匹配(幾乎相等),然後我可以得到地址?如何在android中找到兩個GPS座標之間的相似性數量

回答

0

您可以使用haversine formula來計算當前GPS座標和存儲的座標之間的距離,並使用此距離作爲位置之間的相似度量度。如果兩個位置相距預定義的距離,則可以考慮兩個位置相同。

唯一的問題是,使用蠻力的方法,你將不得不計算從GPS座標和每個存儲點的距離。如果這對你有用,那麼你很好。否則,你將不得不以某種方式優化過程。其中一種可能的方法是使用正方形網格,併爲每個正方形網格存儲該正方形內的位置。然後你拿你的GPS位置,確定它落入哪個平方,然後只將它與網格上相同和相鄰方格中的位置進行比較。

+0

謝謝。實際上在Android上實施半鹹水配方對我來說似乎很難。我將使用網格方塊的第二種方法。因此,我將不得不在android中創建一個數據庫,不是嗎? –

+0

我不認爲只有網格就能完成這個技巧 - 無論如何你必須計算到候選位置的距離。這並不困難,您可以輕鬆地實現Google的實現,而且它絕對涉及Android開發人員可以使用的數學函數。 是的,你將不得不實施某種數據庫 - 無論如何你必須這樣做。 –

相關問題