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


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.