首页 > 解决方案 > scattermapbox plot.ly dash 没有出现

问题描述

我正在尝试使用自定义 geojson 文件显示一个 scattermapbox,但在渲染地图时遇到了困难。

如果我将source图层的 设置为托管数据的 url,我可以很好地渲染 geojson 文件。下面提供了一个示例以及图像:

...
app.layout = html.Div( [ dcc.Graph(
    id = 'TxWCD-choropleth',
    figure = dict(
        data = [dict(
            type = 'scattermapbox'
        )],
        layout = dict(
            mapbox   = dict(
                layers =[ layer_t ],
                accesstoken = mapbox_access_token,
                center  = dict(
                    lat = 31.3,
                    lon = -99.2
                ),
                zoom = 5.2,
                style='light'
            ),
            height   = 900,
            autosize = True
        )
    )
)])
...

在此处输入图像描述

但是,我想先将 json 下载到 python 中的一个对象中,以便我可以过滤和自定义数据。但是,当我尝试这样做时,地图会挂起并且永远不会渲染。每当我在浏览器中打开检查器时,也不会出现错误。下面的代码重新创建了我的问题以及错误的图像:

import dash
import json
import os
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import geopandas as gpd


# public token
mapbox_access_token = MAPBOX_TOKEN

app = dash.Dash(__name__)

pf = pd.read_json( "https://raw.githubusercontent.com/TNRIS/tx.geojson/master/counties/tx_counties.geojson" )

layer_t = dict(

        sourcetype = "geojson",
        type = "fill",
        color = "#265465",
        source = json.loads( pf.to_json() )

)


app.layout = html.Div( [ dcc.Graph(
    id = 'TxWCD-choropleth',
    figure = dict(
        data = [dict(
            type = 'scattermapbox'
        )],
        layout = dict(
            mapbox   = dict(
                layers =[ layer_t ],
                accesstoken = mapbox_access_token,
                center  = dict(
                    lat = 31.3,
                    lon = -99.2
                ),
                zoom = 5.2,
                style='light'
            ),
            height   = 900,
            autosize = True
        )
    )
)])

if __name__ == '__main__':
    app.run_server( port = 8051, debug = True )

正在加载悬挂图像

我已经尝试按照这里的线程来查看我正在做的事情是否有任何错误,但我相信我正在正确计算它。我也在这里,但与示例相比,我的代码没有问题。

任何帮助将不胜感激。

谢谢!

标签: pythonpandasplotlygeopandasplotly-dash

解决方案


推荐阅读