Більше

Просторове приєднання однієї точки до множинних багатокутників


У мене є точковий шар, який я хочу просторово приєднати до шару багатокутника (ввести атрибути).

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

Я хотів би, щоб це сталося, це те, що якщо є декілька багатокутників, до яких можна приєднатися, це призведе до дублювання точки. По суті, ArcGIS: join_operation = JOIN_ONE_TO_MANY

Я працюю в QGIS 2.8+.

Я задоволений сценарієм / рішенням PyQGIS, оскільки я не думаю, що для нього є готові інструменти. Але я волів би не мати рішення SpatiaLite, оскільки я хочу спростити його для кінцевого користувача.

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


Ви маєте рацію (принаймні, наскільки мені відомо), що просторове об'єднання QGIS не пропонує параметра взаємозв'язку, доступного в просторовому об'єднанні ArcGIS.

У вашому випадку, оскільки ви описуєте відношення багато-до-одного, а не один-до-багатьох (багатокутники до точок), існує обхідний шлях. Якщо у вас було багато точок, які ви хотіли приєднати до кожного багатокутника, це, звичайно, не спрацювало б, оскільки у вас було б більше одного значення, щоб заповнити один і той же доступний слот (що вимагало б відношення або дублювання багатокутників). Але у вас є кілька слотів, які збігаються, і лише кілька точок, тому швидкий обхідний шлях полягає у продублюванні точок - кожен раз для кожного з полігонів, яких він торкається. Інструмент Intersect повинен це зробити.

Після того, як ви перетнули два шари, у вас повинен бути новий набір точок з принаймні однією точкою для кожного багатокутника, що перетинається, і точки матимуть атрибут ID полігонів, які вони перетинають. Точки, які не перетинаються, звичайно, будуть скинуті. Потім ви зможете виконати звичайне об’єднання атрибутів / таблиць між ними на основі поля полігону ID.

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


Перегляньте відео: Что будет если подключить два роутера последовательно. (Жовтень 2021).