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

时间:2022-04-07 10:50:40

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

  1. from flask import Flask
  2. from keplergl import KeplerGl
  3.  
  4. app = Flask(__name__)
  5.  
  6. @app.route('/')
  7. def index():
  8.  
  9. map_1 = KeplerGl()
  10.  
  11. return map_1._repr_html_()
  12.  
  13. if __name__ == '__main__':
  14. app.run(debug=True)

  而如果你对dash有所了解,那么纯Python快速开发出一个嵌入kepler.gl的交互式web应用将会变得非常容易,就像下面这个简单的例子一样:

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

  1. import dash
  2. from keplergl import KeplerGl
  3. import dash_html_components as html
  4. import dash_core_components as dcc
  5. from dash.dependencies import Input, Output
  6. import requests
  7.  
  8. app = dash.Dash(__name__)
  9.  
  10. app.layout = html.Div(
  11. [
  12. html.H1("Dash结合Kepler.gl:"),
  13. dcc.Dropdown(
  14. id='demo-dropdown',
  15. options=[
  16. {'label': '重庆', 'value': '重庆'}
  17. ],
  18. style={'width': '300px'}
  19. ),
  20. html.Iframe(id='iframe',
  21. style={'height': '800px', 'width': '1900px'})
  22. ]
  23. )
  24.  
  25. @app.callback(
  26. Output('iframe', 'srcDoc'),
  27. [Input('demo-dropdown', 'value')]
  28. )
  29. def switch_area(selected_area):
  30.  
  31. if selected_area == '重庆':
  32. map_1 = KeplerGl(data={
  33. selected_area: requests.get('https://geo.datav.aliyun.com/areas_v2/bound/500000_full.json').json()
  34. },
  35. config={
  36. "mapState": {
  37. "bearing": 0,
  38. "dragRotate": False,
  39. "latitude": 29.751819,
  40. "longitude": 107.441431,
  41. "pitch": 0,
  42. "zoom": 6,
  43. "isSplit": False
  44. }
  45. })
  46.  
  47. return map_1._repr_html_().decode()
  48.  
  49. else:
  50. map_1 = KeplerGl(data={
  51. selected_area: requests.get('https://geo.datav.aliyun.com/areas_v2/bound/100000_full.json').json()
  52. },
  53. config={
  54. "mapState": {
  55. "bearing": 0,
  56. "dragRotate": False,
  57. "latitude": 29.751819,
  58. "longitude": 107.441431,
  59. "pitch": 0,
  60. "zoom": 3,
  61. "isSplit": False
  62. }
  63. })
  64.  
  65. return map_1._repr_html_().decode()
  66.  
  67. if __name__ == '__main__':
  68. app.run_server()

以上就是地图可视化神器kepler.gl python接口的使用方法的详细内容,更多关于python 地图可视化神器kepler.gl的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/feffery/p/14164546.html