Клуб Народной карты

Начальник, а что я нарушил?

Иван Сапогов
20 марта, 15:07

Регулярно при самых разнообразных обстоятельствах меня упрекают в нарушении правил для смежных объектов. Я не знаю,

а) что я нарушил;

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

Пожалуйста, объясните мне, в чём дело.

И вдогонку: я скругляю, допустим, углы у лесного массива, а мне заявляют, что геометрия некорректна. Почему? По-моему, это уж точно баг, потому что в Правилах нет никаких требований про «корректность» геометрии.

Заранее всем спасибо за ответ и уделённое время.

25 комментариев
Подписаться на комментарии к посту
Доброго вам понедельника!
Отвечу сначала на вторую часть вопроса.
Да, действительно такой баг случается. Мы в курсе проблемы и занимаемся ее решением.

Что касается первой части, тот тут причин появления данного сообщения может быть очень много. Если будет немного больше информации о том, как вы работали с этим объектом, будет проще понять в чем дело.

Так же, будьте добры, пришлите ссылку на объект (можно получить таким способом - https://clck.ru/An9hd). Для начала этого хватит.

Спасибо. 
Иван Сапогов
20 марта, 20:46
Misha Fleget,
это невозможно, потому что я не могу его сохранить.
Иван Сапогов,
геометрия, рисуешь - сохраняешь БЕЗ скругления углов.  Открываешь редактирование, скругляешь все углы. Если все ок, сохраняешь снова. Некорректная геометрия? Ищещь пару узлов которые скрестились при округлении, обычно они в том районе где начато редактирование/рисование. Нашел? Удаляешь один узел, - сохраняешь.  Не нашел? Выходишь, оставляя как есть. Пусть кривовато зато сохранилось отрисованное. Когда баг поправят - исправим))))) (год наверное точно ждем)
Обновлено 21 марта, 14:35
Такая же ситуация с кладбищами и лесами, которые конфликтуют не по делу. Кладбища давно надо территорией сделать.
Геометрически корректным признаётся замкнутый контур без самопересечений. Кроме того, возможно, соседние вершины не должны быть слишком близкими друг к другу.

Мне известны 3 возможные причины появления некорректной геометрии контура (не считая создания таковой вручную):

- Спрямление всех углов - это ошибка процедуры (возможно, не учтено, что при скруглении ребро может "укоротиться" с каждой стороны; если от ребра отрезают суммарно больше его длины, возникает петля). Для решения нужно проверить близко расположенные вершины и удалить лишние.

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

- Изначально некорректная геометрия - ошибка была пропущена при импорте данных, но отвечать приходится редактирующему. Ошибки бывают самые неожиданные, искать их трудно.

Также возможно отсутствие прав на редактирование смежного объекта, но насколько я помню, в этом случае выдаётся отдельное сообщение об ошибке.
alexei-zuyev,
Имелось в виду Скругление всех углов, конечно.
От подобных ошибок пропадает всякое желание рисовать растительность. И ведь непонятно, что ты неправильно сделал. Контуры не пересекаются, близко расположенных точек нет. Почему бы не сделать, чтобы указывалась более конкретное пояснение.
borland,
действительно, сейчас сообщение относительно универсальное получилось, и оттого недостаточно конкретное - не пишется какая именно ошибка препятствует сохранению объектa. Посмотрим, что  можем простым путем с этим сделать.
Обновлено 20 марта, 18:38
Павел 1985
20 марта, 22:17
akbars,
Уже предлагал, неоднократно, отмечать "проблемные" участки контуров стрелочками с кратким описанием проблем. Видел, часть уже реализована, за это огромное спасибо, но работы над этим ещё ОООЧЕНЬ много!!!
Павел 1985,
Программисты обычно говорят в таких случаях, что "у нас процедура возвращает только код ошибки" и "мы не хотим корёжить интерфейс" (имеется в виду не пользовательский интерфейс, а протокол взаимодействия между модулями программы).
yet another Олег Чечулин
21 марта, 10:10
alexei-zuyev,
Значит, наделали ошибок на этапе проектирования :)
Павел 1985
22 марта, 08:13
alexei-zuyev,
Другими словами, им просто лень
В первом случае озеро нарисовано прямо поверх болота с неоднократными пересечениями. Контур нормально сохранится, если таких пересечений будет всего два. А если больше, то будет появляться такая ошибка
sc1a,
Пересечений, кажется, всего два, но промежуточные точки могут "притянуться" к контуру болота, и пересечений станет больше двух. Возможно, этот водоём удалось бы сохранить при максимальном зуме.
sc1a,
очень похоже на правду. 
Павел 1985
20 марта, 22:22
sc1a,
А если данное озеро  и болото "не контачат" друг с другом? После этого может возникнуть большой геморрой для редактирования контура болта...
Павел 1985,
Если на местности болото отделено от водоёма, но на карте мешает его нарисовать, то можно сначала отодвинуть контур болота.
ВысшийРазум
20 марта, 17:26
Лично я при /вдогонку/ просто делаю масштаб на максимум и прохожу по всему контуру, удаляя ненужные точки. 
Про б). В таких случаях я просто бесконечно тыкаю на "Сохранить"...ну, и иногда помогает;)
Павел 1985
20 марта, 22:25
ВысшийРазум,
Я тоже так делаю, но это же геморрой на наши жопы, неоднократно ранее писал про стрелочки на проблемных участках
Misha Fleget
Сотрудник Яндекса21 марта, 12:22
Павел 1985,
мы бы очень хотели, что бы все пожелания наших пользователей решались как можно быстрее и стремимся к этому, но не все бывает так просто. Что-то мы можем сделать раньше, что-то требует гораздо большего времени и ресурсов, чем может показаться на первый взгляд.

Просим отнестись с пониманием к таким вопросам. 
Misha Fleget,
относимся. куда деваться то)
Misha Fleget
Сотрудник Яндекса21 марта, 16:30
Dr.@lex,
приятно слышать. 
ВысшийРазум
21 марта, 21:30
Павел 1985,
ну что поделать...
На первом скрине, скорее всего, два соседних узла редактируемого водоёма притянулись к контуру болота (пунктир бирюзового цвета), в результате чего случилось наложение контуров, что не допускается. В такой ситуации может помочь увеличение зума до максимума перед сохранением.

На втором скрине, скорее всего, где-то произошло самопересечение контура. Вот такая фигня очень часто случается после использования функции "скруглить все углы", причём, таких мест может быть много, а найти их непросто, так как они незаметны на обзорных масштабах. Поэтому перед использованием данной функции лучше сначала сохранить "рубленый" контур, чтобы, по крайней мере, не потерять проделанную работу.
Обновлено 20 марта, 19:23
Проблема элементарна, как контур кепи Шерлока Холмса. Почти наверняка контуры или части контуров рисовались на 7-ми метрах, скрины 10-метровые, там точки очень близки друг к другу. Сохраняй на 3-х метрах и всё будет Олл Киндерхук!