Как обновить провайдера тайлов с помощью функции обратного вызова на графике Bokeh, не перекрывая график? - PullRequest
0 голосов
/ 30 января 2020

Я строю некоторые точки на карте с некоторыми плитками на заднем плане. Я добавляю меню выбора, чтобы выбрать из различных поставщиков плитки. Когда я меняю провайдера, отображаются новые плитки, но поверх точек И прежних плиток, которые остаются ниже.

Как я могу просто заменить плитки на новые, не накапливая слои и не оставляя их ниже точек?

Пример кода ниже:

tiles = {'OpenStreetMap c': WMTSTileSource(url='http://c.tile.openstreetmap.org/{Z}/{X}/{Y}.png'),
         'ESRI': WMTSTileSource(url='https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{Z}/{Y}/{X}.jpg'),
         'Wikipedia': WMTSTileSource(url='https://maps.wikimedia.org/osm-intl/{Z}/{X}/{Y}@2x.png')}

#Setting up the figure
p = figure()
p.circle('x', 'y', source=source)
p.add_tiles(tiles['ESRI'])

#select menu
tile_prov_select  = Select(title="Tile Provider", value='NA', options=['OpenStreetMap c', 'ESRI', 'Wikipedia'])

#select menu action
def change_tiles_callback(attr, old, new):
    p.add_tile(tiles[new])
tile_prov_select.on_change('value', change_tiles_callback)

Есть ли способ передачи провайдера плиток в качестве аргумента figure () вместо использования метода add_tiles ()?

...