2011-05-07 47 views
0

在下面的代碼繪製路線:在Android地圖

如果(c.moveToFirst())

{ 


    do{ 


    longitude=Integer.parseInt(c.getString(0)); 


    latitude=Integer.parseInt(c.getString(1)); 


    p = new GeoPoint(latitude,longitude); 


    geoPointsArray.add(p); 


    theRouteDraw(); 


    }while(c.moveToNext()); 


    } 

凡光標獲得形式,其中我已存儲的GPS數據的數據庫(經度C,緯度)

  Cursor c=db.getAllData(); 

和:

theRouteDraw();是一種在兩個GPS點之間畫線的方法。

在我在上面進行的方式我geoPointsArray []我有所有這點,然後

我將它傳遞給theRouteDraw();這些點之間的界線是即刻繪製的!

現在我想設置在上面的代碼的延遲,以便把一個點geoPointsArray []和調用theRouteDraw().......要繪製的線一步一步

如果我不要使用延遲我的應用程序被阻止了一段時間(不是FC),直到線被繪製爲止......因爲它獲得了許多需要在地圖上連接的點!

任何想法如何做到這一點?????????????????

回答

0

您應該使用單獨的線程來執行theRouteDraw()函數:請參閱AsyncTask類和示例(如http://labs.makemachine.net/2010/05/android-asynctask-example/)瞭解如何執行此操作。

這會阻止您的應用被阻止。

+0

不,這個問題不是阻塞部分(這是因爲它必須在很多點之間畫線),但我怎麼會引入一個延遲或這種類型的東西,以便我的方法theRouteDraw()接收點一步一步....因此,所有的事情都是作爲一個實時應用程序工作的 – adrian 2011-05-07 16:33:00

+0

好吧,邏輯是一樣的:如果你有你的數據進入零碎,你需要有一個單獨的線程更新路線覆蓋,只要您決定收到足夠的分數,就會在主UI線程上渲染疊加層。 – Femi 2011-05-07 16:36:07

+0

即使我正在讀取數據庫中的數據,我也可以使用單獨的線程嗎? – adrian 2011-05-07 17:08:21