Як виконати просторове з'єднання точкових та багатокутних шарів у PostGIS?


13

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

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

update households h set parcel_id = p.parcel_id 
from parcels p where ST_contains(p.the_geom, h.xy);

Відповіді:


8

Для того, що ви хочете досягти, я думаю, що ST_DWithin буде працювати. З документації на сайт PostGIS:

ST_DWithin - Повертає істину, якщо геометрії знаходяться в межах вказаної відстані одна від одної. Для геометрії одиниці є просторовими орієнтирами, а для географії одиниці знаходяться в метрах, а для вимірювання за замовчуванням use_spheroid = true (міра навколо сфероїда), для швидшої перевірки, use_spheroid = false для вимірювання вздовж сфери.


Можливо, це може спрацювати, але хитрість полягає в тому, щоб встановити правильний поріг пошуку. Встановіть його занадто високо, і я отримаю більше одного матчу, встановіть його занадто низько, і я не отримаю жодного. Або встановіть її високою та відкиньте додаткові записи матчу.
АКО
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.