Hi Experts,
I’m creating a live update to show some number on maps, the problem is that after every call back is fire, the zoom area resets to initial state.
I have checked by setting ‘uirevision = True’, Preserving UI State, like Zoom, in dcc.Graph with uirevision.
But unfortunately it does not work for me.
Code is here as below:
-- coding: UTF-8 --
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objects as go
import pandas as pd
from dash.dependencies import Input, Output
mapbox_access_token = r’pk.eyJ1IjoieWluY2hhb…’
app = dash.Dash(name)
app.layout = html.Div([
dcc.Graph(
    id='density-map',      
),    
html.Label('Dataset'),
dcc.Dropdown(
    id='dataset',
    options=[{'label': i, 'value': i} for i in df_new.columns],
    value=df_new.columns[0]
),  
dcc.Interval(
    id='interval-component',
    interval=3*1000, # in milliseconds
    n_intervals=0    
),
])
@app.callback(
Output(‘density-map’, ‘figure’),
[Input(‘interval-component’, ‘n_intervals’),
Input(‘dataset’, ‘value’)])
def generate_fig(n_intervals,dataset):
df = pd.read_csv(r'20191207 151623.csv')
fig = go.Figure(go.Scattermapbox(
    fill='toself',
    mode = "markers+text",textposition='bottom center',
    lon = Long_list,
    lat = Lat_list,
    marker = {'color': '#636efa'},          
    name='',
    hoverinfo='name+text',
    subplot='mapbox',
    hoverlabel_namelength =30,
))
#to show number on map
for index in df_low.index:
    fig.add_trace(
        go.Scattermapbox(
            lon = [(df_low['long_r'].loc[index] + df_low['long_l'].loc[index])/2],
            lat = [(df_low['lat_r'].loc[index] + df_low['lat_l'].loc[index])/2],
            text = str(df_low['TRAFFIC.USER.AVG'].loc[index])[:3],
            mode = 'markers+text',
            textfont=dict(color="black",size=20),
            textposition = 'bottom center',       
            name=df_low['cell name'].loc[index],
            hoverinfo='name',
            hoverlabel_namelength =30            
        )    
)
fig.update_layout(
    uirevision = True,
    mapbox = {'style':"satellite",
              'center': {'lon': 101.413412, 'lat': 14.626372},
               'zoom': 15,
              'accesstoken':r"pk.eyJ1IjoieWluY2hhbmdqaWFuIiwiYSI6ImNrM3gweXN5NDBmeXQzcHBpY2NkNXpiajMifQ.ruT1mpQ_j_T-ODNxEUIWfw"
              },
    showlegend = True 
    )     
    
return fig
if name == ‘main’:
app.run_server(host=‘127.0.0.1’, port=8053, debug=True)