2011-10-27 57 views
0

我有一個地理編碼和它的作品的時候,我把一個經度和programically緯度但是當我試圖把從用戶位置的緯度和經度它強制關閉,這是我有調用經度和緯度到getFromLocation()?

public String address(){ 
    Geocoder gc = new Geocoder(this); 


     List<Address> list = null; 
    try { 
     list = gc.getFromLocation(latt(),longg(),1); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

     Address address = list.get(0); 

     StringBuffer str = new StringBuffer(); 
     str.append("" + address.getLocality() + "\n"); 
     str.append("" + address.getSubAdminArea() + "\n"); 
     str.append("" + address.getAdminArea() + "\n"); 
     str.append("" + address.getCountryName() + "\n"); 
     str.append("" + address.getCountryCode() + "\n"); 

     String strAddress = str.toString(); 


    return strAddress; 
    } 

public double latt(){ 
return LocationManagerHelper.getLatitude() ; 
} 
public double longg(){ 
    return LocationManagerHelper.getLongitude(); 
} 

logcat的

10-26 20:15:11.936: E/AndroidRuntime(28800): at http.www.hotapp.com.timeandlocation.TimeAndLocationActivity.address(TimeAndLocationActivity.java:95) 

第95行是Address address = list.get(0);

關於我在做什麼的錯誤的任何建議?

後來問

我的想法是,緯度和經度的數字是長,當他們在被拉動。所以我的問題是,反正是有讓這個長和緯度來作爲一個更小的數字?當我編程的時候把它的長和短放在一個較短的數字latitude: 43.47389Longitude:-114.34639。當它從用戶位置拉時,我得到Latitude: 43.53400643333333longitude: -114.32474341666666。即使當我在編程中輸入較長的數字時,它仍然可以正常工作。

+0

是什麼,你得到的錯誤?你可以從logcat得到這個。 – spatulamania

+0

@spatulamania,我的壞我忘了發佈,我會把它放在 – Christian

+0

什麼是用戶經緯度,日誌? – Reno

回答

0

由於你的應用崩潰在list.get(0)我猜這是一個NullPointerException。而且,由於列表是在try塊內發起的,並且您正在吃掉這個例外,所以爲什麼gc.getFromLocation(latt(),longg(),1);失敗會讓您更接近解決方案。

請記住這樣的代碼只是把斷了的問題,將很難在以後查找:

catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

快速失敗通常是一個好政策。


至於爲什麼gc.getFromLocation(latt(),longg(),1);失敗,該文件說,IOException異常情況發生,「如果網絡不可用或發生任何I/O問題」。網絡設置是否正確?您正在運行的設備是否具有適當的GeoCoding服務? 模擬器沒有。

+0

當我把'gc.getFromLocation(43.47389,-114.34639,1);'它只是當我試圖切換從它強制關閉的用戶位置得到它想要的。所以我猜測,當我從用戶位置呼叫協調網絡很長時。我將如何做到這一點,以便將經度和緯度作爲一個更小的可讀性加入? – Christian

+0

@Christian使用一些簡單的'if'檢查來查看它們是否超出了可接受的範圍。 – spatulamania

+0

我不完全確定你的意思是用「if」 – Christian