W PostGIS ST_length()
funkcja zwraca długość linii w niektórych jednostkach, ale nie w metrach.
Czy jest funkcja taka jak ST_Length()
w metrach?
St_Length () zwraca długość w jednostkach systemu odniesienia przestrzennego. Jeśli chcesz zdobyć liczniki, musisz przekształcić swoją funkcję w inny SRS, który używa liczników jako jednostek. Można to zrobić w locie, więc nie martw się o zapisanie kolejnego zestawu danych.
SELECT ST_AsText(ST_Transform(the_geom,26915)) from my_table;
W tym przykładzie SRID 26915 to UTM Zone 15 N, NAD83.
Wygląda na to, że od PostGIS 2.0 (może wcześniej) możesz to również zrobić
ST_Length
, przekształcając geometrię w geografię:ST_Length(geom::geography)
Na przykład odległość między 50 ° N, 12 ° E i 51 ° N, 13 ° E:
co daje
źródło
Przykłady żądania SQL: jak obliczyć długość geometrii polilinii dla kilku tabel w postgis
Żądanie SQL (długość w km (/ 1000 -delete for metres)):
źródło
Użyj następującej formuły:
źródło