地圖可視化神器kepler.gl python接口的使用方法

1 簡介

  kepler.gl作為開源地理空間數據可視化神器,也一直處於活躍的迭代開發狀態下。而在前不久,kepler.gl正式發佈瞭其2.4.0版本,下面我們就來對其重要的新特性進行介紹:

2 kepler.gl 2.4.0重要新特性

2.1 增量時間窗口

  在這次更新中,為時間序列數據的可視化新增瞭增量時間窗口功能,在上一個版本2.3.2中,當我們的數據集帶有時間類型字段時,在添加對應的Filters之後,顯示出的時間窗口是這個樣子的:

  而在2.4.0版本中,時間窗口如圖所示:

  在如下圖一樣從默認的Moving Time Window模式切換到Incremental Time Window模式之後,就可以使用增量時間窗口模式,畫面中的數據會從起點開始持續疊加:

2.2 Python接口新增_repr_html_()方法

  而這個更新不僅針對原生的kepler.gl,還針對其面向Python的接口keplergl新增_repr_html_()方法,使得將kepler.gl與flask等進行結合更加方面,就像folium中的_repr_html_()方法一樣:

結合flask

from flask import Flask
from keplergl import KeplerGl

app = Flask(__name__)

@app.route('/')
def index():
  
  map_1 = KeplerGl()
  
  return map_1._repr_html_()

if __name__ == '__main__':
  app.run(debug=True)

  而如果你對dash有所瞭解,那麼純Python快速開發出一個嵌入kepler.gl的交互式web應用將會變得非常容易,就像下面這個簡單的例子一樣:

import dash
from keplergl import KeplerGl
import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Input, Output
import requests

app = dash.Dash(__name__)

app.layout = html.Div(
  [
    html.H1("Dash結合Kepler.gl:"),
    dcc.Dropdown(
      id='demo-dropdown',
      options=[
        {'label': '重慶', 'value': '重慶'}
      ],
      style={'width': '300px'}
    ),
    html.Iframe(id='iframe',
          style={'height': '800px', 'width': '1900px'})
  ]
)

@app.callback(
  Output('iframe', 'srcDoc'),
  [Input('demo-dropdown', 'value')]
)
def switch_area(selected_area):

  if selected_area == '重慶':
    map_1 = KeplerGl(data={
               selected_area: requests.get('https://geo.datav.aliyun.com/areas_v2/bound/500000_full.json').json()
             },
             config={
               "mapState": {
                 "bearing": 0,
                 "dragRotate": False,
                 "latitude": 29.751819,
                 "longitude": 107.441431,
                 "pitch": 0,
                 "zoom": 6,
                 "isSplit": False
               }
             })

    return map_1._repr_html_().decode()

  else:
    map_1 = KeplerGl(data={
               selected_area: requests.get('https://geo.datav.aliyun.com/areas_v2/bound/100000_full.json').json()
             },
             config={
               "mapState": {
                 "bearing": 0,
                 "dragRotate": False,
                 "latitude": 29.751819,
                 "longitude": 107.441431,
                 "pitch": 0,
                 "zoom": 3,
                 "isSplit": False
               }
             })

    return map_1._repr_html_().decode()

if __name__ == '__main__':
  app.run_server()

以上就是地圖可視化神器kepler.gl python接口的使用方法的詳細內容,更多關於python 地圖可視化神器kepler.gl的資料請關註WalkonNet其它相關文章!

推薦閱讀: