phi*_*hem 2 html javascript python leaflet folium
我正在基于此页面使用简单的标记来开发Python Folium的简单实现。
import folium
map_1 = folium.Map(location=[45.372, -121.6972], zoom_start=12,
tiles='Stamen Terrain')
map_1.simple_marker([45.3288, -121.6625], popup='Mt. Hood Meadows')
map_1.simple_marker([45.3311, -121.7113], popup='Timberline Lodge')
map_1.create_map(path='mthood.html')
Run Code Online (Sandbox Code Playgroud)
我可以在弹出窗口中包含HTML,但是我想嵌入一个网页。这是我的模型。

可能吗?
小智 5
这里是我如何进行的简单示例:
def get_frame(url,width,height):
html = """
<!doctype html>
<html>
<iframe id="myIFrame" width="{}" height="{}" src={}""".format(width,height,url) + """ frameborder="0"></iframe>
<script type="text/javascript">
var resizeIFrame = function(event) {
var loc = document.location;
if (event.origin != loc.protocol + '//' + loc.host) return;
var myIFrame = document.getElementById('myIFrame');
if (myIFrame) {
myIFrame.style.height = event.data.h + "px";
myIFrame.style.width = event.data.w + "px";
}
};
if (window.addEventListener) {
window.addEventListener("message", resizeIFrame, false);
} else if (window.attachEvent) {
window.attachEvent("onmessage", resizeIFrame);
}
</script>
</html>"""
popup = get_frame(url,
width,
height)
marker = folium.CircleMarker([lat,lon],
radius=radius,
color='#3186cc',
fill_color = '#3186cc',
popup=popup)
marker.add_to(map)
iframe = folium.element.IFrame(html=html,width=width,height=height)
popup = folium.Popup(iframe,max_width=width)
return popup
Run Code Online (Sandbox Code Playgroud)
我从此链接中获取了脚本,您可以检查运行代码段
def get_frame(url,width,height):
html = """
<!doctype html>
<html>
<iframe id="myIFrame" width="{}" height="{}" src={}""".format(width,height,url) + """ frameborder="0"></iframe>
<script type="text/javascript">
var resizeIFrame = function(event) {
var loc = document.location;
if (event.origin != loc.protocol + '//' + loc.host) return;
var myIFrame = document.getElementById('myIFrame');
if (myIFrame) {
myIFrame.style.height = event.data.h + "px";
myIFrame.style.width = event.data.w + "px";
}
};
if (window.addEventListener) {
window.addEventListener("message", resizeIFrame, false);
} else if (window.attachEvent) {
window.attachEvent("onmessage", resizeIFrame);
}
</script>
</html>"""
popup = get_frame(url,
width,
height)
marker = folium.CircleMarker([lat,lon],
radius=radius,
color='#3186cc',
fill_color = '#3186cc',
popup=popup)
marker.add_to(map)
iframe = folium.element.IFrame(html=html,width=width,height=height)
popup = folium.Popup(iframe,max_width=width)
return popup
Run Code Online (Sandbox Code Playgroud)