SELECT st_asbinary("geom",'NDR'),"gid","angle"::text,"dno"::text FROM "public"."ssgw_nod" WHERE "geom" && st_makeenvelope(635734.14158263464923948,3288492.83043043361976743,635735.90853915817569941,3288494.59738695761188865,4546) AND st_intersects(st_curvetoline("geom"),st_makeenvelope(635734.14158263464923948,3288492.83043043361976743,635735.90853915817569941,3288494.59738695761188865,4546))
时间: 2023-08-03 18:03:52 浏览: 62
这是一个查询语句,其中使用了PostGIS函数来执行空间操作。根据提供的条件,它选择了满足以下条件的记录:
- "geom"与给定的矩形框相交。
- "geom"与通过"st_curvetoline"函数将曲线转换为线段的结果相交。
查询语句如下:
```sql
SELECT st_asbinary("geom",'NDR'), "gid", "angle"::text, "dno"::text
FROM "public"."ssgw_nod"
WHERE "geom" && st_makeenvelope(635734.14158263464923948, 3288492.83043043361976743, 635735.90853915817569941, 3288494.59738695761188865, 4546)
AND st_intersects(st_curvetoline("geom"), st_makeenvelope(635734.14158263464923948, 3288492.83043043361976743, 635735.90853915817569941, 3288494.59738695761188865, 4546))
```
请确保在执行此查询之前已经连接到PostgreSQL数据库,并且已经安装了PostGIS扩展。
希望对您有所帮助!如果有任何其他问题,请随时提问。
相关问题
SELECT vector FROM vector_tile ( 'PUBLIC', 'division_info_tbl_tmp', 8, 213, 103, SELECT ST_AsMVTGeom ( geom_3857, $1 ) AS geom, division_code FROM PUBLIC.division_info_tbl_tmp WHERE ST_Intersects ( geom_3857, $2 ) AND division_level = '1' ) SELECT ST_AsMVT ( mvt_geom.*, $3 ) AS tile FROM mvt_geom; ( String ) ) vector
这似乎是一个 SQL 查询语句,但是它存在一些语法错误。其中 SELECT 语句被放在了 vector_tile 函数的参数中,这是不正确的。正确的查询语句应该是:
```
SELECT vector FROM vector_tile (
'PUBLIC',
'division_info_tbl_tmp',
8,
213,
103,
'PUBLIC',
'division_info_tbl',
8,
213,
103,
'WITH mvt_geom AS (
SELECT ST_AsMVTGeom(geom_3857, $1) AS geom, division_code
FROM PUBLIC.division_info_tbl_tmp
WHERE ST_Intersects(geom_3857, $2) AND division_level = ''1''
)
SELECT ST_AsMVT(mvt_geom.*, $3) AS tile
FROM mvt_geom'
);
```
这个查询语句首先指定了 vector_tile 函数的参数,然后使用 WITH 子句定义了一个名为 mvt_geom 的临时表,该表包含满足条件的矢量数据。最后,使用 ST_AsMVT 函数将数据转换为 MVT 格式,并将结果命名为 tile。
a.geom&&b.geom和ST_intersects(a.geom,b.geom)
"a.geom&&b.geom"和"ST_Intersects(a.geom,b.geom)"都是用于判断两个几何对象是否相交的操作。它们的作用是相同的,但是使用方法略有不同。
"a.geom&&b.geom"是PostgreSQL中的操作符,用于判断两个几何对象是否相交或包含。它返回一个布尔值,表示两个几何对象是否相交。这个操作符可以用于各种几何类型,包括点、线和面等。
"ST_Intersects(a.geom,b.geom)"是PostGIS中的函数,用于判断两个几何对象是否相交。它也返回一个布尔值,表示两个几何对象是否相交。这个函数也可以用于各种几何类型,包括点、线和面等。
它们的区别在于,"&&"操作符主要用于判断是否相交或包含,而ST_Intersects()函数则更加通用,可以用于判断各种不同类型的几何对象是否相交。此外,ST_Intersects()函数还可以返回相交的几何对象,而"&&"操作符则只返回一个布尔值。因此,如果需要获取相交的几何对象,应该使用ST_Intersects()函数。