ST_AREA 不够精确

ST_AREA is not enough precise

我正在尝试在用户创建新多边形时保存多边形区域。我发现有一个用于此目的的函数 - ST_AREA,但是当我检查它是否计算正确时,我发现了一些差异。这是一个例子: 这是一个根据 geojson.io 面积为 31.85:

的多边形

但是当我 运行 ST_AREA 对于同一个多边形时:

SELECT ST_Area(CONCAT(a.polygon, 'SRID=4326'))*10000 AS area FROM kt_polygons a where polygon_id = 180;

结果是34.93261884737489。更重要的是,我不太确定为什么我将结果面积乘以 10000.. 我只是这样做是因为结果似乎更符合实际情况。 我检查了其他一些多边形,差异不超过 5,但为什么会发生这种情况?知道我做错了什么吗?

我找到了对我的案例有帮助的解决方案。当我从 ST_Area 得到结果时,我将它乘以 9090,91。这个系数可能只适用于我的问题,但你可以发现真实区域和 ST_Area 中的区域之间是否存在依赖关系。如果是这样,你可以找到你的系数。