JOSM. Хитрости и уловки редактирования.

Карты должны быть не только точными, но и красивыми (IMHO). Поэтому хочу поделится своими хитростями при редактировании карт с помощью JOSM.
JOSM предоставляет массу инструментов для редактирования.
Но почему то в нем к примеру нет инструмента выравнивания объектов вдоль линии. Зато присутствует инструмент ориентирования объектов вдоль линии.
Это знакомая команда “Q” которая выравнивает углы объекта на 90° и в случае если указаны 2-е точки ориентирует относительно их.

Пример: необходимо выровнять здания относительно улицы

  1. обводим вспомогательной линией сначала по внешней стороне (получаем прямоугольник) затем по внутренней.
  2. выделяем вспомогательные линии и здания (зажимаем Ctrl)
  3. выделяем 2-е точки относительно которые мы будем ориентировать и выравнивать здания (в данном случае это перекрестки дорог)
  4. нажимаем “Q”
    … и получаем:

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

Подобные процедуры можно проводить и с частным сектором:

Еще большой интерес представляет команда “О” которая из последовательностей точек делает правильную окружность.

Кстати очень удобно рисовать стадионы.
Сначала рисуем окружность нужного нам размера.
затем копируем ее и относим на нужное расстояние.
Далее обводим полигон который мы впоследствии и назовем leisure=pitch
и удаляем сами окружности:

Вообще комбинацией окружностей, прямоугольников и вспомогательных линий можно составлять разные сложные фигуры.
К примеру этот фонтан нарисован мной с помощью 1 квадрата и 4-х окружностей.

Хотелось бы надеется что кому то это поможет, а так же кто нибуть поделится своими хитростями. :smiley:

Great!

Стадион в этом примере

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

Это же для примера. Ну не нашел я быстро под рукой “пустую” правильную школу. :slight_smile:
Окружность на стадионе не всегда половина. Поэтому проще скопировать и соединить их прямыми. Потом разрезать окружности командой “Р” (разделить линию, выделяя её саму и точки по которым резать) удалить не нужное, выделить остатки и нажать на кнопочку “С” (объединить линию) и вешать тег.

Более адекватные окружности можно нарисовать через Shift+O, предварительно установив createcircle.nodecount в расширенных настройках. Тот стадион, например, можно было нарисовать прямее (правильный прямоугольник из Building tools, две окружности от Shift+O, затем всё можно объединить через Shift+J):

Подъезды:

Во-первых, (довольно точно) распределить их по фасаду поможет сдедующее действо: рисуем подъезды, добавляем между соседними парами подъездов по дополнительной точке, выделяем всё это вместе с углами здания и нажимаем B (Edit - Distribute nodes). Потом точки можно удалить.

Далее, чтобы нарисовать перпендикулярные дому дорожки к подъездам: рисуем из подъездов лучи абы как, затем выделяем 2 подъезда и 2 дорожки из них и нажимаем Q, дорожки станут перпендикулярными, при этом подъезды не сместятся. К сожалению, со всеми разом так не сделать - больше двух точек не выделить, а если выделить больше дорожек, их подъезды будут смещаться.

Остаётся обрезать и повесить footway:

Хочется упомянуть, что такие трюки с выравниванием должны применяться не в ущерб точности. Т.е. если на местности здания стоят действительно криво, то и рисовать их надо так, как они стоят.

А то читатель может подумать, что красота карты приоритетнее точности :slight_smile:

А ещё для выделения и объединения пересекающихся полигонов хороша последовательность I-I-…- Shift-J (Utilsplugin2) (начинаем с одного выделенного).
Я так домики с выступами в buildingTools рисовал.

Mirror из CommandLine можно использовать для создания симметричных фигур. Например, тут

окружности можно было копировать Mirror-ом относительно диагоналей квадрата.

А ещё Q помогает продлять линию.
Вот эта клумба и её клоны рядом нарисованы через Offset из CommandLine и продление линий

  1. Шестиугольник
  2. Offset наружу
  3. Отрисовка вспомогательных линий - продление каждой стороны внутреннего шестиугольника по 1 доп.точке в каждую сторону
  4. Выравнивание этих линий через Q (выделить линию и две образующие её вершины внутреннего шестиугольника)
  5. Установка точек на пересечениях внешнего шестиугольника с этими линиями
  6. Отрисовка контура клумбы по готовым точкам.
    Схемка тут: http://ge.tt/8zXzcRS/v/31?c (базовый шестиугольник выделен, одна из линий подсвечена)

AMDmi3, отличная подсказка с окружностями. Чё ж вы раньше молчали? :smiley:

Модуль BuildingsTools. Здания расположены вдоль одной линии на разном расстоянии от линии, рисуем в два клика. Обрисовываем контур здания выделяем щелчком по контуру и последующие контуры рисуем в два клика параллельно выделенному контуру здания.

http://www.gophoto.it/view.php?i=http://download52.files.attachmail.ru/4540EC63B1EE44C596D35D140E5B730D/b63b30887b747c613d9e424b34a1247e/2013-08-01%2017_43_53-_%20%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80%20OpenStreetMap%20%D0%BD%D0%B0%20Java.png

А я то думал, чо он у меня иногда “цепляется”. Приходится Shift нажимать что бы отвязался :slight_smile:
Теперь понятно.

Решил таки нарисовать подъезды в своем доме :slight_smile:
Воспользовался советом AMDmi3
Все здорово получилось. Только хочу уточнить комбинацию кнопок. Надо жать “Shift+B” Иначе в моем случае будет рисоваться просто здание.
Вообще огромное спасибо AMDmi3 за его прием рисования окружностей и вписывание их в полигоны. Это настолько облегчает труд, что мне теперь просто нравится их рисовать :slight_smile:
Единственное что заметил это то, что после “чистой” установки JOSM параметра createcircle.nodecount в системе нет. Его необходимо добавить вручную (Кнопка “Добавить” в тех же настройках)

Кстати, перпендикуляры дорожек от подъездов можно проще рисовать - правый клик на сегменте для угловой привязки относительно него.

можно чуть поподробнее? вы JOSM имеете в виду?

Да, все очень просто - выбираете draw line, включаете угловую привязку (А), кликаете правой кнопкой на любом сегменте и начинаете рисовать (линия будет будет строиться с угловой привязкой к этому сегменту).

Ещё вместо клика можно провести над сегментом мышкой с зажатым ctrl (чтобы меню слоя Bing не выпадало)
Перевёл справку про угловую привязку: https://josm.openstreetmap.de/wiki/Ru%3AHelp/Action/Draw

Как-то давно я высказывал пожелание инструмента, который усреднял бы GPS-треки и автоматически уточнял по ним положение узлов дорог.

Сегодня обнаружил в JOSM удивительный плагин GPSBlam. Не совсем то что хотелось, но он тоже усредняет значение GPS-точек на заданном отрезке и рисует на экране прямую линию.

Я использую так - немного отступив от нужного мне перекрёстка выделяю участок улицы (перекрёсток и треки с примыкающих дорог попадать не должны) и тяну линию. В результате будет отрисован некий усреднённый луч, кторый по идее должен совпадать с осевой линией дороги. Повторяю операцию с примыкающей дорогой.
В результате имеем довольно точную привязку, по которой двигаем спутниковую подложку намного точнее чем по множеству треков “на глазок”.

Если какие-то треки с вылетами - можно отключить их в GPX-слое и они не будут взяты в обработку.

Не делайте теперь так. Есть angle snapping / угловая привязка.

Достаточно Ctrl зажать чтобы точка встала на линию под прямым углом или другим.

https://josm.openstreetmap.de/wiki/Help/Action/Draw/AngleSnap