Python: как обновить GeoJSONDataSource? - PullRequest
0 голосов
/ 30 мая 2019

Bokeh в настоящее время поддерживает GeoJSONDataSource, что значительно облегчает работу и вывод данных из GeoDataFrame, как описано здесь .

Однако я не могу обновить.Предположим, у нас есть два шейп-файла shape1.shp и shape2.shp.Это то, что я делаю, но я не могу обновить форму

import geopandas as gpd
from bokeh.plotting import save, figure
from bokeh.models import GeoJSONDataSource
from bokeh.models import Select
from bokeh.io import curdoc
from bokeh.layouts import row, column, widgetbox,layout, gridplot

f1  = gpd.read_file('shape1.shp')
f1g  = GeoJSONDataSource(geojson=f1.to_json())

f2  = gpd.read_file('shape2.shp')
f2g  = GeoJSONDataSource(geojson=f2.to_json())

select =  Select(title="Shape",  options = ['F1','F2'], value, ='F1')
geo_source1 = f1g ### first shape
p = figure(plot_width=600,plot_height=500)
p.patches('xs', 'ys', source = geo_source1, fill_color='white')

def update_plot(attrname, old, new):
    if select.value == 'F2':
        geo_source1.geojson = f1g.geojson   #first shape
    if select.value == 'F2':
        geo_source1.geojson = f2g.geojson   #second shape

select.on_change('value', update_plot)

controls = widgetbox(select1)
first_row = row(controls,p)
curdoc().add_root(first_row)
...