Как получить надежные ответы о состоянии США путем обратного геокодирования? - PullRequest
2 голосов
/ 15 февраля 2012

Google иногда возвращает неправильный штат США при обратном геокодировании в широту / долготу.Предположительно это происходит потому, что Google пытается вернуть ближайший уличный адрес, который в некоторых случаях не находится в том же состоянии, что и широта / долгота, с которой вы пытаетесь изменить геокод.

Хотя на практике это может не быть распространенным сценарием, его довольно легко воспроизвести, поиграв с картой: http://gmaps -samples.googlecode.com / svn / trunk / geocoder / reverse.html

Для моего приложения меня меньше беспокоит получение ближайшего адреса и больше забота о том, чтобы всегда получать правильный штат США для лата / лонга.Есть ли способ добиться этого с помощью API Google?

Спасибо

1 Ответ

0 голосов
/ 28 июня 2016

Переберите все результаты и выберите один с "administrative_area_level_1" в results[i].types

Это лучше, чем брать "эквивалентный" компонент адреса из первого результата, то есть найти "administrative_area_level_1" в results[0].address_components[j].types

Когда обратное геокодирование привязывает ваш последний адрес к ближайшему адресу, который оказывается в другом штате (или стране), компонент адреса страны / штата в первом результате будет таким, где находится этот адрес, но последующий результат будет быть государством / страной, в которой вводится значение latlng.

Пример: 42.834185, -0.302811 в Испании, но привязывается к адресу во Франции.

https://google -developers.appspot.com / карты / документы / Utils / геокодер / # д% 3D42.834185% 252C-0,302811

results[0].address_components[3].types = ["administrative_area_level_1", "political"]
results[0].address_components[3].short_name = "FR"
results[6].types = ["administrative_area_level_1", "political"]
results[6].short_name = "ES"
...