Я использую Google Maps V3 API. Всякий раз, когда пользователь бросает булавку на улице (или, возможно, в нескольких метрах / ярдах от улицы), он должен получать компоненты адреса, которые я использую для извлечения из сброшенного маркера.
Что меня беспокоит, так это то, что когда я бросаю булавку на улице, иногда он возвращает номер / название дома, когда всегда должен возвращать список в виде:
- Название улицы;
- Город *; 1008 *
- Состояние;
- County;
- тогда Страна
Я просматриваю компоненты адреса с помощью пользовательского метода, который возвращает полный ответ JSON, сгенерированный из API Карт Google:
getAddress(pinLocation, function(addressobj)
{
for(i = 0; i < addressobj[0].address_components.length; i++)
{
var addressComp = addressobj[0].address_components[i].long_name;
$('input[type=text][address=comp]:eq(' + i + ')').val(addressComp);
}
});
Таким образом, когда данные возвращаются, они возвращают результаты, и каждый компонент адреса (из списка выше) каждый попадает в поле ввода. Вот какие ожидаемые результаты возвращает:
- San Antonio Valley Rd
(street name)
- Ливермор
(city)
- Diablo Range
(state)
- Санта-Клара
(county)
- Калифорния
(country)
Это идеальный ответ, но в некоторых местах, когда я падаю на улицу (в основном, на многолюдные улицы), я получаю:
- 2920
(should be Dalarna Ct)
- Даларна Ct
(should be Turlock)
- Терлок
(this is okay, but is omitted)
- Терлок
(should be Stanislaus)
- Станислав
(should be California)
Я понятия не имею, как я могу создать надежный адресный компонент, который не отображает номер дома, и должен всегда возвращать информацию, касающуюся списка (первый), потому что данные всегда меняются при удалении маркеров на улице, когда мне нужно, чтобы получить те же результаты, что и список.