python - 将文本添加到 Folium FastMarkerCluster 标记?
问题描述
使用以下代码,我尝试将文本添加到我的 folium FastMarkerCluster 标记中。下面的代码生成了一个地图,但没有成功添加文本。文本包含为对应于每个 lon lat 对的字符串。
我认为问题与包含文本列的 df 是熊猫系列对象这一事实有关。据我了解,这是在这种情况下应该如何指定“df.columnname”。然而,这并没有奏效。我也尝试将列变成一个列表,但这种方法也没有成功。任何指针都非常感谢。
xlat = guns2013['latitude'].tolist()
xlon = guns2013['longitude'].tolist()
locations = list(zip(xlat, xlon))
map2 = folium.Map(location=[38.9, -77.05], tiles='CartoDB dark_matter',
zoom_start=1)
marker_cluster = MarkerCluster().add_to(map2)
for point in range(0, len(locations)):
folium.Marker(locations[point],
popup='guns2013.texts'[point]).add_to(marker_cluster)
map2
解决方案
我玩过这个,最终你可以将弹出窗口从 python 传递给callback
函数,如下所示:
some_map = folium.Map(location=[df['latitude'].mean(),
df['longitude'].mean()],
zoom_start=9)
callback = ('function (row) {'
'var marker = L.marker(new L.LatLng(row[0], row[1]), {color: "red"});'
'var icon = L.AwesomeMarkers.icon({'
"icon: 'info-sign',"
"iconColor: 'white',"
"markerColor: 'green',"
"prefix: 'glyphicon',"
"extraClasses: 'fa-rotate-0'"
'});'
'marker.setIcon(icon);'
"var popup = L.popup({maxWidth: '300'});"
"const display_text = {text: row[2]};"
"var mytext = $(`<div id='mytext' class='display_text' style='width: 100.0%; height: 100.0%;'> ${display_text.text}</div>`)[0];"
"popup.setContent(mytext);"
"marker.bindPopup(popup);"
'return marker};')
some_map.add_child(FastMarkerCluster(df[['latitude', 'longitude','use_code_name']].values.tolist(), callback=callback))
推荐阅读
- node.js - Bot框架中节点的多个答案?
- javascript - JavaScript:清除间隔();不工作
- javascript - 使用 POST 方法在 JavaScript 中实现 NTLM
- r - 如何预测 R 中的成分数据
- python - 将 2 个向量转换为矩阵
- java - 错误:(15, 30) java: 不兼容的类型:com.sun.research.ws.wadl.Param 无法转换为 java.lang.annotation.Annotation
- angular - 如何在angular4中获取多个输入字段的值?
- javascript - 用于显示/隐藏页面区域的 javascript 按钮不会保持切换状态
- android - 控制另一个应用程序的音频播放
- php - Podio如何在触发item.delete webhook后检索项目?