2010-12-17 96 views
1

即時通訊試圖規劃和建立一個小的android應用程序,它需要一個kml座標文件,這些座標組合在一起作爲一個lineString可能在每個線串中有幾十個點,即時通訊試圖建立一個應用程序,當用戶旅行,如果他們在一組這樣的座標標記爲一條線在路上會提示一個警報,這裏可能有成千上萬的這些行在一個kml文件中,我知道如何提示警報等,但想知道如果我在程序啓動時解析所有這些座標,然後經常檢查用戶是否靠近任何一個座標,並且在線串提示符內部是否是一個很好的解決方法?這種方式看起來效率不高,在我開始之前,任何想法都會很棒。Android接近警報,從kml文件

ex。
LINESTRING 座標 cordinates 1 .......... 2 等......... /cordinates /LINESTRING

也許數千這些線的

非常感謝

回答

1

我同意,如果你定期檢查一個用戶的位置和比較大型列表的座標,那麼它將是低效率(和CPU密集型)。

首先,我會提前說,我只是拋出抽象的評論/想法,因爲沒有人迴應。我從來沒有使用過KML,也沒有寫過一個像你這樣描述任何東西的應用程序,所以我只是在引用抽象的評論/想法。

你沒有給出任何有關LineStrings範圍的細節(例如,kml文件是否有LineStrings可以延伸很長距離?例如中國的長城)。你也不解釋用戶如何旅行(步行,騎自行車,駕車等)。

基於以上所述,我將根據kml文件所覆蓋的地理區域,用戶的起始位置和運輸方式(即,它們可能到達的距離有多遠)來創建全部座標的子集在給定的時間內旅行)。

上面的問題當然是你不能單獨依賴經度或緯度匹配,所以你需要使用用戶和爲每個LineString定義的任何點之間的實際距離來設置子集。爲了保持效率(並儘可能保持子集儘可能小),當用戶從各種LineStrings中定義的座標移開或移向座標時,還需要更新子集。

嗯,抽象確實可能沒有幫助,但它是一個有趣的問題來仔細考慮。

+0

感謝您的反饋MisterS,一些好主意,我喜歡創建一個新的子集的方法,靠近,抱歉不澄清,但kml線串不會超過幾英里。 – user524156 2010-12-21 17:32:14

+0

我認爲每個線路點相距500米,這將用於汽車,所以我想創建一個半徑爲50英里,我仍然是Android和谷歌地圖的小菜鳥,需要做更多的研究,但我已經創建了一個簡單的谷歌地圖覆蓋,它給用戶目前的位置,並且還將允許取決於標記位置的proximtiy警報。 – user524156 2010-12-21 17:33:08