gpt4 book ai didi

sql - 如何使用地理坐标计算 SQL 中的面积?

转载 作者:行者123 更新时间:2023-11-29 12:58:12 25 4
gpt4 key购买 nike

有人知道我的查询有什么问题吗?我正在尝试使用地理坐标计算面积,但结果似乎太小而不真实。 0.00118 平方米。有人可以帮忙吗?

SELECT ST_Area(the_geom) As sqm
FROM (SELECT
ST_GeomFromText('POLYGON
(
(14.604514925547997 121.0968017578125,
14.595212295624522 121.08512878417969,
14.567302046916149 121.124267578125,
14.596541266841905 121.14761352539062,
14.604514925547997 121.0968017578125)
)',4326) ) As foo(the_geom)

最佳答案

计算应该有多准确?一种解决方案是将 GEOMETRY 转换为 GEOGRAPHY ,这对于大多数用例来说是可以接受的准确度:

SELECT ST_Area(the_geom::GEOGRAPHY ) As sqm
FROM (SELECT
ST_GeomFromText('POLYGON
(
(14.604514925547997 121.0968017578125,
14.595212295624522 121.08512878417969,
14.567302046916149 121.124267578125,
14.596541266841905 121.14761352539062,
14.604514925547997 121.0968017578125)
)',4326) ) As foo(the_geom)

地理类型会自动将度数转换为米。

根据您的情况,您还可以直接使用地理构造函数 St_GeographyFromText , 它接受一个 WKT 字符串作为参数,与 ST_GeomFromText 非常相似

ST_GeographyFromText('POLYGON((14.604514925547997 121.0968017578125,
14.595212295624522 121.08512878417969,
14.567302046916149 121.124267578125,
14.596541266841905 121.14761352539062,
14.604514925547997 121.0968017578125))'
)

关于sql - 如何使用地理坐标计算 SQL 中的面积?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37555551/

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