Я хотел бы сделать карту с возможностью масштабирования (например, с помощью колеса прокрутки). Сначала это работает, но после перезагрузки карты функция масштабирования перестает работать.
Другим решением было бы отображение инструментов +/- масштабирования на карте.
Вот минимальный сценарий, который воспроизводит проблему.
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
from dash.dependencies import Input, Output, State
import plotly.graph_objs as go
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/2011_february_us_airport_traffic.csv')
app.layout = html.Div([
html.Button('Update Graph',id='get'),
html.P("On first load, zoom works fine. After reloading, zoom doesn't work anymore."),
dcc.Graph(id='map')
])
@app.callback(
Output('map', 'figure'),
[Input('get', 'n_clicks')])
def update_map_callback(n_clicks):
return {
'data': [
go.Scattermapbox(
lat=df['lat'],
lon=df['long'],
mode='markers',
marker=dict(
size=4
)
)
],
'layout': go.Layout(
autosize=True,
hovermode='closest',
mapbox=dict(
accesstoken='enter-your-mapbox-key-here',
center=dict(
lat=40,
lon=-100
),
zoom=2
)
)}
if __name__ == '__main__':
app.run_server(debug=True)
Когда страница появляется впервые, можно увеличивать и уменьшать масштаб карты. Я ожидаю, что после нажатия кнопки «обновить график» масштабирование все равно должно работать. Однако при нажатии кнопки «Обновить график» уровень масштабирования на карте становится фиксированным.