Какую единицу возвращает функция Distance () в Spatialite? - PullRequest
2 голосов
/ 27 ноября 2011

Spatialite имеет возможность рассчитать расстояние между двумя геометриями с помощью функции Distance () .Существуют и другие функции , которые работают с LINESTRING.Однако я не могу узнать, в каких единицах он его возвращает. Это метры?Если у меня есть 2 точки, как рассчитать расстояние между ними в запросе пространственного объекта?

(Для записи я использую SRID 4326, т.е. WSG 86, т.е. старые традиционные градусы широты и долготы).

Ответы [ 2 ]

9 голосов
/ 27 ноября 2011

единица, возвращаемая ST_Distance (), ST_Length () и ST_Area () точно тот, который определен соответствующим SRID.

следовательно, если вы используете широту и долготу (SRID = 4326, РГС 84), любая длина будет измеряться в градусах, а любая область в КВАДРАТНЫЕ СТЕПЕНИ.

, если вы заинтересованы в предоставлении более обычного единица (METERS, SQUARE METERS), вы просто должны проецировать ваши геометрии в некотором подходящем «плоском» CRS (например, UTM) используя ST_Transform ()

0 голосов
/ 27 апреля 2012

В версии 2.4.4 и выше есть функция PtDistWithin (), которая возвращает метры для запроса расстояния. Смотрите док. раздел «Функции SQL для дистанционных отношений»: http://www.gaia -gis.it / SpatiaLite-2.4.0-4 / SpatiaLite-SQL-2.4-4.html # p13

...