2017-03-02 5 views
0

私のアプリでは、生のアドレスを座標にデコードしたいと思います。私はそれが好きです:Android yandexジオコードアドレス

AsyncHttpClient client = new AsyncHttpClient(); 
RequestParams params = new RequestParams(); 
try { 
    params.add("geocode", URLEncoder.encode(charSequence.toString(), "UTF-8")); 
} catch (UnsupportedEncodingException e) { 
    e.printStackTrace(); 
} 

client.post(getApplicationContext(), "https://geocode-maps.yandex.ru/1.x/", params, new AsyncHttpResponseHandler() { 
     @Override 
     public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 
      Log.d("Yandex Geocode", "Success! Answer = " + new String(responseBody)); 
     } 

     @Override 
     public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 
      Log.d("Yandex Geocode", "Failure :(Error = " + error.toString()); 
     } 
}); 

しかし、このリクエストはサーバーに届きません。

failed to connect to geocode-maps.yandex.ru/213.180.204.122 (port 443) after 10000ms: isConnected failed: ECONNREFUSED (Connection refused) 

なぜ機能しないのですか?

EDIT

Yandexのが唯一のWebアプリケーションやサイトのために、このAPIを提供するので、それは働いていません。 これには醜い回避策が見つかりました。私はこのリクエストURLでWebviewのページをロードしており、webviewから応答から生のテキストを取得しています。

答えて

0

Android Geocoderを試すことができます。これはアンドロイドのネイティブAPIです。

ジオコーディングと逆ジオコーディングを処理するクラス。

+0

問題はAndroidジオコーダとGoogleジオコーダがロシア語のアドレスで問題があることです。 Yandexマップapiはロシアのアドレスに最適です – TrueCH

関連する問題