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

Некоторые приёмы рисования больших контуров

Павел 1985
13 июня, 11:30

Всем привет! Кажется, здесь уже публиковалось что-то подобное, но меня периодически спрашивают, как нарисовать большой контур, если это не позволяет сделать лимит точек. Поэтому, чтобы освежить информацию, и чтобы помочь новичкам, я решил аккумулировать в этом посте свой и чужой опыт в этом вопросе.

Лимит на количество точек можно обойти с помощью точек пересечения контуров, так называемых «жёлтых точек». В этом случае лимит уже будет устанавливаться не на весь контур, а между каждой парой жёлтых точек отдельно. Ниже пойдёт речь о способах их добавления и о том, где их лучше размещать. Стоит заметить, что эти точки в будущем затрудняют редактирование контура (к примеру, его уже нельзя просто перерисовать, а только удалить и нарисовать снова), поэтому желательно изначально рисовать наиболее близко к реальным границам, а количество жёлтых точек делать минимальным. Кроме того, если две жёлтые точки будут близко одна от другой, то это не позволит сохранить контур. А удалить жёлтую точку не могут даже модераторы:(

Также стоит заметить, что если два контура одного слоя (например, растительности) непосредственно примыкают друг к другу, то обвод контура следует начинать с точки примыкания, иначе в конце работы в точке начала обвода образуется ещё одна жёлтая точка.

Внимание!!! Обязательно нужно следить, чтобы получившийся контур не пересекал уже имеющиеся контуры того же слоя! Наш контур может стыковаться с соседним, но не более, чем в двух местах за одно сохранение (если правильно помню). Если таких точек стыковки больше, точки нашего контура можно поставить на небольшом удалении, и притянуть их при следующем сохранении.

Итак, теперь о нескольких способах рисования протяжённых контуров на примере лесов где-то в Польше :)

Способ 1. Для рисования большого контура «с нуля» (или после удаления всего того, что там было до этого).

1. Начинаем обводить границу контура, периодически (каждые несколько десятков точек) нажимая кнопку «Скруглить все углы». Это нужно для того, чтобы после скругления не стала неожиданностью надпись «Лимит превышен на 386 точек» :) Когда появляется предупреждение о приближении к лимиту, после последнего скругления, то одной или несколькими линиями возвращаемся к нашей первой точке и замыкаем контур. Вспомогательную линию скруглять уже не нужно!

2. Редактируем. Добавляем к получившемуся контуру внешний контур, обвод начинаем либо с первой, либо с последней точки предыдущего контура (вспомогательная линия, которой мы замыкали контур, — не в счёт). Порядок тот же, что и с предыдущим контуром. В конце ставим точку на точку предыдущего контура, на которой мы начинали либо заканчивали обвод, затем обводим вспомогательную линию предыдущего контура, и замыкаем новый контур. После сохранения на точках стыков контуров появятся жёлтые точки (будут видны при попытке редактирования).

3. Повторяем п. 2 до тех пор, пока весь участок не будет покрыт. Внутренние контуры можно рисовать, но только при условии, что они не пересекают ни одну из вспомогательных линий.

4. Редактируем любой из получившихся смежных контуров. Через режим добавления и исключения участков (находится в расширенном режиме) добавляем внешние границы и исключаем внутренние (наши вспомогательные линии). Необходимо следить, чтобы контур остался замкнутым.

5. Удаляем больше не нужные контуры. Не удалите случайно то, что ещё не добавили в основной контур! :)

6. При необходимости, добавляем внутренние контуры — и готово! :)

Способ 2. Для редактирования уже имеющегося грубого контура.

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

1. Притягиваем линию контура к её реальному положению, повторяем изгибы контура по снимку, при этом не забываем периодически скруглять углы, как и при первом способе. Начать желательно с первой точки (если сами только что создали этот контур, поэтому знаете, откуда начинали), или с уже имеющейся жёлтой (если они есть на старом контуре).

2. После очередного скругления, при получении предупреждения о приближающемся лимите точек, сохраняем контур, затем делаем хитрый финт ушами :) Выбираем создание объекта из того же слоя, что и наш контур, и рисуем его в виде треугольника, одним из углов которого является точка на нашем контуре. Затем включаем режим добавления и исключения участков, что так же ведёт к образованию жёлтой точки. Треугольник не сохраняем, но теперь у нас появилась новая жёлтая точка :)

3. Повторяем п. 1 и 2, пока полностью не обведём нужный контур.

4. При необходимости, добавляем внутренние контуры — и здесь тоже всё готово! :)

Надеюсь, данный пост кому-то поможет разобраться в этом вопросе :)

9 комментариев
Спасибо, Павел, за великолепное (подробное,  иллюстрированное) описание "метода жёлтых точек" для создания контурных объектов сложной конфигурации. 
Да, самый неприятный недостаток этого метода - сложность дальнейшего редактирования (например, если дорога через лес со временем становится двухрёберной). Поэтому я предпочитаю дробление лесов по траекториям дорог и просек на максимально допустимые по точкам скруглений логические куски. Потом с ними можно делать всё, что угодно, причём без использования расширенного режима редактирования и особой осторожности с внутренними контурами.
helpnikspb,
Если дорога вдруг стала двухрёберной, то контур леса можно разрезать. Видео как это делать кажется на неофициальном канале НЯК в Youtube было. 
Очень полезная обучалка для новичков. Хотелось бы добавить к пунку 5, так как не у всех есть права на удаление, что наложившийся контур можно перерисовать в другом месте, для этого надо будет исключить контура в расширенном режиме. 
Павел 1985
13 июня, 15:35
Lex,
Ну либо попросить любого знакомого модератора :)
Алексей Зуев
13 июня, 18:41
Касательно первого способа замечу, что вместо добавления временных внешних контуров можно последовательно рисовать участки границы в расширенном режиме. Логика остаётся прежней: рисуем столько, сколько позволяют ограничения, временно замыкаем контур простой ломаной линией. Жёлтые точки при этом образуются, все нужные функции, такие как скругление, доступны.
Fleget
Сотрудник Яндекса14 июня, 11:17
Годное руководство. 
Алексей Т.
19 июня, 22:05
Fleget,
нет ли в планах доработки, позволившей бы редактировать сложный контур в нормальном режиме (перерисовка)?
Спасибо! Почерпнул для себя кое-что полезное.
Олег Павлович Чечулин
10 июля, 06:44
Респектуха!