Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 3, 2025 10:59:17

Sergey1978
Зарегистрирован: 2025-11-03
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Показать флаг страны при выборе мышкой на карте мира Folium

Здравствуйте!
Почти написал программу, создающую 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')

Офлайн

#2 Ноя. 4, 2025 06:19:17

Sergey1978
Зарегистрирован: 2025-11-03
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Показать флаг страны при выборе мышкой на карте мира Folium

Вот так работает, но 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')

Отредактировано Sergey1978 (Ноя. 4, 2025 06:21:12)

Офлайн

#3 Ноя. 4, 2025 21:59:52

Alex.Pro.
От: Марик
Зарегистрирован: 2024-11-13
Сообщения: 92
Репутация: +  2  -
Профиль   Отправить e-mail  

Показать флаг страны при выборе мышкой на карте мира Folium

Sergey1978, если вам не очень сложно, обратите внимание как другие люди оформляют свои сообщения (хотя бы в соседних топиках). Если в следующий раз при вставке кода потрудитесь использовать квотирование - будет больше шансов что кто-то потрудится понять ваш код и что-нибудь ответит.

Офлайн

#4 Ноя. 5, 2025 08:54:57

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10008
Репутация: +  857  -
Профиль   Отправить e-mail  

Показать флаг страны при выборе мышкой на карте мира Folium

Sergey1978
Вот так работает, но URL показывается просто текстом (даже не ссылкой).
Перечитай свой код на форуме, половина данных пропала, так как надо эранировать код на форумах. Иначе движки чистят сообщения от мусора и стирают переменные.



Офлайн

#5 Ноя. 6, 2025 17:48:47

Sergey1978
Зарегистрирован: 2025-11-03
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Показать флаг страны при выборе мышкой на карте мира Folium

Ясно, попробую.

Офлайн

#6 Ноя. 8, 2025 04:45:33

Sergey1978
Зарегистрирован: 2025-11-03
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Показать флаг страны при выборе мышкой на карте мира Folium

Вот:

 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)

Офлайн

#7 Ноя. 8, 2025 17:48:03

Alex.Pro.
От: Марик
Зарегистрирован: 2024-11-13
Сообщения: 92
Репутация: +  2  -
Профиль   Отправить e-mail  

Показать флаг страны при выборе мышкой на карте мира Folium

Sergey1978
Как сделать, чтобы картинка загружалась с этого URL ?
К сожалению, я не знаком ни с folium, ни с geopandas. Но! Мой VS Code, увидев ваш код, сразу выругался на неправильный символ (кавычку) в стр.10, поз.73. В вашем первом примере, как я сейчас заметил, тоже полно разнокалиберных, не парных кавычек. Будьте внимательнее с кавычками.
В конце концов, если я правильно понял, ваш код должен создавать файл ‘map.html’? И что, разрешите полюбопытствовать, оказывается в файле?

Офлайн

#8 Ноя. 9, 2025 07:16:50

Sergey1978
Зарегистрирован: 2025-11-03
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Показать флаг страны при выборе мышкой на карте мира Folium

Да, кавычка почему-то неправильная выскочила. Была правильная - '
HTML файл закинул сюда: https://dropmefiles.com/nvB4a

Офлайн

#9 Ноя. 10, 2025 00:10:04

Alex.Pro.
От: Марик
Зарегистрирован: 2024-11-13
Сообщения: 92
Репутация: +  2  -
Профиль   Отправить e-mail  

Показать флаг страны при выборе мышкой на карте мира Folium

Sergey1978
HTML файл закинул сюда
Ваша программа создаёт этот файл?! Он вызывает у меня шок и ужас. Файл html размером в 2,5 МегаБайта! Файл html, почти на 100% состоящий из одного скрипта! Скрипт, почти на 100% состоящий из массива данных! Я сомневаюсь что вы выбрали правильный путь для решения вашей задачи.
Я вижу что у вас в массиве данных присутствуют ссылки на изображения… Только для того, чтобы браузер показал картинку, ссылку на неё надо обернуть в тег <img src = …>. У вас этот тег сначала был, а потом пропал…

Офлайн

#10 Ноя. 14, 2025 17:30:58

Sergey1978
Зарегистрирован: 2025-11-03
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Показать флаг страны при выборе мышкой на карте мира Folium

Да, моя программа создает этот файл. Но мне нужно, чтобы ссылки на флаги открывались, а не путь к ним. И сделать это надо не правкой html файла, а правкой файла Python.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version