адрес геокода андроид яндекс

В моем приложении я хочу декодировать необработанный адрес в координаты. Я делаю так:

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-адресом запроса и получаю необработанный текст из ответа из веб-просмотра.


person TrueCH    schedule 02.03.2017    source источник


Ответы (1)


Вы можете попробовать с Android Geocoder. Это собственный API Android.

Класс для обработки геокодирования и обратного геокодирования.

person Thirumalvalavan    schedule 02.03.2017
comment
проблема в том, что Android Geocoder и Google geocoder плохо работают с русскими адресами. API Яндекс карт лучший для русских адресов - person TrueCH; 03.03.2017