使用 3D Web Map Client 列出建筑物的专题数据

Listing buildings' thematic data with 3D Web Map Client

我正在使用 3D Importer/Export 将 .gml 文件导入 Postgres 3D CityDB。

现在我想在地图上可视化建筑物并列出它们的特征。我已经设法将它们形象化,但就特征而言,我遇到了一些麻烦。我正在使用 PostgREST 来提供主题数据。我遇到但似乎无法找到解决方案的问题是 3D CityDB 具有有关跨越多个 table 的建筑物的信息,但 3DWMC 仅查询一个 table。单击 table 时,3DWMC 会向我指定的 URL + ?gmlid={the id of the building I've clicked} 执行请求。唯一似乎有 gmlid 字段的 table 是 cityobject.

这是我的3DWMP配置:

URL 是 http://localhost:8000/exports/export7/export.kml 而 cityobjectsJsonUrl 是 http://localhost:8000/exports/export7/export.json.

这里是点击时显示的信息:

简而言之,我想在点击时显示建筑物的地址(例如)。

好吧,我终于想通了。

您必须创建实体化视图和针对它的查询。

这是名为 view_attributes (credit goes to this issue) 的视图:

SELECT cityobject.gmlid,
    concat('address '::text, row_number() OVER (PARTITION BY address_to_building.building_id)) AS attribute,
    concat(address.street::character varying(255), ' ', address.house_number::character varying(255), ', ', address.zip_code::character varying(255), ', ', address.city::character varying(255), ', ', address.country::character varying(255)) AS value,
    0 AS order_vba
   FROM cityobject,
    building
     JOIN address_to_building ON building.id = address_to_building.building_id
     JOIN address ON address.id = address_to_building.address_id
 WHERE cityobject.id = building.id

然后将UI中的thematicDataUrl改为:http://localhost:3000/view_attribute.