gpt4 book ai didi

postgis - 将线串与 PostgreSQL/Postgis 中的 group_by 通用属性合并

转载 作者:行者123 更新时间:2023-12-02 11:19:40 27 4
gpt4 key购买 nike

我正在尝试将一系列线串几何图形与匹配属性(road_name_search 和 road_id)结合起来,然后将合并的线串从以下示例数据连接回 road_id 属性

http://sqlfiddle.com/#!15/f52d21 (请注意 - 如果将其复制到数据库,则需要将形状列的类型更改为几何(MultiLineString,2193))...是否有 PostGIS 版本的 SQL fiddle?)

我尝试使用下面的代码很好地结合道路名称:

SELECT 
MAX (road_id),
road_name_search
FROM a_road_test
GROUP BY road_name_search

这似乎按预期工作,结果如下:
max         road_name_search
3033986 Kennedy Road (Onekawa)
3033986 Kennedy Road (Greenmeadows)
3033986 Kennedy Road (Marewa)
1808281 Kennedy Road (Pyes Pa)
3033986 Kennedy Road (Pirimai)

接下来,我尝试包含几何字符串,所以我最终得到了我需要的一切......当我扩展查询以包括几何字符串的聚类时,像这样
SELECT 
MAX (road_id),
road_name_search,
unnest(ST_ClusterIntersecting(shape))
FROM a_road_test
GROUP BY road_name_search

然后我最终得到了重复的 road_name_search_fields,即每个都出现了不止一次,例如。
1808281 Kennedy Road (Pyes Pa)      geoma
3033986 Kennedy Road (Pirimai) geomb
3033986 Kennedy Road (Pirimai) geomc
3033986 Kennedy Road (Onekawa) geomd
3033986 Kennedy Road (Greenmeadows) geome
3033986 Kennedy Road (Greenmeadows) geomf
3033986 Kennedy Road (Marewa) geomg
3033986 Kennedy Road (Marewa) geomh

下一种方法,排除未嵌套函数...
选择
MAX (road_id),
道路名称​​搜索,
ST_ClusterIntersecting(形状)
FROM a_road_test
GROUP BY road_name_search

现在我最终...
1808281 Kennedy Road (Pyes Pa)  [geoma]
3033986 Kennedy Road (Pirimai) [geomb, geomc]
3033986 Kennedy Road (Onekawa) [geomd]
3033986 Kennedy Road (Greenmeadows) [geome, geomf]
3033986 Kennedy Road (Marewa) [geomg, geomh]

就是想不通怎么办...
1808281 Kennedy Road (Pyes Pa)      geoma
3033986 Kennedy Road (Pirimai) geombc
3033986 Kennedy Road (Onekawa) geomd
3033986 Kennedy Road (Greenmeadows) geomef
3033986 Kennedy Road (Marewa) geomgh

谢谢你看:)

最佳答案

@ewcz 确定的一个非常简单的答案

SELECT MAX(road_id), 
road_name_search,
ST_Union(shape)
FROM a_road_test
GROUP BY road_name_search

关于postgis - 将线串与 PostgreSQL/Postgis 中的 group_by 通用属性合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50018108/

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