Більше

Поєднайте дві таблиці з геометрії (postgis)

Поєднайте дві таблиці з геометрії (postgis)


У мене є дві таблиці з тією ж вуличною мережею, що і геометрія (але не однаковий ідентифікатор). Що я хочу зробити, це приєднатися обидва таблиці з усіма атрибутами до однієї для всіх геометрій, які точно збігаються.

На жаль, мій запит просто повертає мені порожні рядки. Я працюю з лівим об’єднанням, але всі інші об’єднання також не працюватимуть.

ТАБЛИЦЯ ПАДАННЯ, ЩО ІСНУЄ СТВОРИТИ тест на ТАБЛИЦЮ ЯК ВИБЕРИТИ * З таблиці1 ПРАВО ПРИЄДНАЙТЕСЯ таблиці2 НА ST_Equals (table1.the: geom, table2.the_geom);

Хтось знає відповідь на це?


Я згоден з коментарем МарХоффа. Я думаю, що наступну умову виконує ця робота:

'геометрія в table1 повністю знаходиться всередині невеликого буфера навколо геометрії в table2 І А геометрія в table2 повністю знаходиться всередині невеликого буфера навколо геометрії в table1'.

ВИБЕРІТЬ * ІЗ table1 INNER JOIN table2 ON st_within (table1.the_geom, st_buffer (table2.the_geom, 0.1)) AND st_within (table2.the_geom, st_buffer (table1.the_geom, 0.1));

Тут 0,1 - радіус буфера в метрах / футах / градусах / будь-якому іншому, залежно від вашої системи відліку координат. Якщо ваш CRS у градусах (координати GPS), ви, мабуть, повинні використовувати значення менше 0,1.

Це рішення може зайняти деякий час обчислення, якщо ваші таблиці дуже великі. Іншим рішенням було б використання st_snaptogrid для спрощення обох геометрій перед їх порівнянням.

Сподіваюся, це допоможе!


Перегляньте відео: Как научить ребенка умножать? Таблица умножения за 3 дня - специальное Пособие. Тренируем интеллект