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

NMaps Tweaks — скрипт для Народной карты

Okclick
22 сентября 2016, 18:05

Этот скрипт когда-то назывался «Circles and Polygons» и был создан by Falcon & Alexxegorov как инструмент для рисования идеально ровных окружностей. Но, поскольку он уже далеко ушёл от простого рисования кружочков, я рискнул переименовать его в «NMaps Tweaks».

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

Что на сегодняшний день умеет скрипт

1. Рисование дуги окружности по трём последовательно заданным точкам (условно: М1, М2, М3). Самая главная «фича»! С её помощью очень удобно рисовать округлые участки любых линий и контуров.

Для использования этой функции нужно предварительно войти в режим создания/редактирования объекта и, если необходимо, «продолжить» рисование с нужного узла. Затем используем одно из двух сочетаний клавиш, которые определяют направление: ALT+D — по часовой, ALT+SHIFT+D — против часовой. После этого указываем 3 точки окружности, наводя на них указатель мыши и нажимая ПРОБЕЛ (не кликая мышью). После указания последней точки будет нарисована дуга от М1 до М2 в заданном направлении. Точку М3 можно указывать в любом месте окружности (в т.ч. за пределами рисуемой дуги), однако чем равномернее и дальше друг от друга разнесены все три точки, тем лучше будет результат. Естественно, в процессе выбора точек карту двигать нельзя, иначе получится неизвестно что.

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

Необходимое количество узлов определяется автоматически, но можно задать его вручную, если удерживать SHIFT в момент выбора точки М3. Также на автоопределение влияет выбранный масштаб: если хотите, чтобы узлы ставились чаще, — приблизьте карту, реже — отдалите.

Если что-то пошло не так, процесс рисования можно прервать в любой момент, удерживая клавишу ПРОБЕЛ.

2. Рисование полной окружности по трём точкам. Сочетания клавиш: ALT+R и ALT+SHIFT+R. Всё аналогично рисованию дуги, но рисуется полная окружность в заданном направлении, начиная с точки М1.

В процессе рисования дуг и окружностей скрипт автоматически отключает «режим прилипания», имитируя удерживаемую клавишу SHIFT (чтобы не нужно было каждый раз нажимать кнопку с магнитом). Если по какой-то причине Вас такое решение не устраивает, можно отключить эту фичу по умолчанию, задав в файле «NMaps Tweaks.ini» значение параметра «NoSnapping = 0», или включить/выключить уже в загруженном скрипте сочетанием клавиш ALT+N.

3. Удаление вершин контура одним кликом с клавишей CTRL. Скрипт имитирует двойное нажатие ЛКМ, при этом исключая случайное перемещение указателя между двумя кликами, тем самым сберегая ресурс Ваших нервов, пальцев и мыши.

4. Скругление углов одним кликом с клавишей ALT. Теперь скрипт научился находить пункт «скруглить угол» в любой строке меню. Правда, новый метод может работать не у всех, так как скрипт ищет графическое отображение упомянутого пункта меню на экране, а в разных браузерах и операционных системах используются разные методы сглаживания экранных шрифтов, из-за чего результирующие картинки могут существенно отличаться.

Если скругление углов у Вас не работает, это можно исправить. Сделайте скриншот, на котором виден пункт меню «скруглить угол». Обрежьте его так, чтобы получилась примерно такая же картина, как в файле «NMaps_RoundCorner.PNG», и сохраните Ваш «образец» поверх этого файла. Должно заработать.

Также существует возможность вернуться к старой версии алгоритма с двумя комбинациями клавиш (Alt+ЛКМ, когда пункт «скруглить угол» находится в 3-й строке всплывающего меню, и Alt+Shift+ЛКМ, когда в 4-й). Для этого нужно в файле «NMaps Tweaks.ini» изменить значение параметра «OldRoundCorner = 1».

5. Переключение подложки (спутник/схема) клавишами ALT+A или WIN+A

6. Переключение режима линейки клавишами ALT+Z или WIN+Z

Зачем второй вариант с клавишей «Win»? Потому что внезапно обнаружилось, что в моём Firefox в Народной карте не работают экранные кнопки, если нажата клавиша «Alt»... В «чистом» Firefox — всё фунциклирует как надо. Но раз уж проблема обнаружилась, на всякий случай сделал альтернативу.

7. Сохранение объекта с последующим созданием нового по CTRL+SHIFT+S — для тех, кому (как и мне) до жути неудобна новая комбинация «CTRL+SHIFT+A». Данную фичу можно отключить, задав в файле «NMaps Tweaks.ini» значение параметра «CtrlShiftS = 0».

Также существует возможность сохранять объекты по Ctrl+Enter и Ctrl+Shift+Enter, которая по умолчанию — выключена. Чтобы её задействовать, нужно всё в том же файле «NMaps Tweaks.ini» указать значение параметра «CtrlEnter = 1». Включая данную фичу, следует помнить, что скрипт не понимает (пока, во всяком случае), что Вы хотите сделать в данный момент времени. Он будет тупо «нажимать» Ctrl+S вместо Ctrl+Enter, и, например, вместо отправки личного сообщения или комментария у Вас по Ctrl+Enter может вылезти окно «сохранить страницу».

8. Нахождение центра отрезка (ALT+C) или окружности (ALT+SHIFT+C). В некоторых случаях помогает найти оптимальное расположение, например, адресной точки в здании или значка фонтана в чаше. Рекомендуется выполнять команду одновременно с перетаскиванием маркера (то есть предварительно «захватить» его мышью и удерживать до окончания выполнения алгоритма).

9. Авторазметка подъездов в типовых многоэтажках. Скрипт при помощи линейки ставит вдоль здания отметки напротив тех мест, где должны быть подъезды. Вы задаёте две крайние точки и количество подъездов. Целиться нужно не в край здания, а немного сместившись внутрь или вовне, иначе линейка закроет ребро контура. У инструмента два режима работы: ALT+E — в качестве крайних точек указываете торцы зданияALT+SHIFT+E — указываете два крайних подъезда.

Примеры использования скрипта (видео):

- Рисование окружности (Alt+R)
- Рисование кругового перекрёстка и газонов на нём при помощи дуг (Alt+D)
- Рисование здания правильной восьмиугольной формы (Alt+R)
- Рисование леса с использованием дуг (Alt+D) и скругления углов (Alt+ЛКМ)

Если у кого-то возникнут проблемы/вопросы/пожелания, фидбэк в комментариях приветствуется! :)

Скачать последнюю версию скрипта можно здесь.

Файл скрипта желательно сохранить в отдельную папку, так как при первом запуске он создаёт рядом с собой вспомогательные файлы, в том числе:
NMaps Tweaks Info.txt — содержит краткое описание скрипта и историю версий;
NMaps Tweaks.ini — содержит настройки, влияющие на работу скрипта;
NMaps Tweaks.ahk — исходный код скрипта (для тех, кому это интересно)
и несколько картинок в формате PNG.

ВАЖНО! Скрипт НЕ будет перезаписывать файлы, которые уже существуют, чтобы случайно не затереть изменения, внесённые пользователем. (Кроме файла «NMaps Tweaks Info.txt», содержащего описание текущей версии, он обновляется всегда.) Поэтому, если Вам интересно, что изменилось в исходниках, запускайте свежескачанный файл в пустой папке.

Последние обновления:

11.03.2017:

* Доработана функция разметки подъездов: исправлены мелкие недочёты, добавлен режим разметки по крайним подъездам

* Добавлена команда Alt+Shift+C для поиска центра окружности

29.01.2017:

* Добавлена функция разметки подъездов

24.11.2016:

* Восстановлена работоспособность скрипта после очередного изменения заголовка окна Народной карты.

* Исправлена ошибка, из-за которой не работало или раньше времени прерывалось рисование дуг и окружностей, если окно браузера находилось НЕ в левом верхнем углу экрана.

* Немного скорректирована функция скругления углов, вызываемая сочетанием ALT+ЛКМ.

19 комментариев
Подписаться на комментарии к посту
только за  ALT+D :) скачал, спасибо
Когда я рисовал народную, я не отвлекался на сторонние программы и всел все комбинации клавиш с привычных трех кнопок или двух в одну. Но раз все же приходилось что-то иное открывать, то самыми частыми были клавиши включения и отключения клавиш, а все остальное было по одной клавише.
Большое спасибо! Очень удобно сделано :)
Далеко скрипт пошёл :)
Пригодится.
Спасибо за труд. Часто пользуясь скриптом.
Бегущий Forest
24 сентября 2016, 21:54
Спасибо! Очень классный скрипт, в разы упрощающий рисование =)
Волшебный скрипт. Огромное спасибо!
Дмитрий Митин
24 ноября 2016, 17:04
Сейчас скрипт не работает. Проверял на двух пк. 


Еще пару дней назад все было ок.
Нажимаю хоткеи - ничего не происходит. Состояние твика в трее — зелененькая буковка "Н", т.е. скрипт не спит, кнопки не в саспенде
Дмитрий Митин,
это из-за того, что с последним обновлением изменился заголовок окна Народной карты. Теперь скрипт её не идентифицирует. Скоро выложу исправленную версию.
Виталий Рупп
30 ноября 2016, 22:56
Как запускать, где инструкция?
Виталий Рупп
30 ноября 2016, 23:03
Виталий Рупп,
Жэсть на 10ке блокировка была)))
Алекс Грэйт
1 апреля, 06:27
Новая функция автоматического прилипания одного контура к другому на определённом участке линии:
1. Выберите начальную точку прилипаемого контура
2. Выберите конечную точку прилипаемого контура
3. Контур одного объекта прилипнут к контуру другого. Профит.
Алекс Грэйт
1 апреля, 06:29
Алекс Грэйт,
а если оба объекта уже созданы, то:
1. Выберите начальную точку прилипаемого контура
2. Выберите конечную точку прилипаемого контура
3. Выберите начальную точку редактируемого контура
4. Выберите конечную точку редактируемого контура
5. Профит
Залей исходники на GitHub, чтобы могли делать пулл-реквесты для скрипта
XjCyan1de,
я пока не знаком с этим ресурсом. Но, видно, штука интересная. Нужно время, чтобы ознакомиться.
☭Okclick,
Отпишись мне в телеграме: @xjcyan1de , научу как пользоваться :D
Александр
12 апреля, 15:50
Подскажите, исчезли popup alert на всех сайтах, после установки NMaps Tweaks (другого ничего не ставил).
Симптомы: сами alert появляются, блокируют доступ ко всем функциям браузера, но визуально не видны, закрыть можно или по Esc или по Enter/пробел. 
Браузер chrome, Кэш чистил, в режиме инкогнито все так же
Александр,
Ни разу не сталкивался с подобной проблемой.

Что означает «после установки»? NMaps Tweaks не устанавливается в систему, его необходимо запускать вручную (либо путём запуска исполняемого файла, либо путём открытия файла с исходным кодом в специальном ПО), после чего он висит в памяти и ждёт команды. Скрипт активизируется только в окнах, заголовок которых содержит текст «Народная карта — редактор Яндекс.Карт», на другие окна он не должен оказывать влияния. После запуска скрипта в трее должна появиться зелёная иконка в виде буквы «Н», если её нет, значит, скрипт неактивен, и дело точно не в нём.

Может быть, проблема возникает из-за установленного антивирусного программного обеспечения. Можно попробовать добавить исполняемый файл скрипта в исключения.
Александр
13 апреля, 16:08
☭Okclick,
Наконец разобрался, это Chrome так себя ведет, убрал галку "Использовать аппаратное ускорение (при наличии)" и все зажило снова.