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


Posted in Python onDecember 22, 2020

1 简介

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

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

2 kepler.gl 2.4.0重要新特性

2.1 增量时间窗口

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

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

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

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

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

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

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应用将会变得非常容易,就像下面这个简单的例子一样:

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

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的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python类继承用法实例分析
Oct 10 Python
利用python代码写的12306订票代码
Dec 20 Python
Python实现基本线性数据结构
Aug 22 Python
浅析Python中return和finally共同挖的坑
Aug 18 Python
Python在不同目录下导入模块的实现方法
Oct 27 Python
Python zip()函数用法实例分析
Mar 17 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
Apr 09 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
Jan 04 Python
python+OpenCV实现图像拼接
Mar 05 Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 Python
Python中使用Selenium环境安装的方法步骤
Feb 22 Python
Python批量解压&压缩文件夹的示例代码
Apr 04 Python
Python实现Word文档转换Markdown的示例
Dec 22 #Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
Dec 22 #Python
Django中ORM的基本使用教程
Dec 22 #Python
python通用数据库操作工具 pydbclib的使用简介
Dec 21 #Python
Python 多进程原理及实现
Dec 21 #Python
python-图片流传输的思路及示例(url转换二维码)
Dec 21 #Python
python 用pandas实现数据透视表功能
Dec 21 #Python
You might like
php开发过程中关于继承的使用方法分享
2011/06/17 PHP
php判断是否为json格式的方法
2014/03/04 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
2015/04/14 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
2011/10/13 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
jQuery常见开发技巧详细整理
2013/01/02 Javascript
对jQuery的事件绑定的一些思考(补充)
2013/04/20 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
vue使用drag与drop实现拖拽的示例代码
2017/09/07 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
分析Python中设计模式之Decorator装饰器模式的要点
2016/03/02 Python
Python中音频处理库pydub的使用教程
2017/06/07 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
Python入门必须知道的11个知识点
2018/03/21 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle
DE1103使用报告
2022/04/05 无线电
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android