这两个查询有什么区别:
select a.gid, sum(length(b.the_geom))
from polygons as a
, roads as b
where st_intersects(a.the_geom,b.the_geom)
group by a.gid ;
select a.gid, sum(length(b.the_geom))
from polygons as a
, roads as b
where st_overlaps(a.the_geom,b.the_geom)
group by a.gid ;
第一个查询给出正确的输出,而第二个查询根本不检索任何行。与多边形相交的道路也重叠了,对吗?
从PostGIS的文档中
http://postgis.net/docs/ST_Intersects.html
如果几何或地理共享空间的任何部分,则它们相交。重叠,触摸,所有暗示空间相交。如果上述任何一项返回true,则几何形状也会在空间上相交。
http://postgis.net/docs/ST_Overlaps.html
如果几何“空间重叠”,则返回TRUE。我们的意思是它们相交,但是一个并不完全包含另一个。
区别是:如果两个几何重叠100%,则它们不再重叠。
这是一个POSTGIS示例:
SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Intersects(a, b) As a_intersects_b, ST_Contains(b, a) As b_contains_a
FROM (SELECT
ST_Polygon(ST_GeomFromText('LINESTRING(1 1,3 1,3 3,1 1)'), 4326) As a,
ST_Polygon(ST_GeomFromText('LINESTRING(1 1,3 1,3 3,1 1)'), 4326) As b)
As foo;
-- INTERSECT is TRUE, OVERLAP is FALSE because B equals A
SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Intersects(a, b) As a_intersects_b, ST_Contains(b, a) As b_contains_a
FROM (SELECT
ST_Polygon(ST_GeomFromText('LINESTRING(1 1,3 1,3 3,1 1)'), 4326) As a,
ST_Polygon(ST_GeomFromText('LINESTRING(1 1,4 1,4 4,1 1)'), 4326) As b)
As foo;
-- INTERSECT is TRUE, OVERLAP is FALSE because B contains A
SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Intersects(a, b) As a_intersects_b, ST_Contains(b, a) As b_contains_a
FROM (SELECT
ST_Polygon(ST_GeomFromText('LINESTRING(0 0,2 0,2 2,0 0)'), 4326) As a,
ST_Polygon(ST_GeomFromText('LINESTRING(1 1,3 1,3 3,1 1)'), 4326) As b)
As foo;
-- INTERSECT is TRUE, OVERLAP is TRUE because not all of A intersects B and not all of B intersects A
我在想办法,我在postgres 9.6上使用postgis 2.3 地理上的ST_intersects返回 false,尽管两个地理相交。为了调试,我使用几何尝试了相同的查询,两者相交。 有人能帮我解释一下吗? 示例: 我正在运行此查询: 我得到: 当我跑的时候: 我得到:
我在 PostGIS 中有多边形几何几何,我想用一个点“POINT(77.2135569,28.6248447)”来检查它是否相交。 从 public.tablename 中选择 ST_Intersects('POINT(28.6248447 77.2135569)'::geometry, geom) 这里,geom是数据类型为Geometry的列名。 获取以下错误: 错误:ST_Intersec
我在 PostGIS 中两个地理之间的相交有问题:我有一个带有地理列的表1,在 wgs84 中填充了多多边形(每行一个)。第二个表2还有一个地理列,其中填充了wgs84中的多多边形(每行一个)。然后我在两者之间做一个相交(选择 (..) 其中 ST_Intersects())。 在某些(非常罕见的)情况下,在我看来,它工作不正确,因为intersect返回false,而期望的是true:我有一个重
在C语言中,假设每个算法被赋予完全相同的一组进程,那么先到先得、最短作业优先和循环之间的周转时间是否相等?还是调度算法不同?
问题内容: 为了为 HTML5 Doctype 定义字符集,我应该使用哪种表示法? 短: 长: 问题答案: 在HTML5中,它们是等效的。使用较短的一个,更容易记住和键入。浏览器支持很好,因为它是为向后兼容而设计的。
连接的多个输入都相当于Yes的时候才会输出Yes。 用法 Your browser does not support the video tag. 案例:小闹钟 功能:今天15:10:00,响起猫叫声小闹钟 工作原理 当所有的输入都是Yes的时候,与节点才输出Yes。