Найти - Пользователи
Полная версия: Показать флаг страны при выборе мышкой на карте мира Folium
Начало » Python для новичков » Показать флаг страны при выборе мышкой на карте мира Folium
1 2
Sergey1978
Здравствуйте!
Почти написал программу, создающую html файл для показа флага страны при выборе мышкой на карте мира Folium. В скачанный GeoJson с контурами стран добавил путь к флагу для каждой страны (поле URL).
В folium.Popup не принимает почему-то этот параметр (str(URL)).
Помогите найти, в чем ошибка?

import folium
import pandas as pd
import geopandas as gpd
polit = gpd.read_file(“edownload/ne_50m_admin_0_countries.geojson2”)
m = folium.Map(location=, tiles='cartodbpositron', zoom_start=2, control_scale=True)

folium.features.GeoJson(polit[].to_json(),
name='country',
show=True,
style_function=lambda x: {'fillColor': ‘lightblue’,'color': ‘black’,'weight': 1,'fillOpacity':0.7},
highlight_function=lambda x: {'fillOpacity':1},
tooltip=folium.features.GeoJsonTooltip(fields'NAME', ‘ISO_A2_EH’,), aliases'Country ‘, ’Кратко ‘)),
popup=folium.Popup(folium.Html(’<img src='+str(URL)+'.gif ‘+’height=142 width=290>;',script=True), max_width=2650),
).add_to(m)

m.save('map.html')
Sergey1978
Вот так работает, но URL показывается просто текстом (даже не ссылкой).
Как сделать, чтобы картинка загружалась с этого URL ?

import folium
import geopandas as gpd
polit = gpd.read_file(“edownload/ne_50m_admin_0_countries.geojson2”)
m = folium.Map(location=, tiles='cartodbpositron', zoom_start=2, control_scale=True)
folium.features.GeoJson(polit[].to_json(),
name='country',
show=True,
style_function=lambda x: {'fillColor': ‘lightblue’,'color': ‘black’,'weight': 1,'fillOpacity':0.7},
highlight_function=lambda x: {'fillOpacity':1},
popup = folium.features.GeoJsonPopup ( fields=КВАДРАТНАЯ_СКОБКА_ОТКРЫЛАСЬ'URL'], aliases=КВАДРАТНАЯ_СКОБКА_ОТКРЫЛАСЬ'Url: ‘])
).add_to(m)
m.save(’map.html')
Alex.Pro.
Sergey1978, если вам не очень сложно, обратите внимание как другие люди оформляют свои сообщения (хотя бы в соседних топиках). Если в следующий раз при вставке кода потрудитесь использовать квотирование - будет больше шансов что кто-то потрудится понять ваш код и что-нибудь ответит.
py.user.next
Sergey1978
Вот так работает, но URL показывается просто текстом (даже не ссылкой).
Перечитай свой код на форуме, половина данных пропала, так как надо эранировать код на форумах. Иначе движки чистят сообщения от мусора и стирают переменные.
Sergey1978
Ясно, попробую.
Sergey1978
Вот:
 import folium
import geopandas as gpd
polit = gpd.read_file("e:/download/ne_50m_admin_0_countries.geojson2")
m = folium.Map(location=[50,0], tiles='cartodbpositron', zoom_start=2, control_scale=True)
folium.features.GeoJson(polit[['URL','geometry']].to_json(),
   name='country',
   show=True,
   style_function=lambda x: {'fillColor': 'lightblue','color': 'black','weight': 1,'fillOpacity':0.7},
   highlight_function=lambda x: {'fillOpacity':1},
   popup = folium.features.GeoJsonPopup (fields=['URL'], aliases=['Url: ‘])
).add_to(m)
m.save('map.html')
Alex.Pro.
Sergey1978
Как сделать, чтобы картинка загружалась с этого URL ?
К сожалению, я не знаком ни с folium, ни с geopandas. Но! Мой VS Code, увидев ваш код, сразу выругался на неправильный символ (кавычку) в стр.10, поз.73. В вашем первом примере, как я сейчас заметил, тоже полно разнокалиберных, не парных кавычек. Будьте внимательнее с кавычками.
В конце концов, если я правильно понял, ваш код должен создавать файл ‘map.html’? И что, разрешите полюбопытствовать, оказывается в файле?
Sergey1978
Да, кавычка почему-то неправильная выскочила. Была правильная - '
HTML файл закинул сюда: https://dropmefiles.com/nvB4a
Alex.Pro.
Sergey1978
HTML файл закинул сюда
Ваша программа создаёт этот файл?! Он вызывает у меня шок и ужас. Файл html размером в 2,5 МегаБайта! Файл html, почти на 100% состоящий из одного скрипта! Скрипт, почти на 100% состоящий из массива данных! Я сомневаюсь что вы выбрали правильный путь для решения вашей задачи.
Я вижу что у вас в массиве данных присутствуют ссылки на изображения… Только для того, чтобы браузер показал картинку, ссылку на неё надо обернуть в тег <img src = …>. У вас этот тег сначала был, а потом пропал…
Sergey1978
Да, моя программа создает этот файл. Но мне нужно, чтобы ссылки на флаги открывались, а не путь к ним. И сделать это надо не правкой html файла, а правкой файла Python.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB