如果使用PostGIS的ST_Area函数计算多边形面积
问题
最近遇到了一个很奇怪的问题,是使用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函数计算多边形面积相关推荐
- 通过坐标点位,计算多边形面积
多边形面积 本文使用三角形面积累计法计算多边形面积,就是将多边形按照一个顶点,分割成多个三角形,计算三角形的面积,累加,得到多边形的面积. 当然,这个算法也有一些缺点,当这个多边形比较奇怪的时候,不能 ...
- 向量法计算多边形面积
计算多边形面积的方法为将多边形分解成多个三角形,然后把这些三角形的面积相加.三角形面积为两边向量叉积除以2. 这是Java代码,目前是第3版 ,已经尽可能优化了,相比初版有25%的性能提升. /*** ...
- python计算多边形面积_Python求凸包及多边形面积教程
一般有两种算法来计算平面上给定n个点的凸包:Graham扫描法(Graham's scan),时间复杂度为O(nlgn):Jarvis步进法(Jarvis march),时间复杂度为O(nh),其中h ...
- Java 根据多边形坐标点 计算多边形面积
请仔细阅读代码注释(有肯多坑,跟着注释走没问题) 亲测有效 /*** 计算多边形面积公式** @author Lion Li* @date 2020-05-19*/ public class Poly ...
- 判断多边形的凹凸性和计算多边形面积:利用向量叉乘
根据百度百科的讲解: 凸多边形 现在重点讲解顶点凹凸性法(最常用也是较为简单的方法):计算总结在最后. 利用向量叉乘的相关知识进行计算:假设当前连续的三个顶点分别是P1,P2,P3.计算向量P1P3, ...
- python计算多边形面积
本文提供一个简单的方法计算多边形面积,参考维基百科 实现代码: def polygon_area(polygon):"""compute polygon areapoly ...
- 5分钟理解外积计算多边形面积
5分钟理解外积计算多边形面积 在矢量结构下,面状物体用其轮廓线构成的多边形表示,对于简单多边形,设有n个顶点,面积计算公式为: 公式如何得来的呢? 此公式涉及数学中的外积,外积即叉乘: "a ...
- matlab 二维凸包面积,PKU——3348——(凸包和计算多边形面积)
//3348 Accepted 264K 0MS C++ 4016B//典型的凸包和计算多边形面积#include#include#include#include#include#includeusi ...
- matlab计算多边形面积polyarea函数
一.语法 1.a = polyarea(x,y) 返回向量 x 和 y 中的顶点定义的二维多边形的面积. 如果 x 和 y 是相同长度的向量,则 polyarea 返回 x 和 y 定义的多边形的标量 ...
最新文章
- 算法----合并两个有序链表
- windows中以管理员身份运行cmd
- Windows7 WIN 7 64位 环境编译6sv2.1版本的大气传输模型
- 【drp 11】使用Junit简单测试接口方法
- linux脚本开机挂载,案例七:shell实现开机自动挂载本地YUM仓库程序
- c++和python有联系吗_Python和C++交互
- 单例模式代码_设计模式之单例:程序员必知必会,举例子+代码示例,通俗易懂...
- Thinkphp 实现上一篇与下一篇的方法
- cvCalcBackProjectPatch() 基于块的反向投影
- 国内ERP技术公司综合
- #常见电池型号介绍 常见电池尺寸是多少【详解】
- Practicing Mindfulness
- 怎么批量生成100多条短视频素材
- 使用 MAUI 在 Windows 和 Linux 上绘制 PPT 的图表
- pycocotools and mmpycocotools 循环报错
- 数据清洗(一)-----------重复数据处理
- 智慧工厂用到的技术_智慧工厂如何实现智能化
- 网易2017实习生笔试6
- 【云服务器 ECS 实战】一文掌握负载均衡服务原理及配置方法
- 面试恒安嘉新运维/项目经理面经 2019-06
热门文章
- abaqus基于已有模型仿真
- 【C++】PAT乙级:1012 数字分类 (20 分)
- 油酸Oleic acid/氨基NH2/羧基COOH/PEG/蛋白Prote/抗体antibody/PAA/SiO2修饰的上转换纳米材料NaY(Gd/Lu/Nd)F4:Yb,Er
- Dubbo Failed to check the status of the service.No provider available for the service from问题解决
- 央视版笑傲江湖的价值观 (转)
- 2019年3月计算机科学ESI排名,2019年3月ESI中国大学综合排名百强出炉,88所院校有进步...
- 套料排版代码python_钣金制造管理系统Fabcost自动套料排版设置
- 重磅,2020广播电视科技创新奖揭晓
- 图片开放接口_免费的美女图片API接口
- 网易考拉Android客户端网络模块设计