Задать вопрос
@BarabanObivan

Как реализовать autocomplete?

нужно реализовать:
1) Определение geo по ip
2)autocomplete адресов и как-то сделать привязку к geo id, но я не знаю куда копать.

Сейчас использую google place autocomplete, но там только place_id выдает.

для определения geo по ip думаю взять MaxMind, но не могу понять как-это все связывать и где по этому поводу накопать информацию. Может кто реализовывал такое?
  • Вопрос задан
  • 160 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
AgentSmith72
@AgentSmith72
JS - это моё хобби
Данный сервис предоставляет json объект с данными о пользователе

Асинхронное получение geoip:
async function getData() {

    new Promise((resolve) => {

        let info = loadData("https://json.geoiplookup.io/", 5000);
        if(info) resolve(info);

    }).then((data) => { 
        sent(data);
    }).catch((error) => {
        errorHandler(error.name);
    });
}

async function loadData(url, time) {

    let controller = new AbortController();
  
    let timeoutId = setTimeout(() => {
        controller.abort();
    }, time);

    let response = await fetch(url, {
        signal: controller.signal,
    });

    if(response) {

        clearTimeout(timeoutId);
        return await response.json();
    }
}

И соответственно в методе sent вставляете полученный город в поле формы или реализуете выпадающую подсказку для формы.
function sent(data) {
    let city = getCity(data.city);      // Запрос для обратной транслитерации
    field.value = city;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы