Форум сайта python.su
0
Здравствуйте!
Почти написал программу, создающую html файл для показа флага страны при выборе мышкой на карте мира Folium. В скачанный GeoJson с контурами стран добавил путь к флагу для каждой страны (поле URL).
В folium.Popup не принимает почему-то этот параметр (str(URL)).
Помогите найти, в чем ошибка?
import folium
import pandas as pd
import geopandas as gpd
polit = gpd.read_file(“e
download/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')
Офлайн
0
Вот так работает, но URL показывается просто текстом (даже не ссылкой).
Как сделать, чтобы картинка загружалась с этого URL ?
import folium
import geopandas as gpd
polit = gpd.read_file(“e
download/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')
Отредактировано Sergey1978 (Ноя. 4, 2025 06:21:12)
Офлайн
2
Sergey1978, если вам не очень сложно, обратите внимание как другие люди оформляют свои сообщения (хотя бы в соседних топиках). Если в следующий раз при вставке кода потрудитесь использовать квотирование - будет больше шансов что кто-то потрудится понять ваш код и что-нибудь ответит.
Офлайн
857
Sergey1978Перечитай свой код на форуме, половина данных пропала, так как надо эранировать код на форумах. Иначе движки чистят сообщения от мусора и стирают переменные.
Вот так работает, но URL показывается просто текстом (даже не ссылкой).
Офлайн
0
Ясно, попробую.
Офлайн
0
Вот:
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')
Отредактировано Sergey1978 (Ноя. 8, 2025 04:49:28)
Офлайн
2
Sergey1978К сожалению, я не знаком ни с folium, ни с geopandas. Но! Мой VS Code, увидев ваш код, сразу выругался на неправильный символ (кавычку) в стр.10, поз.73. В вашем первом примере, как я сейчас заметил, тоже полно разнокалиберных, не парных кавычек. Будьте внимательнее с кавычками.
Как сделать, чтобы картинка загружалась с этого URL ?
Офлайн
0
Да, кавычка почему-то неправильная выскочила. Была правильная - '
HTML файл закинул сюда: https://dropmefiles.com/nvB4a
Офлайн
2
Sergey1978Ваша программа создаёт этот файл?! Он вызывает у меня шок и ужас. Файл html размером в 2,5 МегаБайта! Файл html, почти на 100% состоящий из одного скрипта! Скрипт, почти на 100% состоящий из массива данных! Я сомневаюсь что вы выбрали правильный путь для решения вашей задачи.
HTML файл закинул сюда
Офлайн
0
Да, моя программа создает этот файл. Но мне нужно, чтобы ссылки на флаги открывались, а не путь к ним. И сделать это надо не правкой html файла, а правкой файла Python.
Офлайн