1 简介

  kepler.gl作为开源地理空间数据可视化神器,也一直处于活跃的迭代开发状态下。而在前不久,kepler.gl正式发布了其2.4.0版本,下面我们就来对其重要的新特性进行介绍:

图1

2 kepler.gl 2.4.0重要新特性

2.1 增量时间窗口

  在这次更新中,为时间序列数据的可视化新增了增量时间窗口功能,在上一个版本2.3.2中,当我们的数据集带有时间类型字段时,在添加对应的Filters之后,显示出的时间窗口是这个样子的:

图2

  而在2.4.0版本中,时间窗口如图3所示:

图3

  在如图4一样从默认的Moving Time Window模式切换到Incremental Time Window模式之后,就可以使用增量时间窗口模式,画面中的数据会从起点开始持续叠加:

图4

2.2 Python接口新增_repr_html_()方法

  而这个更新不仅针对原生的kepler.gl,还针对其面向Python的接口keplergl新增_repr_html_()方法,使得将kepler.glflask等进行结合更加方面,就像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应用将会变得非常容易,就像下面这个简单的例子一样:

图5

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()

  以上就是本文的全部内容,欢迎在评论区与我进行讨论~

最新文章

  1. python BeautifulSoup模块的简要介绍
  2. 百度Map与HT for Web结合的GIS网络拓扑应用
  3. 360极速浏览器UA怪异以及如何用js判断360浏览器
  4. (剑指Offer)面试题20:顺时针打印矩阵
  5. xmlns="http://schemas.xmlsoap.org/wsdl/",这是什么意思,我只知道:xmlns:xx=....,
  6. https://pta.patest.cn/pta/test/15/exam/3/question/724
  7. iosNSMutableAttributedString 简单操作
  8. 动态加载机Servlet容器加载器
  9. vue数据变化的监控是如何做到的
  10. 「JLOI2015」城池攻占 解题报告
  11. Spring AutoWire
  12. java----微服务架构
  13. T-SQL基础(一)之简单查询
  14. Selenium之WebDriver元素定位方法
  15. python3爬虫二
  16. [Nginx]Nginx的基本配置与优化1(完整配置示例与虚拟主机配置)
  17. CF1073E Segment Sum
  18. 线程句柄和线程ID的区别
  19. ajax实现json循环输出结果
  20. SQLAlchemy_定义(一对一/一对多/多对多)关系

热门文章

  1. 「CSP-S 2019」格雷码
  2. jenkins运行错误解决办法
  3. nginx proxy_pass参数配置带不带‘/’
  4. java base64加解密
  5. 2020年团体程序设计天梯赛-总决赛 L2-4 网红点打卡攻略
  6. LaTeX中的数学公式之矩阵
  7. 转:python提取浏览器Cookie
  8. PyQt(Python+Qt)学习随笔:QMdiArea多文档界面部件的subWindowActivated信号
  9. PyQt(Python+Qt)学习随笔:model/view架构中QTableView视图的标题显示不正常问题
  10. PyQt(Python+Qt)学习随笔:部件的minimumSize、minimumSizeHint之间的区别与联系