如何解决如何在deck.gl
超集具有deck.gl
polygon
可视化类型。
我正在尝试使用这种类型的图表来显示从启用PostGIS
的{{1}}数据库中获取的多边形;但是,除了图例以外,没有显示任何视觉信息。
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
行编码(与polyline或Geohash相对)。选择度量标准并将视口坐标居中到正确的地理范围之后,我运行了查询,但是看不到图表中显示的空间信息,只有图例显示了所选度量标准的中断。
尽管地图是空的,但用于将数据下载为CSV或JSON的相邻按钮返回了完整的数据,因此我倾向于认为我误解了其中一种设置或在其中提供了数据格式不正确。
是否有任何有关如何使该插件正常工作以及它预期数据采用哪种格式的指针?
总的来说,我正在努力寻找有关如何使用JSON
superset
插件的任何文档:任何可能有用的示例或文档?
解决方法
对于遇到相同问题的其他人,这正是我的情况的结果:
使用postGIS
函数从ST_AsGeoJSON
返回的JSON字符串仅包含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 *,ST_AsGeoJSON(ST_Transform((ST_DUMP(geom)).geom::geometry(Polygon,27700),4326))::json)::text as geoJSON
FROM <my-schema>.<my-table>;
请注意,在两种情况下,都必须将geoJSON结果转换为文本类型,否则超集在运行内部查询时会出现问题,否则,如果使用JSON,则无法对结果进行排序(重复检查?)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。