问题

最近遇到了一个很奇怪的问题,是使用ST_Area计算出的面积特别小。

select st_area(
ST_SetSRID(ST_GeomFromText(
'POLYGON ((115.440261 33.8547281, 115.4400647 33.8548702,
115.4403265 33.8549768, 115.4404674 33.8549267, 115.4404397 33.8547365,
115.440261 33.8547281))'),4326))
  • 计算结果

    发现计算出的结果是一个特备小的值,明显是不正确的。

原因

最后查看官方文档

Synopsis
float ST_Area(geometry g1);
float ST_Area(geography geog, boolean use_spheroid=true);
Description
Returns the area of a polygonal geometry. For geometry types a 2D Cartesian (planar) area is computed, with units specified by the SRID. For geography types by default area is determined on a spheroid with units in square meters. To compute the area using the faster but less accurate spherical model use

可以看出st_area必须在以米为单位的坐标系中才能计算中准确的面积,WGS84(4326)是以度为单位,所以这个函数计算出来的面积才会特别小,需要使用st_transform将几何体转换到以米为单位的坐标系中,这里我准备使用2000坐标系,因为在我国的平面计算精准还比较精准

改进后计算方法

select st_area(st_transform(
ST_SetSRID(ST_GeomFromText(
'POLYGON ((115.440261 33.8547281, 115.4400647 33.8548702,
115.4403265 33.8549768, 115.4404674 33.8549267, 115.4404397 33.8547365,
115.440261 33.8547281))'),4326),4527))

如果使用PostGIS的ST_Area函数计算多边形面积相关推荐

  1. 通过坐标点位,计算多边形面积

    多边形面积 本文使用三角形面积累计法计算多边形面积,就是将多边形按照一个顶点,分割成多个三角形,计算三角形的面积,累加,得到多边形的面积. 当然,这个算法也有一些缺点,当这个多边形比较奇怪的时候,不能 ...

  2. 向量法计算多边形面积

    计算多边形面积的方法为将多边形分解成多个三角形,然后把这些三角形的面积相加.三角形面积为两边向量叉积除以2. 这是Java代码,目前是第3版 ,已经尽可能优化了,相比初版有25%的性能提升. /*** ...

  3. python计算多边形面积_Python求凸包及多边形面积教程

    一般有两种算法来计算平面上给定n个点的凸包:Graham扫描法(Graham's scan),时间复杂度为O(nlgn):Jarvis步进法(Jarvis march),时间复杂度为O(nh),其中h ...

  4. Java 根据多边形坐标点 计算多边形面积

    请仔细阅读代码注释(有肯多坑,跟着注释走没问题) 亲测有效 /*** 计算多边形面积公式** @author Lion Li* @date 2020-05-19*/ public class Poly ...

  5. 判断多边形的凹凸性和计算多边形面积:利用向量叉乘

    根据百度百科的讲解: 凸多边形 现在重点讲解顶点凹凸性法(最常用也是较为简单的方法):计算总结在最后. 利用向量叉乘的相关知识进行计算:假设当前连续的三个顶点分别是P1,P2,P3.计算向量P1P3, ...

  6. python计算多边形面积

    本文提供一个简单的方法计算多边形面积,参考维基百科 实现代码: def polygon_area(polygon):"""compute polygon areapoly ...

  7. 5分钟理解外积计算多边形面积

    5分钟理解外积计算多边形面积 在矢量结构下,面状物体用其轮廓线构成的多边形表示,对于简单多边形,设有n个顶点,面积计算公式为: 公式如何得来的呢? 此公式涉及数学中的外积,外积即叉乘: "a ...

  8. matlab 二维凸包面积,PKU——3348——(凸包和计算多边形面积)

    //3348 Accepted 264K 0MS C++ 4016B//典型的凸包和计算多边形面积#include#include#include#include#include#includeusi ...

  9. matlab计算多边形面积polyarea函数

    一.语法 1.a = polyarea(x,y) 返回向量 x 和 y 中的顶点定义的二维多边形的面积. 如果 x 和 y 是相同长度的向量,则 polyarea 返回 x 和 y 定义的多边形的标量 ...

最新文章

  1. 算法----合并两个有序链表
  2. windows中以管理员身份运行cmd
  3. Windows7 WIN 7 64位 环境编译6sv2.1版本的大气传输模型
  4. 【drp 11】使用Junit简单测试接口方法
  5. linux脚本开机挂载,案例七:shell实现开机自动挂载本地YUM仓库程序
  6. c++和python有联系吗_Python和C++交互
  7. 单例模式代码_设计模式之单例:程序员必知必会,举例子+代码示例,通俗易懂...
  8. Thinkphp 实现上一篇与下一篇的方法
  9. cvCalcBackProjectPatch() 基于块的反向投影
  10. 国内ERP技术公司综合
  11. #常见电池型号介绍 常见电池尺寸是多少【详解】
  12. Practicing Mindfulness
  13. 怎么批量生成100多条短视频素材
  14. 使用 MAUI 在 Windows 和 Linux 上绘制 PPT 的图表
  15. pycocotools and mmpycocotools 循环报错
  16. 数据清洗(一)-----------重复数据处理
  17. 智慧工厂用到的技术_智慧工厂如何实现智能化
  18. 网易2017实习生笔试6
  19. 【云服务器 ECS 实战】一文掌握负载均衡服务原理及配置方法
  20. 面试恒安嘉新运维/项目经理面经 2019-06

热门文章

  1. abaqus基于已有模型仿真
  2. 【C++】PAT乙级:1012 数字分类 (20 分)
  3. 油酸Oleic acid/氨基NH2/羧基COOH/PEG/蛋白Prote/抗体antibody/PAA/SiO2修饰的上转换纳米材料NaY(Gd/Lu/Nd)F4:Yb,Er
  4. Dubbo Failed to check the status of the service.No provider available for the service from问题解决
  5. 央视版笑傲江湖的价值观 (转)
  6. 2019年3月计算机科学ESI排名,2019年3月ESI中国大学综合排名百强出炉,88所院校有进步...
  7. 套料排版代码python_钣金制造管理系统Fabcost自动套料排版设置
  8. 重磅,2020广播电视科技创新奖揭晓
  9. 图片开放接口_免费的美女图片API接口
  10. 网易考拉Android客户端网络模块设计