2012-12-02 22 views
0

這裏是我的應用程序:的Android GPS possition只能得到第一個數字

public class HlavnaAktivita extends MapActivity implements LocationListener { 
... 
    public void onLocationChanged(Location location) { 
      Log.w("myApp", String.valueOf(location.getLatitude())); 
    } 

當我給模擬器例如48.590007和17.824579,它只是寫「17.0」。我試過http://www.androidcompetencycenter.com/?s=GPS這個教程(來自StackOverflow),當我運行這個應用程序時,它寫出了很好的提示,但是在地圖上只是四捨五入的位置(17,48)(根據maps.google.com的位置是好的,但在地圖上是cca 100km錯誤)。

可能是什麼問題?我嘗試了很多教程,但仍然無法正常工作。 謝謝你的回答。

回答

0

這只是我的錯誤 - 我忘了添加()。抱歉。

0

要獲得地圖上的確切位置,您需要2個參數:
點的緯度和經度。
GeoPoint接受緯度和經度以微所以嘗試創建自己的點像這樣以獲得更好的精確度:

double lati = location.getLatitude(); 
double longi = location.getLongitude(); 
GeoPoint geo_point= new GeoPoint((int)(lati * 1e6),(int)(longi * 1e6)); 
+0

是的我知道...這是簡化的代碼,但是當我有這個時,雙lati也沒有準確的位置(這個確切的代碼 - (int)(lati * 1e6)只給int 17000000和int 48000000 ...所以它只是一樣的東西),正如我所說,.akp從那個頁面顯示了我的位置的好數字,但在地圖上它是位置17000000和4800000 ...在谷歌地圖上是在這裏http:// goo.gl/0ivrN和我距離那個位置75公里... – Tunerx

0

某處轉換你的電話號碼爲int。爲了避免它嘗試像這樣:

Log.w("myApp", String.valueOf((float) location.getLatitude())); 
+0

謝謝你,但是這對我最後的工作:geo_auto = new GeoPoint((int)(lat * 1000000),(int)(lng * 1000000) ); ()失蹤並且做了問題 – Tunerx