Как обеспечить функциональность автозаполнения уличных адресов в django?

#django #autocomplete #openstreetmap #geodjango

#django #автозаполнение #openstreetmap #geodjango

Вопрос:

Есть ли какой-либо способ обеспечить автоматическое предложение уличного адреса, когда пользователь пытается ввести свой адрес в поле ввода, используя, чтобы они начали получать автоматические предложения адресов в django.

Я искал autocomplete light, но не смог найти ничего, что было бы связано с этим.

Ответ №1:

Я реализовал эту функциональность с помощью автозаполнения Google Place. Пример кода в ссылке довольно точен по памяти.

https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform

Комментарии:

1. Можно ли бесплатно использовать эту функцию?

2. Существует бесплатный уровень, который включает в себя что-то вроде 70 000 просмотров в месяц, если вы используете только эту функцию. Я использовал это, а также поиск времени в пути и т.д. в течение 12 месяцев, и это было здорово cloud.google.com/maps-platform/pricing/sheet

3. Привет @vikram если этот или любой другой ответ решил ваш вопрос, пожалуйста, подумайте о том, чтобы принять его , установив флажок. Это указывает более широкому сообществу, что вы нашли решение, и придает определенную репутацию как ответчику, так и вам самим. Нет никаких обязательств делать это.

Ответ №2:

Вы могли бы использовать python для самостоятельного выполнения запросов и реализовать некоторый легкий javascript для заполнения ваших входных данных:

Это вернет вам список прогнозов, основанных на введенном вами входном адресе. Для выполнения запроса вам просто нужен адрес и ваш ключ API, но обратите внимание, что в моем примере я также использую параметры components / types.

вот документация:https://developers.google.com/maps/documentation/places/web-service/autocomplete

 url = f'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=<address>amp;components=country:usamp;types=addressamp;key=<your key>'
r = requests.get(url)
predictions = r.json()['predictions']

for p in predictions:
    print(p['description'])
    print('-----------------------')