如何使用地理坐标计算 SQL 中的面积?
How to calculate area in SQL using geographic coordinates?
有谁知道我的查询有什么问题。我正在尝试使用地理坐标计算面积,但结果似乎太小而不真实。 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))'
)
有谁知道我的查询有什么问题。我正在尝试使用地理坐标计算面积,但结果似乎太小而不真实。 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))'
)