gpt4 book ai didi

python - 使用 Bokeh 在 map 图 block 顶部添加分区统计图

转载 作者:行者123 更新时间:2023-12-01 01:48:33 32 4
gpt4 key购买 nike

我有学区学区的自定义形状文件,我可以将其绘制在 map 图 block 的顶部,例如使用 Folium 的 cartodbpositron。但是,我想添加小部件,以便在选择不同的小部件选项时, map 渲染会更新。为此,我使用 Bokeh。但是,在 Bokeh 上, map 绘图是在空 Canvas 上完成的,而不是在 map 图 block 上完成的,并且我在将 shapefile 边界覆盖在 Bokeh 中的 map 图 block 顶部时遇到问题。

如果这个问题没有完整的代码示例,我们深表歉意,但问题不一定是编程问题,而是数据包功能问题。

提前致谢。

最佳答案

问题是 Bokeh map 图 block 需要 Web 墨卡托坐标。事实上,我的自定义形状文件具有纬度/经度坐标对,使其与 Bokeh map 图 block 渲染不兼容。

我使用以下方法将多边形坐标从纬度/经度对转换为 Web 墨卡托坐标:

def latlontomercator_math(row):
x_lon = row['x']
y_lat = row['y']

# longitudes are a one step transformation
x_mer = list(map(lambda x: x * 20037508.34 / 180, x_lon))

# latitudes are a two step transformation
y_mer_aux = list(map(lambda y: math.log(math.tan((90 + y) * math.pi / 360))
/ (math.pi / 180), y_lat))
y_mer = list(map(lambda y: y * 20037508.34 / 180, y_mer_aux))

return(x_mer, y_mer)

data[['x_mer', 'y_mer']] = data.apply(latlontomercator_math, axis=1).apply(pd.Series)

该函数被编写为使用 Pandas 数据帧按行应用。

关于python - 使用 Bokeh 在 map 图 block 顶部添加分区统计图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50978080/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com