在大叶弹出中显示多个属性

时间:2018-07-02 05:47:56

标签: python pandas iframe popup folium

我有一个数据库,其中包含使用叶状泡沫的弹出窗口中的火山名称,海拔高度和状态。 我正在为此目的使用iframe。 代码如下。 我很高兴得到快速的建议。 关于我必须在html部分和IFrame部分中进行的更改。

import folium
import pandas
data = pandas.read_csv("Volcanoes.txt")
lat = list(data["LAT"])
lon = list(data["LON"])
elev = list(data["ELEV"])
html = """<h4>Data</h4>
      %s m <br>Thanks!
"""
def color_producer(elevation):
    if elevation < 1000:
        return 'green'
    elif 1000 <= elevation < 3000:
        return 'orange'
    else:
        return 'red'

map = folium.Map(location=[38.58, -99.09], zoom_start=6, tiles="OpenStreetMap")
map.fit_bounds([[52.193636, -2.221575], [52.636878, -1.139759]])
tile2 = folium.TileLayer('Mapbox Bright')
map.add_child(tile2)
fgv = folium.FeatureGroup(name="Volcanoes")
for lt, ln, el in zip(lat, lon, elev):
    iframe = folium.IFrame(html=html % str(el), width=200,height=100)
    fgv.add_child(folium.CircleMarker(location=[lt, ln], radius = 6, popup=folium.Popup(iframe),
    fill_color=color_producer(el), fill=True,  color = 'grey', fill_opacity=0.7))
fgp = folium.FeatureGroup(name="Population")

def style_function(x):
    return {'fillColor':'green' if x['properties']['POP2005'] <= 10000000 else 'orange' if 10000000 < x['properties']['POP2005'] < 20000000 else 'red'}

fgp.add_child(folium.GeoJson(data=open('world.json', 'r', encoding='utf-8-sig').read(),
style_function=style_function))

map.add_child(fgp)
map.add_child(fgv)
map.add_child(folium.LayerControl())
map.save("Mapi.html")

0 个答案:

没有答案