【发布时间】:2021-08-07 19:17:10
【问题描述】:
对于市政当局的项目,我们正在创建一个 api。 我们选择了 GraphQL 作为 API 的框架,并且我们用 C# 编写了它。 该 API 适用于普通数据,如字符串、整数等。 但是有一个问题。我们还需要处理几何/空间数据。所以我们已经将 GraphQL API “链接”到我们的数据库,这是一个 PostGIS/PostgreSQL 数据库。 我们希望 GeoJSON 作为输出,因为使用 MapBox 之类的东西很容易绘制。
我们在 PostGIS/PostgreSQL 中创建的视图如下:
CREATE VIEW pandGeoJSON AS
select row_to_json(fc)
from (
select
'FeatureCollection' as "type",
array_to_json(array_agg(f)) as "features"
from (
select
'Feature' as "type",
ST_AsGeoJSON(geom) :: json as "geometry",
(
sor_id,
status
) as "properties"
from pand INNER JOIN sor as s on pand.sor_id = s.sor_pandid
group by sor_id
) as f
) as fc;
但我似乎无法在互联网上的任何地方找到我们如何能够获取该视图并将其用作我们的 GraphQL API 的输出。还是我们想错了方向,我们应该在 GraphQL 本身中创建该视图?
【问题讨论】:
标签: sql postgresql graphql postgis geojson