如何修改kepler.gl地图的默认起始位置使其适配数据所在地
问题描述
无论你的数据位于地图上的哪个位置,每次可视化kepler.gl地图时,默认起始位置均为San Francisco。
示例代码如下:
import pandas as pd from keplergl import KeplerGl df = pd.read_csv("<dataset.csv>") # df 内为法国区域的数据 map_1 = KeplerGl(height=400, data={"data_1": df}, config=config) map_1
默认渲染时需要手动平移地图到数据所在的法国区域,可通过以下两种方案修改默认起始位置:
解决方案
方法1:手动配置初始视口
在初始化KeplerGl实例的config参数中指定mapState字段,自定义初始经纬度、缩放层级等参数,法国区域的参考代码如下:
import pandas as pd from keplergl import KeplerGl df = pd.read_csv("<dataset.csv>") # 自定义地图配置 custom_config = { "version": "v1", "config": { "mapState": { "bearing": 0, "dragRotate": False, "latitude": 46.2276, "longitude": 2.2137, "pitch": 0, "zoom": 5, "isSplit": False } } } map_1 = KeplerGl(height=400, data={"data_1": df}, config=custom_config) map_1
如果不清楚目标区域的参数,可以先手动调整地图到理想展示状态,调用map_1.config导出当前配置,直接复用即可。
方法2:自动适配数据边界
无需手动查询经纬度,调用fit_bounds方法让地图自动缩放适配所有数据的范围,参考代码:
import pandas as pd from keplergl import KeplerGl df = pd.read_csv("<dataset.csv>") map_1 = KeplerGl(height=400, data={"data_1": df}) # 传入数据的经纬度边界,字段名和你的实际数据保持一致即可 map_1.fit_bounds([ [df['lon'].min(), df['lat'].min()], [df['lon'].max(), df['lat'].max()] ]) map_1
内容的提问来源于stack exchange,提问作者SeF
相关产品推荐
相关产品推荐

