Как передать значение Dynamic String из Python в html на фолиевой карте? - PullRequest
1 голос
/ 28 апреля 2019

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

Проблема: Как передать динамическое строковое значение из Python в HTML длякаждый маркер на карте.

Я могу правильно связать изображения с каждым маркером, но не могу связать текстовые поля, такие как Имена и т. д. Не имеет значения, помещаю ли я html внутри или вне цикла for, это всегдадает мне неправильное статическое значение.

PS - я новичок в программировании

# creating map layout, center point & view
m_sat = folium.Map(location=[28.595793, 77.414752], zoom_start=13, tiles='https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', attr='Created by')   # added Esri_WorldImagery  

html = '''<img ALIGN="Right" src="data:image/png;base64,{}">\
<h1>Name: </h1>{{ var_pass }}<br />\
<h2>Location: </h2>Noida<br />'''.format

# creating for loop below for dynamic content
for plot_numb in range(address.shape[0]):

    picture = base64.b64encode(open(str(plot_numb+1)+'.png','rb').read()).decode()
    iframe = IFrame(html(picture), width=300+200, height=300+20)
    popup = folium.Popup(iframe, max_width=650)
    icon = folium.Icon(color="white", icon="cloud", icon_color='black')
    tooltip = 'Click to view more about: '+address.iloc[plot_numb,0]
    var_pass = address.iloc[plot_numb,0] 
    marker = folium.Marker(location=address.iloc[plot_numb,1], 
    popup=popup, tooltip=tooltip, icon=icon).add_to(m_sat)

m_sat 

Я должен иметь возможность отображать информацию о соответствующем имени для каждого маркера на карте.
Присоединение концарезультат картина проблем: enter image description here

Пример "адресного" Фрейма данных:

        Name           Location
    0   Farzi Cafe     [28.562, 77.387]
    1   Skylounge      [28.562, 77.387]
    2   Tamasha Cafe   [28.562, 77.387]
    3   Starbucks      [28.565, 77.449]
    4   Pizza Hut      [28.620, 77.425]  

1 Ответ

2 голосов
/ 28 апреля 2019

Попробуйте:

var_name = 'restaurant_name'
var_loc = 'restaurant_location'
# var_picture =  <base64 image data>
html = f'''<img ALIGN="Right" src="data:image/png;base64,{var_picture}">\
<h1>Name: </h1>{var_name}<br />\
<h2>Location: </h2>{var_loc}<br />\
'''
html  
## '<img ALIGN="Right" src="data:image/png;base64,{}"><h1>Name: </h1>restaurant_name<br /><h2>Location: </h2>restaurant_location<br />'  

Теперь переберите фрейм данных для всех имен и местоположений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...