postgresql geometry 使用小记

update tableName set "geometry字段" = ST_GeomFromText('LineString('||  坐标点范围 ||')',4326 ); 转换成线

update tableName set "geometry字段" = ST_GeomFromText('Point('||  坐标点范围 ||')',4326 ); 转换成点

UPDATE tableName  SET "geometry字段" =ST_GeomFromText('POLYGON(('|| 坐标点范围 ||'))',4326);转换成面

注意:在转换成面时需要两个括号.

        转换是后面红色数字不是必需,但是在使用ST_Contains(geometry A, geometry B),ST_Intersects(geometry, geometry)等函数判断两个空间字段的关系时,若两个空间字段生成时的数据不一致无法比较,函数会报错.

 

### PostgreSQL 中 `geometry` 数据类型的面积计算方法 在 PostgreSQL 结合 PostGIS 扩展的情况下,`geometry` 类型用于表示欧几里得平面中的几何对象。对于这种数据类型,在平面上执行的任何操作都假设是在笛卡尔坐标系下完成的。 为了计算 `geometry` 对象的面积,可以使用内置函数 `ST_Area()` 函数来获取给定几何图形的面积[^1]: ```sql SELECT ST_Area(geom) AS area FROM your_table; ``` 这里 `your_table` 是包含有 `geom` 列的数据表名,该列存储的是 `geometry` 类型的对象。此命令返回的结果将是基于所选投影单位下的面积值;如果使用的坐标参照系统 (CRS) 的单位是米,则得到的就是平方米数。 需要注意的是,当处理地理坐标(经度/纬度)时,应该考虑采用 `geography` 类型而不是 `geometry` 来确保更精确的距离和面积测量,因为后者不适用于球面模型上的距离或面积计算。 然而,如果确实要利用 `geometry` 类型来进行近似估算,并且已知输入坐标的 SRID 编号,可以通过如下方式指定坐标系统的 ID 号码后再调用 `ST_Area()`: ```sql SELECT ST_Area(ST_SetSRID(geom, srid)) AS projected_area FROM your_table; ``` 其中 `srid` 应替换为实际应用中的适当 EPSG 代码,这有助于转换成适合本地区域的地图投影从而提高精度[^2]。 #### 示例:创建并查询多边形的面积 下面是一个完整的例子,展示如何定义一个多边形并将它作为 `geometry` 存储,之后再求其面积: ```sql -- 创建测试表格 CREATE TABLE test_polygon ( id serial PRIMARY KEY, geom geometry(Polygon) ); -- 插入一条记录到新建立的表中 INSERT INTO test_polygon (geom) VALUES ('POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))'); -- 查询刚刚插入的那个矩形的面积 SELECT ST_Area(geom) as square_meter_area FROM test_polygon WHERE id=1; ``` 上述 SQL 片段会创建一个新的名为 `test_polygon` 表格,向里面加入了一个简单的正方形形状,最后通过 `ST_Area()` 获取这个正方形占据的空间大小。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值