2011-10-31 117 views
6

我知道這個問題以前經常被問到,但我無法從任何答案或搜索結果中獲得解決方案。 我必須儘快解決這個問題.. 我想獲得的緯度和地址的經度由用戶輸入,但我繼續獲取:java.io.IOException:無法解析來自服務器的響應getFromLocationName()

java.io.IOException: Unable to parse response from server 

我使用這個代碼:

 Geocoder geocoder = new Geocoder(this ,Locale.getDefault()); 
     String newAddress = (String)saveas.getText().toString(); 
     List<Address> addresses = geocoder.getFromLocationName(newAddress, 1); 

我試了很多不同的可能方式,但沒有任何作品... 默認地圖應用程序運行良好,當用戶輸入地址時,它顯示地圖成功地顯示在地圖..我如何做同樣.. ?

我添加了所有所需的權限,我在實際設備上測試它(2.3版本)...

+0

什麼是saveas這裏的Edittext? – ingsaurabh

+0

是的,這是一個EditText .. –

+0

你有沒有嘗試過在Eclipse中調試它,或者在newAddress上寫一個日誌來知道變量包含了什麼? – Sephy

回答

0

我不知道它是否有助於BTW下面是從我的項目的片段做工精細修改,以適合

yourGeocoder = new Geocoder(this, Locale.CANADA); 

請更換提供最有價值的第二個參數:您的需求

String newAddress = saveas.getText().toString(); 
searchFromLocationName(newAddress); 


private void searchFromLocationName(String name){ 
try { 
    List<Address> result 
    = myGeocoder.getFromLocationName(name, MAX_RESULT); 

    if ((result == null)||(result.isEmpty())){ 
    Toast.makeText(AndroidgetFromLocationNameActivity.this, 
    "No matches were found or there is no backend service!", 
    Toast.LENGTH_LONG).show(); 
    }else{ 

    MyArrayAdapter adapter = new MyArrayAdapter(this, 
     android.R.layout.simple_list_item_1, result); 
    listviewResult.setAdapter(adapter); 

    Toast.makeText(AndroidgetFromLocationNameActivity.this, 
    "Finished!", 
    Toast.LENGTH_LONG).show(); 
    } 


} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    Toast.makeText(AndroidgetFromLocationNameActivity.this, 
    "The network is unavailable or any other I/O problem occurs!", 
    Toast.LENGTH_LONG).show(); 
} 
} 
1

如果您在創建地理編碼時設置的語言環境參數,這可能是有用的。

我想默認的語言環境值可能不對應您使用的地圖區域。

2

您是否嘗試過3G連接?我注意到,如果您從wifi發送多個反向地理位置請求,看起來您的IP會在一段時間後被阻止,並且反向地理位置不會響應一段時間。當我遇到類似問題時,切換到3G使請求適用於我。

2

我和我的三星Galaxy Tab 10.1有同樣的問題。我搜索小時尋找解決方案,沒有任何幫助。要解決問題,嘗試以下操作:

轉到位置信息設置並啓用:

1.使用無線網絡 2.使用GPS衛星

等待GPS位置固定

在此之後,地理編碼服務器開始迴應。即使當我禁用無線和GPS位置服務器仍在工作。如果您與Google分享您的位置,我認爲只有地理編碼器纔可以使用。

+0

謝謝,它爲我工作! – kikettas

0

可能您的手機未連接,無法從服務器獲取答案。

正如所解釋的here地理編碼

throws IOException if the network is unavailable or any other I/O problem occurs 
2

我解決了同樣的問題,不斷變化的背景下。

我使用的片段,所以我的代碼是這樣的

public class SearchRoteFragment extends Fragment{ 

     @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.teste_mapa, container, false); 
     context = getActivity(); 
... 
} 

,當我打電話的地址解析我這樣做

Geocoder geoCoder = new Geocoder(context, Locale.getDefault()); 
0

我是在Android 2.3.4測試,並收到「無法解析來自服務器的響應「異常。

確保您的谷歌地圖工作,我的工作不正常!一旦谷歌地圖開始工作Geocoder 是好的。

我沒有切換「使用無線網絡」&「使用GPS衛星」從「位置&安全性」設置。

相關問題