使用Python与ArcGIS在Power BI中创建自定义地图的可行性及脚本咨询
关于在Power BI中通过Python可视化渲染ArcGIS地图的解决方案
你此前在Jupyter notebooks中可正常运行的ArcGIS API for Python代码无法直接在Power BI的Python可视化中运行,核心原因是Jupyter原生支持ArcGIS API的ipywidget交互式部件渲染,而Power BI的Python可视化环境仅支持渲染静态图像,无法直接识别并渲染my_gis.map()生成的交互式部件对象。
你可以通过将ArcGIS地图先导出为临时静态图片、再通过matplotlib渲染的方式实现需求,操作步骤及参考代码如下:
- 首先确认Power BI关联的Python环境已安装
arcgis、matplotlib、pillow依赖包,建议直接使用你此前开发用的Anaconda环境作为Power BI的Python运行环境,避免依赖版本冲突。 - 将原代码替换为如下脚本即可实现地图渲染:
from arcgis.gis import GIS import matplotlib.pyplot as plt from PIL import Image import tempfile import os # 初始化GIS对象 my_gis = GIS() m = my_gis.map() # 此处可添加你原有逻辑,比如设置地图中心点、缩放级别、加载自定义图层、配置样式等 # 示例:设置中心点为北京、缩放级别10 # m.center = [39.9042, 116.4074] # m.zoom = 10 # 将地图导出为临时PNG文件 temp_file_path = os.path.join(tempfile.gettempdir(), "arcgis_pbi_temp.png") m.export(temp_file_path, width=800, height=600) # 读取临时图片并渲染到Power BI map_img = Image.open(temp_file_path) plt.figure(figsize=(10, 7), dpi=120) plt.imshow(map_img) plt.axis("off") plt.show()
注意:上述方案仅支持生成静态地图可视化,如果你需要保留ArcGIS地图的交互式缩放、点选查询等能力,当前Power BI的Python可视化暂不支持该需求,可选择将自定义配置好的地图发布为ArcGIS在线web地图,再通过Power BI内置的ArcGIS可视化组件加载使用。
内容的提问来源于stack exchange,提问作者ajay
相关产品推荐
相关产品推荐

