Це далі з попереднього запитання . Ви побачите, що я новий користувач PostGIS.
Я вивчив обґрунтованість топології в своїх даних і виявив близько 1700 проблем з топологією в наборі даних про обкладинку (полігон). Це все "Самозаймання кільця".
Користуючись корисною інформацією в цій презентації Пола Рамсая (стор. 20), я спробував відповідно завантажувати свої дані:
ОНОВЛЕННЯ schema.data Встановіть_geom = буфер (the_geom, 0.0) WHERE isvalid (the_geom) = false та isvalid (буфер (the_geom, 0.0)) = true;
Але я отримую відповідь:
ПОВІДОМЛЕННЯ: Самостійне перехрестя дзвінка в точці або біля неї (відредаговано) ПОМИЛКА: новий рядок для відношення "sgm_buffer" порушує контрольне обмеження "прымушення_геотип_те_геома"
********** Помилка **********
ПОМИЛКА: новий рядок для відношення "sgm_buffer" порушує контрольне обмеження "Execuce_geotype_the_geom" Стан SQL: 23514
Я також спробував просто:
ОНОВЛЕННЯ csgn.sgm_buffer НАЛАШТУВАТИ буфер_geom = (the_geom, 0.0)
і отримуй:
ПОМИЛКА: новий рядок для відношення "sgm_buffer" порушує контрольне обмеження "Execuce_geotype_the_geom"
********** Помилка **********
ПОМИЛКА: новий рядок для відношення "sgm_buffer" порушує контрольне обмеження "Execuce_geotype_the_geom" Стан SQL: 23514
Тож я припускаю, що ця буферна методика не працюватиме на мої проблеми? Або я роблю щось не так?
Тоді містер Рамсей продовжує роботу в тому ж документі, щоб запропонувати додаткову техніку поводження з полігонами "цифра 8". Я не зовсім розумію, як написати це повністю в коді (або що він робить і чи допоможе мені):
ВИБІРТЕ ST_BuildArea (ST_Union ('ЛІНІСТРІНГА ПОМОЩА', ST_ExteriorRing ('ПОЛІГОН ((...))'
Отже .... може хтось допоможе? Це є справжнім кошмаром з моїми жорсткими часовими рамками та обмеженими навичками в PostGIS.
ST_Multi()
буде змусити всі багатокутники бути MULTIPOLYGON
s (це припущення)