Страница 1 из 1

Сравнение геометрий в PostGis

Добавлено: 07 авг 2012, 10:27
cibo
Есть две таблицы
1 таблица со srid=4326
2 таблица со srid=900913
Нужно сравнить их геометрии. Но сравнить не на точное совпадение как это делает ST_Equals(geometry, geometry), а так что бы был какой то допуск. Это возможно сделать?

Re: Сравнение геометрий в PostGis

Добавлено: 07 авг 2012, 10:31
rhot
не совсем понятно, что за допуск?

Re: Сравнение геометрий в PostGis

Добавлено: 07 авг 2012, 10:34
cibo
Изображение

Что то вроде такого.

Re: Сравнение геометрий в PostGis

Добавлено: 07 авг 2012, 10:36
rhot
постройте буфер с заданным допуском и сравнивайте их уже.

Re: Сравнение геометрий в PostGis

Добавлено: 07 авг 2012, 10:52
Denis Rykov
Да, постройте буферные зоны, равные величине допуска и сравните геометрии с помощью ST_Within. То есть берете геометрию, строите буфер, сравниваете с остальными (без буфера) и т.д.

Re: Сравнение геометрий в PostGis

Добавлено: 07 авг 2012, 11:15
cibo
Тогда вот такой вопрос: как ST_Equals сравнивает геометрию? По площади или по конфигурации точек? Допустим мои геометрии будут немного разной формы, то построив буфер вокруг одной из них они могут быть сравнены?

Re: Сравнение геометрий в PostGis

Добавлено: 07 авг 2012, 11:41
rhot
ST_Equals сравнивает пространственно, а ST_OrderingEquals - геометрически. Допустим, объект LINESTRING(0 1, 3 3) пространственно идентичен LINESTRING(3 3, 0 1), а вот геометрически вовсе нет и вывод ST_OrderingEquals будет FALSE.