Эстония

Вот это утверждение непонятно.
Если посмотреть любой населенный пункт (проще всего открыть в JOSM любую из Missing streets из верхушки списка),
можно заметить, что до половины одинарных домиков, имеющих номер на растре Maa-amet, не импортированы в базу OSM.
Как так?

I know there is Kaagvere küla near Tartu. It’s on Maaamet 58’21, 26’55
Why I can’t see it in validator lists?

I think its because the validator only shows the streets, that is into address tag of houses in the OSM database, but missing on the location near the houses. In Kaagvere küla the Maa-amet map has no houses with address, respectively, OSM database also has no houses with addresses. Therefore, there is no reason to trigger the validator - there is no discrepancies.

Kaagvere küla is missing in Maa-amet ADS database.

Я что-то пропустил или теперь поверх большого контура пропускаем мелкие домики ?

Вопрос не понят :slight_smile:

Сейчас в обработку пошли склееные домики. Импортируем их как раздельные контуры.
Следить следует:

  1. За конфликтами
  2. За тем, чтобы синий маркер на OSM карте был внутри синего контура

очень часто, есть большой контур и уже импортинованы с наложением несколько маленьких. Вот я про это, что потом их как-то удалят или в надежде что когда-то, кто-то увидеть это и сотрет лишнее.

Небольшой процент брака будет всегда.
Пока удалять его нечем. Нужно писать валидатор для пересекающихся зданий.

Хоть ручная валидация и есть, но человеческий фактор не отменяли…

Пример, и пачка зданий рядом.
http://osm.svimik.com/btrace_verify.php?x=547752.37&y=6596287.42

У меня одного ощущения, что здесь многовато номеров домов?

39 tags:
addr:city = Karksi-Nuia
addr:country = EE
addr:housenumber = 57
addr:housenumber10 = 65
addr:housenumber11 = 55
addr:housenumber12 = 28
addr:housenumber13 = 37
addr:housenumber14 = 71
addr:housenumber15 = 34
addr:housenumber16 = 69
addr:housenumber17 = 38
addr:housenumber18 = 30
addr:housenumber19 = 58
addr:housenumber2 = 53
addr:housenumber20 = 27
addr:housenumber21 = 48
addr:housenumber22 = 26
addr:housenumber23 = 43
addr:housenumber24 = 63/64
addr:housenumber25 = 61
addr:housenumber26 = 77
addr:housenumber27 = 56
addr:housenumber28 = 46
addr:housenumber29 = 45
addr:housenumber3 = 62
addr:housenumber30 = 44
addr:housenumber31 = 54
addr:housenumber32 = 72
addr:housenumber33 = 66
addr:housenumber4 = 70
addr:housenumber5 = 35
addr:housenumber6 = 49
addr:housenumber7 = 36
addr:housenumber8 = 32
addr:housenumber9 = 42
addr:street = Kivi
building = yes
maaamet:ETAK = 236533
source:addr = Maa-amet 2012

http://osm.svimik.com/btrace_verify.php?x=591198.62&y=6440921.43

Как выяснилось, половина адресных точек промазала, так что здания забраковались:

Надо пройтись повторно, выбирая другие адресные точки.

Ну что сказать… Я тут ни при чём. Дай таким людям вручную рисовать - они и вручную всё поломают.

А фиг его знает. Кадастр такой кадастр…

SviMik, т.е. ты как бы снимаешь с себя ответственность за то, что не снабдил Импортер Зданий инструкцией в картинках ? :slight_smile:

Ты извини, но ты явно всех меряешь по себе - очевидно, умному и способному разобраться в чем угодно (что подтверждается написанными тобой инструментами).
То, что для тебя, как для автора - очевидно, остальным требует разжевывания, причем, каждому индивидуально в картинках (а не один раз на форуме).

Ты забываешь, что минимум половина - не читают по английски (как минимум, без привлечения Google Translate), часть не читает технические инструкции (или не способна понять написанное) даже на русском, никто не отслеживает обсуждение вопросов здесь в форуме (это подтверждается по третьему-четвертому разу поступающими вопросами), часть не понимает самого процесса (в основном, потому что не читали форум и не знают, как и зачем это все делалось и работает) и т.д.
Английские строчки внизу экрана Импортера Зданий - не работают! (точнее, работают для 10% участников).

Никого не хотел обидеть, но правда такова.

Смайлик.

Список пересекающихся зданий: http://osm.sbin.ru/ee/checkbuilds.csv

Если symdiff=0 или близко к тому - то здания совпадают.

Посчитано с помощью postgis.

http://kaart.maaamet.ee/wms/kaart?VERSION=1.1.1&SERVICE=WMS&LAYERS=MA-KAART&SRS=EPSG:3301&STYLES=&FORMAT=image/png&REQUEST=GetMap&WIDTH=256&HEIGHT=256&BBOX=546314.1,6591273.21,546365.3,6591324.41
Подозреваю, что дохнет “выпрямитель” из-за трех углов.

Есть идеи, что с этим делать?

  1. Можно просто удалить одно из зданий, если оно принадлежит моему импорту. Тут вопросов никаких - сам залил, сам удалил, в итоге карта впорядке, конфликтов нет.

  2. Можно написать интерфейс для выбора, какое здание удалять (может при импорте контуры точнее?). Но анализ достаточно сложный (надо хорошо рассмотреть и контур, и снимок, и теги, чтобы понять, что оставлять). Не знаю, будет ли этим кто заниматься (а если и будет - то теперь не уверен в качестве такой работы).

Список домиков на которых “виснет”

x=528975.88&y=6437684.09 ERR
x=537347.46&y=6573689.48 ERR
x=534535&y=6458836 ERR
x=546339.7&y=6591298.81 ERR
x=528289.89&y=6588540.93 ERR
x=522424.27&y=6474546.3 ERR
x=534512.95&y=6458839.59 ERR
x=738456.17&y=6589030.19 ERR

Alexandr Zeinalov, а чего список такой короткий? Пару страниц назад приводил данные своих попыток обнаружения пересекающихся зданий.

Метод определения: для каждого замкнутого домика (проверял только вейные, мультиполиноны не смотрел) создавался полигон geometry из postgis (для этого писалась psql функция), далее находилось расстояние между полученными полигонами, если = 0, значит здания пересекаются. Ручная проверка пару десятков домиков проблем с алгоритме не выявило. Стандартный postgis оператор “&&”, в свою очередь, работал значительно быстрее, но часто выдавал рядом стоящие здания за пересекающиеся (возможно, сверка по bbox полигона?).
Повесить бы это дело с тригерами на базу SviMik, дабы расчет велся на лету. Но есть пару нюансов. Вычисление полигона достаточно долгий процесс. Да даже вычисление расстояния не блещет скоростью, но при наличии полигонов в базе тригеры изменений справятся. Однако хранение полигонов для всех домиков, думается, жирновато для базы. Мне кажется, наиболее быстрым и менее жрущим вариантов будет джойнить домики по нодам в некоторой округе от проверяемого, и только для этой части уже на лету вычислять геометрию и сверять на пересечения. Ну и храить все пересечения в отдельной таблице, которую и будут апдейтить тригеры after update/insert/delete на вейных полигонах, и в последствии, мультиполигонах.

Мне эта идея не очень нравится. Но зданий таких не очень много, около полутора тысяч (правда, надо будет завтра повторно сгенерировать, когда очередной EE.osm выйдет). Вероятно, имеет смысл написать интерфейс “для себя”, никому его не показывать и самому обработать. Например, если в maaamet здание разрезано на много частей с разными адресами, то может иметь смысл снести “большое” здание. А после всего этого очистить у всех зданий conflict и пустить их по второму кругу.

Это плохая мысль, а особенно она плоха для зданий, которые совпадают.

Для начала хорошо бы слить здания с symdiff=0, их немного, и им достаточно только разумно слить тэги. Ну или выписать эти тэги и определиться вручную, без написания интерфейса.

Вот список:

75783353;75783863;2157.3624;0.0000
75783353;75783871;2157.3624;0.0000
75783863;75783871;2157.3624;0.0000
200612306;200612722;324.5203;0.0000
200612308;200612725;324.5664;0.0000
200612310;200612729;324.4010;0.0000
200612307;200612724;324.3965;0.0000
200612309;200612727;324.5991;0.0000
200612303;200612712;310.1743;0.0000
200612304;200612714;309.9212;0.0000
200612302;200612710;309.9593;0.0000
200612305;200612715;310.1916;0.0000
140994974;140995513;778.5640;0.0000
140994976;140995514;246.9782;0.0000
86807090;86807303;289.7085;0.0000
86806976;86807198;569.0135;0.0000
214270210;214324662;490.9253;0.0000
-1186685;-1186684;959.1449;0.0000
-1186772;-1186770;1416.0525;0.0000
163980881;185298798;532.2956;0.0000
213727040;213728946;987.4750;0.0000
213731034;213731151;1368.4194;0.0000
60348265;60348266;119.5852;0.0000
213728507;213817911;3139.5295;0.0000
214272361;214362448;382.7987;0.0000
214140440;214273063;775.0808;0.0000
211205534;211375247;1313.6756;0.0000
213727253;213731800;1474.3312;0.0000
213727253;213730756;1474.3312;0.0000
213730756;213731800;1474.3312;0.0000
213726697;213727329;977.1992;0.0000
213726697;213731296;977.1992;0.0000
213727329;213731296;977.1992;0.0000
213730862;213816081;2555.3700;0.0000
213815449;213816282;2594.4625;0.0000
213177623;213491722;94.4394;0.0000
213728305;213731457;2975.6304;0.0000
180598361;180598364;458.8664;0.0000

Проблема предварительного фильтра. Углы оказались слишком острые, срезались. В итоге, контур вышел незамкнутым, ну и дальше результат трассировки был не понят.

Чинить не буду, т.к. ортогонализатор всё равно не поймёт зданий с острыми углами. Будет заведомо плохой контур.