在Snowflake中将ST_Intersects与一个点和一个多边形一起使用是否有技巧?

问题描述

我可以使ST_Intersects与一个点和一个多边形一起工作,但不能与一个点和一个多多边形一起工作。是否有一种简单的方法可以将多面体分成单个的多边形并在每个多边形上运行ST_Intersects?

解决方法

我看不到交叉点和多边形的问题:

with a as (
select to_geography('POLYGON((0.0 0.0,1.0 0.0,1.0 2.0,0.0 2.0,0.0 0.0))') as polygon
union all select to_geography('MULTIPOLYGON(((-124.20 42.00,-120.01 41.99,-121.1 42.01,-124.20 42.0)),((0.0 0.0,0.0 0.0)))')
),b as (
  select to_geography('POINT(0.1 0.1)') point
  union all select to_geography('POINT(3.3 3.3)')
  union all select to_geography('POINT(-124.20 42.00)')
)


select ST_ASWKT(point),ST_ASWKT(polygon),st_intersects(polygon,point) intersects
from a,b

结果完全符合我的预期:

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...