gpt4 book ai didi

javascript - 从 Bokeh Google map 包装器调用 Javascript 方法 (fitBounds())

转载 作者:行者123 更新时间:2023-12-02 23:27:03 24 4
gpt4 key购买 nike

我有一个包含多个纬度/经度数据点的 Bokeh Google map 图,我想使用 Google map v3 API 的 fitBounds() 方法来设置缩放级别。

我有一个 Google map 图已启动并正在运行,在我的网站上显示并显示数据点,但我需要手动设置缩放。

import bokeh.io
import bokeh.models
import bokeh.plotting
import pandas as pd

data = {
'Latitude [deg]': [18.46, 25.7, 32.3],
'Longitude [deg]': [-66, -80.2, -64.8],
}
data_frame = pd.DataFrame.from_dict(data)
data_source = bokeh.models.ColumnDataSource(data_frame)
mean_lat = data_frame['Latitude [deg]'].mean()
mean_lng = data_frame['Longitude [deg]'].mean()
gmap_options = bokeh.models.GMapOptions(lat=mean_lat, lng=mean_lng, zoom=10, map_type='satellite')
xy_gmap = bokeh.plotting.gmap('SuPeRSeCrEtAPIkey', gmap_options)
xy_gmap.circle(x='Longitude [deg]', y='Latitude [deg]', source=data_source, color="red")

# A callback like this? Could make the call in JavaScript after the page is loaded, and update map zoom??
# xy_gmap.fitBounds(x='Longitude [deg]', y='Latitude [deg]', source=data_source)

bokeh.io.show(xy_gmap)

我希望 map 的边界以尽可能最低的缩放比例包围我的数据框中的所有点(如 Javascript 中的 fitBounds() 所做的那样)。目前 map 只能缩放到手动设置的级别。

最佳答案

从 Bokeh 1.2 开始,没有内置方法可以实现此目的。我能提供的唯一建议是注意有一个全局 Bokeh.index在 JavaScript 方面,其中有 GMapPlotView对应的GmapPlot你做的。该 View 有一个属性 .map那是实际的 Google map 对象。您可以调用fitBounds JavaScript 代码中的方法。 Bokeh GMapPlot对象遵循 Google 的引导来绘制边界,因此如果它们得到更新,轴等应该做出响应。

否则我只能建议opening a GitHub issue讨论将其添加为新功能。

关于javascript - 从 Bokeh Google map 包装器调用 Javascript 方法 (fitBounds()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56687744/

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