gpt4 book ai didi

postgis - 如何在deck.gl 中将超集数据显示为多边形

转载 作者:行者123 更新时间:2023-12-04 12:57:35 25 4
gpt4 key购买 nike

Superset 有一个 deck.gl Polygon可视化类型。
我正在尝试使用这种类型的图表来显示取自 PostGIS 的多边形。启用 postgres数据库;但是,除了图例之外不显示任何视觉信息。
我的数据库查询如下:

SELECT *, ST_AsGeoJSON(ST_Transform((ST_DUMP(geom)).geom::geometry(Polygon, 27700), 4326)) as geom
FROM <my-schema>.<my-table>;
这将返回 geojson Polygon记录如下:
{
"type": "Polygon",
"coordinates": [[
[-0.029742716, 51.492925448],
[-0.028980512, 51.491626654],
[-0.027819506, 51.490055839],
...
我已经在 QGIS 中验证过查询有效并且 geoJSON信息显示正确。
但是,这似乎不适用于 superset :我创建了一个 deck.gl Polygon我为其选择了 JSON 的图表线编码(与 Polyline 或 Geohash 相反)。选择度量并将视口(viewport)坐标居中到正确的地理范围后,我运行了查询,但没有看到图表中显示的空间信息,只是显示所选度量的中断的图例。
尽管 map 为空,但用于将数据下载为 CSV 或 JSON 的相邻按钮返回完整数据,因此我倾向于认为我误解了其中一项设置,或者我提供的数据格式不正确.
关于如何让这个插件工作以及它可能期望数据采用什么格式的任何指示?
一般来说,我很难找到有关如何使用 superset 的任何文档。 deck.gl插件:任何可能有用的示例或文档?

最佳答案

对于遇到相同问题的其他人,这就是最终适用于我的场景的方法:
postGIS 返回的 JSON 字符串使用 ST_AsGeoJSON函数仅包含 geoJSON 规范的几何组件。这意味着有必要在 deck.gl 之前将这些几何图形包装在成熟的 geoJSON 对象中。能认出来。
例如:

SELECT *, json_build_object(
'type', 'Polygon',
'geometry', ST_AsGeoJSON(ST_Transform(geom, 4326))::json)::text as geoJSON
FROM <my-schema>.<my-table>;
如果您正在使用 MultiPolygons,那么您需要先提取一个多边形:
SELECT *, json_build_object(
'type', 'Polygon',
'geometry', ST_AsGeoJSON(ST_Transform((ST_DUMP(geom)).geom::geometry(Polygon, 27700), 4326))::json)::text as geoJSON
FROM <my-schema>.<my-table>;
请注意,在这两种情况下,geoJSON 结果都必须转换为文本类型,否则超集在运行内部查询时会出现问题,否则如果使用 JSON,则无法对结果进行排序(重复检查?)。

关于postgis - 如何在deck.gl 中将超集数据显示为多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64759116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com