Определение того, ввел ли пользователь город или страну в 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)