You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache Superset的Mapbox视图中使用PostGIS点格式经纬度?

在Apache Superset中用PostGIS函数配置Mapbox视图

我之前也碰到过一模一样的问题!Superset的Mapbox图表确实要求单独的纬度和经度字段,而PostGIS的location列是几何类型,得拆成两个字段才行,下面两种方法都能解决:

方法一:创建PostGIS视图(推荐,可复用)

如果这个数据集你会经常用到,最好先在PostgreSQL里创建一个带拆分后坐标的视图,这样后续在Superset里用起来更方便:

CREATE VIEW address_with_coords AS
SELECT 
    *,  -- 保留原表所有字段,按需调整
    ST_Y(location) AS latitude,  -- ST_Y提取纬度(对应地图Y轴)
    ST_X(location) AS longitude   -- ST_X提取经度(对应地图X轴)
FROM Address;

创建完视图后,回到Superset刷新你的数据源列表,找到这个新的address_with_coords视图并添加为数据集。之后配置Mapbox图表时,直接把latitude选作纬度列,longitude选作经度列就搞定了。

方法二:在Superset里直接用自定义SQL

如果只是临时用一次,不用创建视图,直接在Superset的SQL Lab里写查询就行:

SELECT
    id, name,  -- 替换成你需要展示的其他业务字段
    ST_Y(location) AS latitude,
    ST_X(location) AS longitude
FROM Address;

写完后点击「Save as Dataset」把这个查询存成一个新数据集,然后创建Mapbox图表时选择这个数据集,同样对应好纬度和经度字段即可。

重要提醒!

别搞反ST_X和ST_Y!很多人会在这里出错:ST_X返回的是经度(地图的X轴),ST_Y返回的是纬度(地图的Y轴),一定要对应正确,不然地图上的点会跑到完全错误的位置。另外还要确保你的PostgreSQL数据库已经安装了PostGIS扩展(没装的话执行CREATE EXTENSION postgis;就行),并且Superset连接的数据库用户有执行这些空间函数的权限。

内容的提问来源于stack exchange,提问作者fares

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:30:56