Определение того, ввел ли пользователь город или страну в Folium

Я пытаюсь разработать программу, в которой пользователь вводит название страны, города или небольшого населенного пункта, а затем маркер на карте мира точно показывает местоположение, а также название этой страны, города или небольшого населенного пункта.

Есть идеи, какой подход я могу использовать для достижения этой цели?

Ниже представлен исходный код Python, который у меня есть на данный момент:

def DisplayMap(request):
if request.method == 'POST':
    mapForm = MapDataForm(request.POST)

    if mapForm.is_valid():
        mapForm.save()
        # return redirect('/') will redirect the user back to
        # 127.0.0.1:8000/ which is the homepage of the application.
        # Instead the user must be redirected back to the page that
        # is loaded with the 'display-map' url path name.
        return redirect('display-map')
else:
    mapForm = MapDataForm()

# For the following line to work, we must have at least one 'MapDatabase' object.
address = MapDatabase.objects.all().last()
location = geocoder.osm(address)

latitude = location.lat
longitude = location.lng

country = location.country
city = location.city

if latitude == None or longitude == None:
    address.delete()
    return HttpResponse('Your search input was invalid.')

# Here the map object is being created.
# The following line of code will center the map and zoom in at
# an appropriate distance.
mapObject = folium.Map(location=[19, -12], zoom_start=2)

# if(country == ''):
# After searching for a place, this marker will appear on the map.
folium.Marker([latitude, longitude], tooltip='Click for description',
              popup=city).add_to(mapObject)
# else:
# folium.Marker([latitude, longitude], tooltip='Click for description',
#               popup=country).add_to(mapObject)

mapObject = mapObject._repr_html_()

context = {
    'mapObject': mapObject,
    'mapForm': mapForm,
}

return render(request, 'map_app/DisplayMap.html', context)
Вернуться на верх