2017-03-02 8 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) 

왜 작동하지 않는가?

편집

Yandex 주차는 웹 어플리케이션 및 사이트에 대한이 API를 제공하기 때문에 그것은 작동하지 않습니다. 이것에 대한 추악한 해결 방법을 찾았습니다. 이 요청 URL로 webview에서 페이지를로드하고 webview에서 응답의 원시 텍스트를 가져 오는 중입니다.

답변

0

Android Geocoder를 사용해보세요. 그것은 안드로이드 네이티브 API입니다.

지오 코딩 및 역 지오 코딩을 처리하기위한 클래스입니다.

+0

문제는 Android 지오 코더와 Google 지오 코더가 러시아어 주소와 함께 작동하지 않는다는 것입니다. Yandex지도 api는 러시아 주소로 가장 좋습니다. – TrueCH