Android-Получить указатель позиции с помощью геокодера

1

Ниже мой код. Для некоторых адресов приведенный ниже код работает в Android Device API уровня 8. Но для некоторого адреса значение адреса возвращается как [].BUt. Я не получаю такую проблему при вызове того же сервера с iphone.

Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault());
List<Address> address = geocoder.getFromLocationName(MAPADDRESS, 1);

Как решить эту проблему в устройстве Android.

Теги:

2 ответа

0

Просто используйте следующий метод... при вызове введите строковый ввод

 public static JSONObject getLocationInfo(String address) {
            StringBuilder stringBuilder = new StringBuilder();
            try {

            address = address.replaceAll(" ","%20");    

            HttpPost httppost = new HttpPost("http://maps.google.com/maps/api/geocode/json?address=" + address + "&sensor=false");
            HttpClient client = new DefaultHttpClient();
            HttpResponse response;
            stringBuilder = new StringBuilder();


                response = client.execute(httppost);
                HttpEntity entity = response.getEntity();
                InputStream stream = entity.getContent();
                int b;
                while ((b = stream.read()) != -1) {
                    stringBuilder.append((char) b);
                }
            } catch (ClientProtocolException e) {
            } catch (IOException e) {
            }




            JSONObject jsonObject = new JSONObject();
            try {
                jsonObject = new JSONObject(stringBuilder.toString());


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


            return jsonObject;
        }
  • 0
    Большое спасибо всем за ответы. Спасибо Раджеш. Это сработало.
  • 0
    рад слышать. это помогает вам многое знать .. почему вы не выбрали это в качестве принятого ответа.?
Показать ещё 2 комментария
0

Проблема здесь в том, что вы запрашиваете только один адрес во время запроса

List<Address> address = geocoder.getFromLocationName(MAPADDRESS, 1);

Android будет пытаться найти только один адрес в этом случае. Вы должны поднять это 2 или 3.

Возможно, на второй или третьей позиции вы получите успех.

Измените его на

List<Address> address = geocoder.getFromLocationName(MAPADDRESS, 3);  
  • 0
    Спасибо Vipul за ваш ответ. Я попробую с этим.
  • 0
    Я попытался с помощью следующего: List <Address> address = geocoder.getFromLocationName (MAPADDRESS, 3) и List <Address> address = geocoder.getFromLocationName (MAPADDRESS, 15), но все же он показывает adress.size () = 0.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню