地图可视化神器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 相关文章推荐
10种检测Python程序运行时间、CPU和内存占用的方法
Apr 01 Python
python去除所有html标签的方法
May 05 Python
python+opencv实现的简单人脸识别代码示例
Nov 14 Python
python 通过字符串调用对象属性或方法的实例讲解
Apr 21 Python
谈谈Python中的while循环语句
Mar 10 Python
python文件转为exe文件的方法及用法详解
Jul 08 Python
Python pandas实现excel工作表合并功能详解
Aug 29 Python
Python如何优雅获取本机IP方法
Nov 10 Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 Python
Python 读取WAV音频文件 画频谱的实例
Mar 14 Python
如何安装并在pycharm使用selenium的方法
Apr 30 Python
K近邻法(KNN)相关知识总结以及如何用python实现
Jan 28 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 中文处理技巧
2010/04/25 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
jQuery实现扑克正反面翻牌效果
2017/03/10 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
基于vue 实现token验证的实例代码
2017/12/14 Javascript
不得不知的ES6小技巧
2018/07/28 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
pandas如何处理缺失值
2019/07/31 Python
python opencv实现证件照换底功能
2019/08/19 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
python 下载文件的几种方法汇总
2021/01/06 Python
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
2012/06/04 HTML / CSS
美国保健品专家:Life Extension
2018/05/04 全球购物
Notino法国:购买香水和化妆品
2019/04/15 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
总裁岗位职责
2013/12/04 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
环保志愿者活动总结
2014/06/27 职场文书
不同意离婚代理词
2015/05/23 职场文书
详解Python requests模块
2021/06/21 Python
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS