gpt4 book ai didi

mysql - ST_Area() 用于纬度和经度

转载 作者:可可西里 更新时间:2023-11-01 08:23:33 25 4
gpt4 key购买 nike

我在 MariaDB 中有一个包含多个坐标的多边形:

POLYGON((50.4668 -6.90665,51.73607 0.14657,55.3032 -4.52724,50.4668 -6.90665))

我想像这样用 MariaDB 计算这个多边形的面积:

SELECT ST_Area(ST_GeomFromText('POLYGON((50.4668 -6.90665,51.73607 0.14657,55.3032 -4.52724,50.4668 -6.90665))'))

上述查询的结果是 15.546039738650009,这是错误的。我用 this 计算了多边形的面积工具,它给了我 119116192747.1

我应该怎么做才能让 mariaDB 理解这个包含纬度和经度的多边形以正确计算面积?

最佳答案

根据 MariaDB 文档,它不提供此功能:

In MariaDB, the SRID value is just an integer associated with the geometry value. All calculations are done assuming Euclidean (planar) geometry.

但是,在 Mysql 8.0.13 中提供了此功能,您可以使用 ST_Area() 计算多边形面积:

Incompatible Change: Previously, ST_Area() supported only geometry arguments having a Cartesian spatial reference system (SRS) and produced an error when invoked with geometry arguments that specified a geographic SRS. ST_Area() now supports geometry arguments having a geographic SRS and returns the geodetic area in square meters.

因此,如果您将数据库更改为 MYSQL > 8.0.13,您可以使用以下查询计算多边形面积:

SELECT ST_Area(ST_PolyFromText('POLYGON((50.4668 -6.90665,51.73607 0.14657,55.3032 -4.52724,50.4668 -6.90665))', 4326));

关于mysql - ST_Area() 用于纬度和经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54884351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com