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

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

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

Этот скрипт когда-то назывался «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+Q — делает то же самое, что CTRL+SHIFT+H, но удобнее нажимать.

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

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

8. Сохранение объекта с последующим созданием нового по 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 может вылезти диалог «сохранить страницу».

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

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

11. Изменение масштаба карты с клавиатуры. Используйте + и  на дополнительной клавиатуре с нажатой клавишей ALT.

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

Теперь стало проще. Схватив объект или узел левой кнопкой мыши, нажмите ПРОБЕЛ. Скрипт дёрнет указатель мыши в сторону и тут же вернёт обратно. Теперь вы можете свободно двигать объект, не потеряв его исходное местоположение. Кроме того, продолжая удерживать нажатой левую кнопку, можно двигать объект с точностью до пикселя клавишами WASD или стрелками.

13. Переход к следующей/предыдущей правке в списке c клавиатуры. Используйте клавишу ALT со стрелками ВВЕРХ/ВНИЗ. Работает с любыми списками (история, подписки, задачи модерации...) Для корректной работы необходимо, чтобы была выбрана одна из строчек списка, иначе скрипт будет только проматывать его вверх/вниз.

14. Альтернативный режим набора символов «0» и «/» вместо «`» и «~» («ё» и «Ё»). Включается сочетанием клавиш Ctrl+~ (Ctrl+Ё). Букву Ё, тильду и обратный апостроф в данном режиме тоже можно ввести, используя клавишу ALT. Функция узкоспециализированная, создана в рамках моего эксперимента по использованию игровой клавиатуры для быстрого и удобного ввода адресов. Поскольку на данной клавиатуре отсутствовали ноль и слэш, которые очень нужны при работе с адресами, пришлось изобретать.

15. Несколько хоткеев для модераторов: 
ALT + NUM 0
 — открыть консоль модерации;
ALT + СТРЕЛКА ВПРАВО  принять правку;
ALT + NUM * — отложить правку;
ALT + NUM / или ALT + M — написать сообщение автору правки;
ALT + СТРЕЛКА ВЛЕВО — перейти в историю объекта (также работает в подписках и в карточке объекта).

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

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

Если вдруг у кого-то не работают хоткеи, связанные с нажатием экранных кнопок (например, линейки по ALT+Z или подложки по ALT+A), попробуйте вместо ALT использовать клавишу WIN. Убедитесь, что масштаб страницы в браузере — 100% (нажмите Ctrl+0).

Если не работают никакие хоткеи, проверьте, не блокирует ли Ваш антивирус активность скрипта. Добавьте исполняемый файл скрипта в список доверенных.

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

Скачать:

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

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

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

16.04.2019

* Адаптация под изменившийся интерфейс Народной карты

08.12.2018

* Адаптация под изменившийся интерфейс Народной карты

26.07.2018

* Адаптация под изменившийся интерфейс Народной карты

* Мелкие улучшения-исправления

13.02.2018:

* Добавлен альтернативный режим набора символов «0» и «/»

* Уменьшена задержка при рисовании узлов дуг и окружностей

* Указатель мыши теперь возвращается в исходное положение после применения сочетаний клавиш ALT со стрелками и других хоткеев для модераторов

* Ещё некоторые небольшие изменения

12.09.2017:

* Добавлено сочетание клавиш Alt+Q для скрытия/показа всех слоёв

* Исправлено несколько незначительных багов

08.07.2017:

* Добавлена возможность точного позиционирования объектов при помощи клавиатуры

* Добавлена возможность переключаться на следующую/предыдущую правку в списке при помощи клавиатуры

* Добавлены хоткеи для модераторов: открыть консоль модерации, принять/отложить правку, перейти в историю объекта, написать письмо автору

* Улучшена работа функции скругления углов с клавишей ALT

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


Еще пару дней назад все было ок.
Нажимаю хоткеи - ничего не происходит. Состояние твика в трее — зелененькая буковка "Н", т.е. скрипт не спит, кнопки не в саспенде
Дмитрий Митин,
это из-за того, что с последним обновлением изменился заголовок окна Народной карты. Теперь скрипт её не идентифицирует. Скоро выложу исправленную версию.
Как запускать, где инструкция?
Сибиряк,
Жэсть на 10ке блокировка была)))
Αλέξις ο Μέγας
1 апреля 2017, 06:27
Новая функция автоматического прилипания одного контура к другому на определённом участке линии:
1. Выберите начальную точку прилипаемого контура
2. Выберите конечную точку прилипаемого контура
3. Контур одного объекта прилипнут к контуру другого. Профит.
Αλέξις ο Μέγας
1 апреля 2017, 06:28
Αλέξις ο Μέγας,
а если оба объекта уже созданы, то:
1. Выберите начальную точку прилипаемого контура
2. Выберите конечную точку прилипаемого контура
3. Выберите начальную точку редактируемого контура
4. Выберите конечную точку редактируемого контура
5. Профит
Залей исходники на GitHub, чтобы могли делать пулл-реквесты для скрипта
XjCyan1de,
я пока не знаком с этим ресурсом. Но, видно, штука интересная. Нужно время, чтобы ознакомиться.
☭Okclick,
Отпишись мне в телеграме: @xjcyan1de , научу как пользоваться :D
Александр
12 апреля 2017, 15:50
Подскажите, исчезли popup alert на всех сайтах, после установки NMaps Tweaks (другого ничего не ставил).
Симптомы: сами alert появляются, блокируют доступ ко всем функциям браузера, но визуально не видны, закрыть можно или по Esc или по Enter/пробел. 
Браузер chrome, Кэш чистил, в режиме инкогнито все так же
Александр,
Ни разу не сталкивался с подобной проблемой.

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

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

javascript:(function()
{
window.nkHack={};
window.nkHack.rf={};
window.nkHack.rf.dsp=
{
hide:function() { window.document.querySelector('body div.nk-sidebar-view').style.display='none'; },
show:function() { window.document.querySelector('body div.nk-sidebar-view').style.display='block'; },
bool:true
};

var btn = window.document.createElement('button');
btn.style.position='fixed';
btn.style.zIndex='99999';
btn.style.top='46px';
btn.style.right='15px';
btn.innerHTML='Скрыть';
window.nkHack.rf.dsp.func=function()
{
if(window.nkHack.rf.dsp.bool)
{
window.nkHack.rf.dsp.hide();
btn.innerHTML='Показать';
window.nkHack.rf.dsp.bool=false;
}
else
{
window.nkHack.rf.dsp.show();
btn.innerHTML='Скрыть';
window.nkHack.rf.dsp.bool=true;
};
}; btn.onclick=window.nkHack.rf.dsp.func; window.document.body.appendChild(btn);
}())
Обновлено 26 июля 2018, 16:23
☭Okclick,
Спасибо, все так прекрасно лучше чем было.
Сергей Малыгин
16 февраля 2019, 14:18
Спасибо. Помогает даже на маленьких размерах, где стандартным функционалом круг рисуется квадратом))).
Было адаптировано три года назад, а до сих пор актуально.
Приятно, что на пользу дела :)
Есть ли возможность запустить на MacOS? 
dpkdpk10,
к сожалению, нет.
Владимир aka VOV
13 мая 2019, 14:43
Круть! Спасибо!