我在德国中部创建了一个非常简单的多边形来演示我的问题。
您可以使用以下 GeoJSON 在 geojsonlint 中对其进行可视化
{"type":"Polygon","coordinates":[[
[10.439844131469727,51.17460781257472],
[10.430574417114258,51.1753073564544],
[10.429565906524658,51.17179607723465],
[10.438792705535889,51.170706315523866],
[10.439372062683105,51.17267055874809],
[10.43975830078125,51.17439256616884],
[10.439844131469727,51.17460781257472]]]G}
使用在线工具(例如http://www.daftlogic.com/projects-google-maps-area-calculator-tool.htm,但我尝试了几个)计算表面时,我得到以下数字(这些是基于多边形的类似绘图,但不完全相同,因为我无法将其复制到这些工具中):
- 276583.39 平方米
- 0.28 平方公里
- 68.35 英亩
- 27.66 公顷
- 2977118.86 英尺²
- 0.08平方海里
现在我想使用 POSTGIS 计算这些区域,但我总是出错并且数字不匹配。
首先,我使用此处给出的示例开始不进行转换:
http://postgis.net/docs/ST_Area.html
SELECT ST_Area(the_geom) As sqft, ST_Area(the_geom)*POWER(0.3048,2) As sqm
FROM (SELECT ST_GeomFromText('
POLYGON ((51.17460781257472 10.439844131469727,
51.1753073564544 10.430574417114258,
51.17179607723465 10.429565906524658,
51.170706315523866 10.438792705535889,
51.17267055874809 0.439372062683105,
51.17439256616884 10.43975830078125,
51.17460781257472 10.439844131469727))',4326) ) As foo(the_geom);
--> sqft = 3.52643124351653e-05 和 sqm = 3.27616182873666e-06
我该如何解释这些数字?然后我尝试将其转换为 WGS 84 / UTM zone 33N 32633
SELECT ST_Area(the_geom) As sqft, ST_Area(the_geom)*POWER(0.3048,2) As sqm
FROM (SELECT ST_Transform(ST_GeomFromText('
POLYGON ((51.174661624019286 10.440187454223633,
51.17067940750161 10.438899993896484,
51.17197097486416 10.429544448852539,
51.17536116708255 10.430488586425781,
51.174661624019286 10.440187454223633))',4326),32633) ) As foo(the_geom);
--> 平方英尺 = 662918.939349234 和平方米 = 61587.1847391195
但即使是这些数字也没有接近。