미터 단위의 지오메트리 길이를 얻으십니까?


13

PostGIS에서이 ST_length()함수는 줄 단위의 길이를 미터 단위가 아닌 일부 단위로 반환합니다.

ST_Length()미터 단위 와 같은 기능이 있습니까?

답변:


11

St_Length ()는 공간 참조 시스템의 단위로 길이를 리턴합니다. 미터를 얻으려면 미터를 단위로 사용하는 다른 SRS로 기능을 변환해야합니다. 이 작업은 즉시 수행 할 수 있으므로 다른 데이터 세트를 작성하는 것에 대해 걱정하지 마십시오.

SELECT ST_AsText(ST_Transform(the_geom,26915)) from my_table;

이 예에서 SRID 26915는 UTM Zone 15 N, NAD83입니다.


또는 단순히 자신의 필드를 추가하고 계산을 직접 관리하십시오. 참고 자신의 트리거를 작성하거나 길이 변화에 따라 다시 계산해야합니다.
— Brad Nesom

18

PostGIS 2.0 이후 (아마도) ST_Length지오메트리를 지리로 다시 캐스팅 하여이 작업을 수행 할 수도 있습니다.

ST_Length(geom::geography)

예를 들어, 50 ° N, 12 ° E와 51 ° N, 13 ° E 사이의 거리 :

SELECT ST_Length(geom) AS deg,
       ST_Length(geom::geography)/1000 AS km_1,
       ST_Length_Spheroid(geom, 'SPHEROID["WGS 84",6378137,298.257223563]')/1000 as km_2
FROM   ST_GeomFromText('LINESTRING(12 50, 13 51)' , 4326) AS geom

어느 것이

       deg       |       km_1       |       km_2       
-----------------+------------------+------------------
 1.4142135623731 | 131.935962780384 | 131.935962780384


0

다음 공식을 사용하십시오.

select ST_Length(ST_Transform(ST_GeomFromEWKT('SRID=4326;'||st_astext(the_geom)),26986)) as geolength from my_table;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.