2016-05-31 4 views
1

내 쿼리의 문제점을 알고있는 사람이 있습니까? 지리적 좌표를 사용하여 면적을 계산하려하지만 결과가 너무 작아서 사실 일 수는 없습니다. 0.00118 평방 미터. 아무도 도와 줄 수 있니?지리 좌표를 사용하여 SQL에서 면적을 계산하는 방법은 무엇입니까?

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) 
+0

매우 유사 인자로 WKT 문자열을 받아 직접 지리 생성자 St_GeographyFromText를, 사용할 수있는 시나리오에 따라 여기 GIS 스택 교환에 약간의 정보가 있습니다 : http://gis.stackexchange.com/questions/26461/calculating-area-of-an-epsg4326-polygon – bcollins

+0

다음을 확인하십시오. http://gis.stackexchange.com/questions/139292/why-does- ge-vs-geom – bcollins

+0

아래와 같이 답하십시오. ST_Area의'geography' 버전이 필요합니다; 자세한 내용은 [매뉴얼 참조] (http://postgis.net/docs/ST_Area.html)를 참조하십시오. –

답변

2

얼마나 정확하게 계산해야합니까? 해결책은 가장 사용 사례에 대한 수용 가능한 정확 인 GEOGRAPHY에 GEOMETRY를 캐스팅하는 것입니다

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_GeomFromText

이이 모양
ST_GeographyFromText('POLYGON((14.604514925547997 121.0968017578125, 
     14.595212295624522 121.08512878417969, 
     14.567302046916149 121.124267578125, 
     14.596541266841905 121.14761352539062, 
     14.604514925547997 121.0968017578125))' 
    ) 
관련 문제