평방 미터 단위로 WGS84 다각형 영역을 얻으려면 어떻게해야합니까?


10

다음은 사각형의 다각형 영역을 나타냅니다.

SELECT ST_Area(ST_GeomFromText('POLYGON((871325.790874952 6105405.3261047,871418.748307692 6105359.72944624,871346.22022442 6105215.141258,871254.85408906 6105261.72007212,871325.790874952 6105405.3261047))',4326)) As sqm;

결과 : 16586.2319335938

면적을 평방 미터로 어떻게 얻습니까? 나는 다음을 시도했다.

SELECT ST_Area(ST_Transform(ST_GeomFromText('POLYGON((871325.790874952 6105405.3261047,871418.748307692 6105359.72944624,871346.22022442 6105215.141258,871254.85408906 6105261.72007212,871325.790874952 6105405.3261047))',4326)),31467) As sqm;

그러나 ST_Transform이 작동하지 않는 것 같습니다. 다음과 같은 오류 메시지가 나타납니다.

ERROR:  function st_transform(geometry) does not exist
LINE 1: SELECT ST_Area(ST_Transform(ST_GeomFromText('POLYGON((871325...
                       ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
********** Error **********
 ERROR: function st_transform(geometry) does not exist
SQL Status:42883
Hint:No function matches the given name and argument types. You might need to add explicit type casts.

누락 된 Proj 지원은 문제가되어서는 안됩니다. SELECT PostGIS_full_version ()

"POSTGIS="1.5.3" GEOS="3.3.3-CAPI-1.7.4" PROJ="Rel. 4.8.0, 6 March 2012" LIBXML="2.8.0" USE_STATS"

답변:


7

쿼리가 끝날 때 잘못된 위치에 닫는 패런이 있습니다. 나는 이것을 시도하고 NaN 수익을 얻었습니다.

SELECT ST_AREA(ST_Transform(ST_GeomFromText('POLYGON((871325.790874952 6105405.3261047,871418.748307692 6105359.72944624,871346.22022442 6105215.141258,871254.85408906 6105261.72007212,871325.790874952 6105405.3261047))',4326),31467)) As sqm;

NaN 결과는 다각형이 투영 한계를 벗어난 결과입니다.


그게 다야! 감사합니다! 그외에 그 계획은 900913과 31467이어야합니다 :SELECT ST_AREA(ST_Transform(ST_GeomFromText('POLYGON((871325.790874952 6105405.3261047,871418.748307692 6105359.72944624,871346.22022442 6105215.141258,871254.85408906 6105261.72007212,871325.790874952 6105405.3261047))',900913),31467)) As sqm;
Mark

2
ST_Transform(geometry,target_CRS) 

올바른 구문입니다. 쉼표를 섞은 것 같습니다.


2

두 쿼리 모두 다각형의 SRID를 4326으로 ​​정의하지만 데이터를 기반으로하는 것은 아닙니다. SRID 4326 (WGS84)은 위도의 경우 [-90,90] 및 경도의 경우 [-180,180] 범위로 제한됩니다.

4326에 다각형 데이터가있는 경우 ST_GeogFromText 를 사용 하는 것이 더 좋습니다. 이는 데이터가 4326에 있고 지리 기능에 대한 측정은 미터 단위라고 가정합니다.

작동하는 쿼리는 다음과 같습니다.

SELECT
ST_Area(
ST_Transform(
ST_SetSRID(
ST_GeomFromText(
'POLYGON((-98.4854749658124 29.3495134003054,-97.4374094977531 29.4150174920591,-97.2408972224919 28.4979602075071,-98.354466782305 28.4324561157534,-98.4854749658124 29.3495134003054))'
)
, 4326)
, 900913)
)

SRID가 예제 데이터 영역을 다루지 않기 때문에 31467 대신 900913으로 변환했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.