有老哥用过 postgis 的么

2020-01-16 16:38:45 +08:00
 ackfin01

建立了一个表,其中一个字段是 geometry(Polygon) 类型的,目前数据库里面有一条记录里面是包含两个矩形:

'POLYGON((466.011 573.9911,503.4636 573.9911,503.4636 583.6541,466.011 583.6541,466.011 573.9911),(91.014 603.9088,116.8337 603.9088,116.8337 615.8859,91.014 615.8859,91.014 603.9088))'

对应矩形是

[[466.011, 573.9911, 503.4636, 583.6541], [91.014, 603.9088, 116.8337, 615.8859]]

其中里面每一个 list 的每一项对应于矩形的 x,y,xx,yy

在 QGIS 里面是这样的(红框框起来的这两个矩形)

问题来了,现在我通过和[466.011, 573.9911, 503.4636, 583.6541]是否相交可以查到这条记录

但是通过

[91.014, 603.9088, 116.8337, 615.8859]
'POLYGON((91.014 603.9088,116.8337 603.9088,116.8337 615.8859,91.014 615.8859,91.014 603.9088))' 

查不到,相交用的ST_Intersects或者&&,这是啥原因呀?

1092 次点击
所在节点    程序员
1 条回复
ackfin01
2020-01-19 12:48:15 +08:00
之前的理解有错:对于有多个矩形框的情况,应该使用 MULTIPOLYGON,而 POLYGON 的多个框是指由一个外环和 0 到多个内环组成的。

https://skyrover.me/posts/101

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/638480

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX