使用绝对位置将文本添加到 Folium 地图
Add text to Folium map using an absolute position
我在我的 Python 程序中定义了:
fig = Figure(width, height)
map = folium.Map(location=[y, x], zoom_start=2)
fig.add_child(map)
如何使用绝对位置(不是 latitude/longitude 一个)向我的地图添加文本?
由图的宽度和高度的百分比定义的位置。
像
Text("Toto is my name", pos_x=0.1*width,pos_y=0.05*height)
我查了一下,好像没有这个功能,只要你有x,y坐标就可以很方便的给文字加注释。我参照this page and this page.
定制了
from folium.features import DivIcon
import folium
m = folium.Map([34.0302, -118.2352], zoom_start=13)
folium.map.Marker(
[34.0302, -118.2352],
icon=DivIcon(
icon_size=(250,36),
icon_anchor=(0,0),
html='<div style="font-size: 20pt">Toto is my name</div>',
)
).add_to(m)
m
这是我的解决方案。
FloatImage 完成图像的工作......
所以我决定将我的文本转换成 png 然后使用这个方法
from PIL import Image, ImageDraw, ImageFont
W, H = (300,200)
im = Image.new("RGBA",(W,H))
draw = ImageDraw.Draw(im)
msg = "pycoa.fr (data from: {})".format(mypandas.data_base)
w, h = draw.textsize(msg)
fnt = ImageFont.truetype('/Library/Fonts/Arial.ttf', 14)
draw.text((0,0), msg, font=fnt,fill=(0, 0, 0))
im.crop((0, 0,2*w,2*h)).save("pycoatextlogo.png", "PNG")
FloatImage("pycoatextlogo.png", bottom=0, left=0).add_to(map)
它并不完美,但它确实有效:)
我在我的 Python 程序中定义了:
fig = Figure(width, height)
map = folium.Map(location=[y, x], zoom_start=2)
fig.add_child(map)
如何使用绝对位置(不是 latitude/longitude 一个)向我的地图添加文本? 由图的宽度和高度的百分比定义的位置。 像
Text("Toto is my name", pos_x=0.1*width,pos_y=0.05*height)
我查了一下,好像没有这个功能,只要你有x,y坐标就可以很方便的给文字加注释。我参照this page and this page.
定制了from folium.features import DivIcon
import folium
m = folium.Map([34.0302, -118.2352], zoom_start=13)
folium.map.Marker(
[34.0302, -118.2352],
icon=DivIcon(
icon_size=(250,36),
icon_anchor=(0,0),
html='<div style="font-size: 20pt">Toto is my name</div>',
)
).add_to(m)
m
这是我的解决方案。 FloatImage 完成图像的工作...... 所以我决定将我的文本转换成 png 然后使用这个方法
from PIL import Image, ImageDraw, ImageFont
W, H = (300,200)
im = Image.new("RGBA",(W,H))
draw = ImageDraw.Draw(im)
msg = "pycoa.fr (data from: {})".format(mypandas.data_base)
w, h = draw.textsize(msg)
fnt = ImageFont.truetype('/Library/Fonts/Arial.ttf', 14)
draw.text((0,0), msg, font=fnt,fill=(0, 0, 0))
im.crop((0, 0,2*w,2*h)).save("pycoatextlogo.png", "PNG")
FloatImage("pycoatextlogo.png", bottom=0, left=0).add_to(map)
它并不完美,但它确实有效:)