scattermapbox plot.ly тире не появляется - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь отобразить scattermap с пользовательским файлом geojson, но у меня возникают трудности с отображением карты.

Я могу хорошо отобразить файл geojson, если установить source слоя на URL, где размещены данные. Пример этого представлен ниже вместе с изображением:

...
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
        )
    )
)])
...

enter image description here

Однако я хотел бы сначала загрузить 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 )

Loading Hanging image

Я пытался следовать теме здесь , чтобы увидеть, есть ли какие-либо ошибки в том, что я делаю, но я верю, что вычисляю это правильно. Я также здесь , но не вижу проблемы с моим кодом по сравнению с примером.

Любая помощь будет принята с благодарностью.

Спасибо!

...