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

Перенос поля атрибутов из одного векторного слоя в другой не по одинаковому id

Добавлено: 24 дек 2021, 20:06
Logvinov_Ilya
Добрый день, в рамках дипломного проекта изучаю редевеломпент в ядре Санкт-Петербургской агломерации
Для этого использую векторные данные проекта https://how-old-is-this.house/saint-p. Форма зданий с данного сайта не совпадает со зданиями из osm и у этих векторных слоёв нет одинакового id. Однако нужно перенести данные о возрасте зданий в слой зданий из osm, но не знаю как это сделать.
Есть ли какой-то способ сделать это без id и без совпадения векторов? Переносить в ручную нет желания и есть подозрение что данная проблема решаема, но о ней не говорят.
Во вложениях приложил скриншоты из qgis.
Буду крайне признателен, если кто-то поможет.

Re: Перенос поля атрибутов из одного векторного слоя в другой не по одинаковому id

Добавлено: 24 дек 2021, 20:21
gamm
Если здания более менее совпадают, то центроиды одного слоя наложить на здания второго и снести id обоих слоев в общую таблице. Сделать на всякий случай в обе стороны, и сравнить результат. Потом обычный sql.

Re: Перенос поля атрибутов из одного векторного слоя в другой не по одинаковому id

Добавлено: 24 дек 2021, 21:00
Logvinov_Ilya
С центроидами проблема. Для центра города характерны дворы колодцы, поэтому они не всегда накладываются

Re: Перенос поля атрибутов из одного векторного слоя в другой не по одинаковому id

Добавлено: 24 дек 2021, 21:01
Эдуард Казаков
Вам нужен инструмен панели анализа "Объединение атрибутов по расположению", с типом объединения "атрибуты объекта с наибольшим наложением"

Re: Перенос поля атрибутов из одного векторного слоя в другой не по одинаковому id

Добавлено: 24 дек 2021, 22:08
Logvinov_Ilya
Спасибо, объединение атрибутов по расположению сработало

Re: Перенос поля атрибутов из одного векторного слоя в другой не по одинаковому id

Добавлено: 25 дек 2021, 08:44
gamm
Logvinov_Ilya писал(а): 24 дек 2021, 21:00С центроидами проблема.
странно ... когда я был молодым, центроид сажали в точку строго внутри полигона, ближайшую к центру тяжести, а за такое били по рукам для их спрямления :mrgreen:

но в данном случае действительно может возникнуть проблема даже при таком подходе.

Re: Перенос поля атрибутов из одного векторного слоя в другой не по одинаковому id

Добавлено: 25 дек 2021, 10:29
freeExec
Тогда надо бить по языку, и не использовать слово центроид, там кто подразумевают что-то другое.

Re: Перенос поля атрибутов из одного векторного слоя в другой не по одинаковому id

Добавлено: 25 дек 2021, 16:37
gamm
freeExec писал(а): 25 дек 2021, 10:29Тогда надо бить по языку, и не использовать слово центроид, там кто подразумевают что-то другое.
расскажите это глупым разработчикам MapInfo, которые так делают (у них как раз центроид где надо, внутри полигона, потому что они не путают центроид и центр тяжести) :mrgreen:

P.S. Просто я старый, и помню, для чего этот самый центроид был придуман, и почему он должен быть внутри.

Re: Перенос поля атрибутов из одного векторного слоя в другой не по одинаковому id

Добавлено: 25 дек 2021, 16:49
Ivor
gamm писал(а): 25 дек 2021, 16:37Просто я старый, и помню, для чего этот самый центроид был придуман, и почему он должен быть внутри
Вспоминаются всякие разные деревья пространственного поиска, но там точка не обязательно должна быть внутри полигона. Да и в геометрии, в общем, тоже (а в геометрии центроид появился сильно раньше гисов). Или есть какой-то скрытый давно забытый смысл?

Re: Перенос поля атрибутов из одного векторного слоя в другой не по одинаковому id

Добавлено: 25 дек 2021, 17:21
gamm
речь именно о ГИС, там все просто - чтобы определить, находится ли точка внутри полигона, к ней из центроида рисовали отрезок, и считали число пересечени границ (четное - внутри, нечетное - снаружи). Ну, и метку туда сажали, тоже хотелось, чтобы внутри полигона была.