Невозможно получить состояние с помощью геокодера - PullRequest
0 голосов
/ 23 октября 2018

Невозможно получить состояние с помощью геокодера.Перепробовал много способов в стеке, но без решения. Возможно ли использовать Geocoder.Я также пытался с http://maps.googleapis.com/maps/api/geocode/json?latlng=22.,88&sensor=true&key=, но он возвращает json, но не напрямую State. Для получения состояния мне нужно проанализировать полный json. Есть ли простое решение

Это наиболее часто используемый метод, но возвращает ноль

public void getAdressFromLatlng1(Double lat,Double lng) {

        Geocoder geocoder;
        List<Address> addresses = null;
        geocoder = new Geocoder(context, Locale.getDefault());

        try {
            addresses = geocoder.getFromLocation(lat, lng, 1); // Here 1 represent max location result to returned, by documents it recommended 1 to 5
        } catch (IOException e) {
            e.printStackTrace();
        }
        Log.d("Coordinates",lat+""+lng);
        if(addresses!=null && addresses.size()>0) {
            String state=addresses.get(0).getAdminArea();
            Log.d("State",state);
        }
    }

Также пробовал это, но также возвращает ноль:

private String getCompleteAddressString(double LATITUDE, double LONGITUDE) {
        String strAdd = "";
        Geocoder geocoder = new Geocoder(this, Locale.getDefault());
        try {
            List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1);
            if (addresses != null) {
                Address returnedAddress = addresses.get(0);
                StringBuilder strReturnedAddress = new StringBuilder("");
                strReturnedAddress.append(returnedAddress.getAddressLine(0)).append("\n");
                String cityName = "", stateName = "", countryName = "", zipCode = "";

                if (!TextUtils.isEmpty(addresses.get(0).getLocality()) /*&& !isFromFilter*/) {
                    prefs.setString(Prefs.PREFS_KEY_SETTINGS_CITY, addresses.get(0).getLocality());
                    prefs.setString(Prefs.PREFS_KEY_CITY, addresses.get(0).getLocality());
                }

                if (!TextUtils.isEmpty(addresses.get(0).getAdminArea()) /*&& !isFromFilter*/) {
                    prefs.setString(Prefs.PREFS_KEY_SETTING_STATE, addresses.get(0).getAdminArea());
                    prefs.setString(Prefs.PREFS_KEY_STATE, addresses.get(0).getAdminArea());
                }

                if (!TextUtils.isEmpty(addresses.get(0).getCountryName()) /*&& !isFromFilter*/) {
                    prefs.setString(Prefs.PREFS_KEY_SETTINGS_COUNTRY, addresses.get(0).getCountryName());
                    prefs.setString(Prefs.PREFS_KEY_COUNTRY, addresses.get(0).getCountryName());
                }

                if (!TextUtils.isEmpty(addresses.get(0).getPostalCode()) /*&& !isFromFilter*/)
                    prefs.setString(Prefs.PREFS_KEY_SETTING_ZIP, addresses.get(0).getPostalCode());

                /*strReturnedAddress.append(addresses.get(0).getLocality()).append("\n");//City
                strReturnedAddress.append(addresses.get(0).getAdminArea()).append("\n");//State
                strReturnedAddress.append(addresses.get(0).getCountryName()).append("\n");//Country
                strReturnedAddress.append(addresses.get(0).getPostalCode());//Zip Code

                for (int i = 0; i < returnedAddress.getMaxAddressLineIndex(); i++) {
                    strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("\n");
                }*/
                strAdd = strReturnedAddress.toString();
                Log.w("address", "" + strReturnedAddress.toString());
            } else {
                Log.w("address", "No Address returned!");
            }
        } catch (Exception e) {
            e.printStackTrace();
            Log.w("address", "Canont get Address!");
            Toast.makeText(this, getString(R.string.error_get_address), Toast.LENGTH_SHORT).show();
        }
        return strAdd;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...