В ответе на вопрос, который я пробовал, и полученные результаты показаны ниже.
18.55, 72.54 = Mumbai
22.18, 70.56 = Rajkot
1)
Когда я передаю нижнее значение широты как левое нижнее и ищу строку Iполучил это
Geocoder gc = new Geocoder(this, Locale.getDefault());
try {
List<Address> addresses = gc.getFromLocationName("akshardham", 5,
18.55, 72.54, 22.18, 70.56);
Log.i("Address", "=========0----------------------"
+ addresses.get(0).getAddressLine(0)
+ addresses.get(0).getAddressLine(1));
Log.i("Address", "=========0----------------------"
+ addresses.get(1).getAddressLine(0)
+ addresses.get(1).getAddressLine(1));
Log.i("Address", "=========0----------------------"
+ addresses.get(2).getAddressLine(0));
Log.i("Address", "=========0----------------------"
+ addresses.get(3).getAddressLine(0));
Log.i("Address", "=========0----------------------"
+ addresses.get(4).getAddressLine(0));
} catch (Exception e) {
;
}
Logcat этого
11-17 12:42:32.419: INFO/Address(802): =========0----------------------AkshardhamNH 8C, Sector 20
11-17 12:42:32.429: INFO/Address(802): =========0----------------------AkshardhamRajkot, Gujarat 360005
11-17 12:42:32.429: INFO/Address(802): =========0----------------------Akshardham
2)
Когда я передаю vaue более высокой широты как левое нижнее и ищу строку, я получил это
List<Address> addresses = gc.getFromLocationName("akshardham",5, 22.18, 70.56,18.55, 72.54 );
Logcat этого
11-17 12:43:53.170: INFO/Address(837): =========0----------------------HardhamPulborough, West Sussex RH20 1
3)
Документ здесь сам говорит "Адресасоответствие внутри ограничительной рамки имеет более высокий ранг. ", я думаю, они хотят сказать, что не обязательно, чтобы, если строка поиска является адресом, между этим полем будет только возврат, если они найдут адрес, который они вернут, даже если егоиз ограничительной коробки. Полагаю, ограничивающий прямоугольник предназначен только для установки приоритета результата, в то время как сначала будет получено среднее значение из поля, а затем и другое, как в get (0), get (1) списка.но результат будет дан, даже если они не находятся в ограничительной рамке.
4)
В Geocoder.java здесь они просто вызывают метод, чтобы получить адреса с передачей двойных значений в качестве аргумента simple .. никакая проверка результата не используется там, чтобы проверить самое низкое и самое высокое значение
=> Итак final answer для вас проблема, вы просто вызываете функцию, когда вы звоните, и вы можете проверить вторую строку адреса, которая соответствует вашей, означает, что штат или страна одинаковы.чтобы найти страну, название штата вашего значения ограничивающего прямоугольника, используйте getFromLocation (широта, долгота, maxResults), Я все еще не нашел идеального решения для этого, поэтому я тоже. Поиск
=> Подробнее об этом может объяснить эксперт (это не я) или разработчик из самого Google.