[[TranslatedPages(revision=9,outdated=This page is missing command features. Неполный перевод.)]] [[PageOutline(3-3,Команды удалённого управления,inline)]] == Список команд == Полный список команд и обязательных/необязательных параметров приведён на странице по адресу http://127.0.0.1:8111/ (когда JOSM запущен). === {{{load_and_zoom}}} === Указывает JOSM скачать область карты из API, приблизиться к скачанной области и (необязательно) выделить один или более объектов. {{{ GET /load_and_zoom?left=...&right=...&top=...&bottom=...&select=object[,object...] }}} где ||= **Параметр** =||= **Обязательный / необязательный** =||= **Значение** =|| || `bottom` || О || Минимальная широта || || `top` || О || Максимальная широта || || `left` || О || Минимальная долгота || || `right` || О || Максимальная долгота || || `new_layer` || Н || Если '''true''', скачать в новый слой || || `layer_name` || Н || Действует только если данные загружены в новый слой. Даёт JOSM подсказку, каким должно быть имя слоя || || `layer_locked` || Н || Действует только если данные загружены в новый слой. Если '''true''', то новый слой [[Action/LockedLayer|блокируется]] || || `download_policy` || Н || Действует только если данные загружены в новый слой. Если '''never''' , то скачивание [wikitr:/Help/Action/BlockDownload блокируется] || || `upload_policy` || Н || Действует только если данные загружены в новый слой. Если '''never''' или '''false''', то отправка данных [wikitr:/Help/Action/EncourageDiscourageUpload блокируется или препятствуется]] || || `addtags` || Н || Необязательный параметр для добавления тегов. Ключ и значение разделяются "=", несколько тегов разделяются вертикальной линией "|". См. [#addtags подробности]. || || `select` || Н || Разделённый запятыми список объектов, которые должны быть выделены. Спецификаторы объектов — это комбинации слов "way", "node", или "relation" с числовым ID объекта. Пример: {{{select=way38473,node12399,node54646}}}. Начиная с r13212, особое значение **currentselection** позволяет JOSM оставить предыдущее выделение. || || `zoom_mode` || Н || '''download''' | '''selection''', по умолчанию — selection || || `changeset_comment` || Н || Комментарий к пакету правок || || `changeset_source` || Н || Источник пакета правок || || `search` || Н || Поиск объектов в текущем слое данных. См. [wikitr:/Help/Action/Search Поиск] || ==== Пример ==== Запустите JOSM (не забудьте включить функцию дистанционого управления), затем щёлкните на: [http://127.0.0.1:8111/load_and_zoom?left=8.19&right=8.20&top=48.605&bottom=48.590&select=node413602999] JOSM должен скачать область в Шварцвальде (Германия) и выделить указанную точку. === {{{zoom}}} === Даёт JOSM команду приблизиться к указанной области и (необязательно) выделить один или более объектов. {{{ GET /zoom?left=...&right=...&top=...&bottom=...&select=object[,object...] }}} Принимает те же параметры, что и команда [#load_and_zoom load_and_zoom], и использует тот же код для масштабирования и выделения. Единственное отличие — что никакие данные не скачиваются из API. **Совет**: эту команду можно использовать, чтобы только выделить объекты. Просто укажите небольшую произвольную область параметрами left..bottom и добавьте список объектов для параметра select=. === {{{import}}} === Указывает JOSM загрузить файл .OSM и добавить его содержимое к текущему набору данных. {{{ GET /import?url=... }}} где ||= **Параметр** =||= **Обязательный / необязательный** =||= **Значение** =|| || `url` || О || URL файла, including patterns. Должен быть последним параметром, всё после "&url=" воспринимается, как URL, даже если содержит символы "&". || || `new_layer` || Н || Если '''true''', скачивает в новый слой || || `layer_name` || Н || Действует только если данные загружены в новый слой. Даёт JOSM подсказку, каким должно быть имя слоя || || `layer_locked` || Н || Действует только если данные загружены в новый слой. Если '''true''', то новый слой [[Action/LockedLayer|блокируется]] || || `download_policy` || Н || Действует только если данные загружены в новый слой. Если '''never''' , то скачивание [wikitr:/Help/Action/BlockDownload блокируется] || || `upload_policy` || Н || Действует только если данные загружены в новый слой. Если '''never''' или '''false''', то отправка данных [wikitr:/Help/Action/EncourageDiscourageUpload блокируется или препятствуется]] || === {{{load_data}}} === (с версии 1.6) Указывает JOSM загрузить данные OSM, закодированные непосредственно в URL, а не происходящие из внешнего файла. Это подходит лишь для небольшого объёма данных (некоторые браузеры ограничивают максимальную длину URL), но быстрее (поскольку не требуется скачивание) и во многих случаях, когда нужны динамически генерируемые данные, проще для генерации. {{{ GET /load_data?new_layer=(true/false)&layer_name=...&mime_type=...&data=... }}} где ||= **Параметр** =||= **Обязательный / необязательный** =||= **Значение** =|| || `data` || О || XML-данные для загрузки, это должен быть URL, закодированный так, чтобы спецсимволы &, = и ? имели коды %26, %3D и %3F, соответственно. Метод JS [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent encodeUriComponent()] обеспечивает такую функциональность «из коробки». || || `new_layer` || Н || Загрузить данные в новый слой || || `mime_type` || Н || Mime-тип данных, по умолчанию "application/x-osm+xml", который в настоящее время является единственным поддерживаемым mime-типом, но в дальнейшем будут поддерживаться и другие || || `layer_name` || Н || Имеет смысл только если данные загружаются в новый слой; даёт JOSM подсказку, какое имя дать слою || || `layer_locked` || Н || Действует только если данные загружены в новый слой. Если '''true''', то новый слой [[Action/LockedLayer|блокируется]] || || `download_policy` || Н || Действует только если данные загружены в новый слой. Если '''never''' , то скачивание [wikitr:/Help/Action/BlockDownload блокируется] || || `upload_policy` || Н || Действует только если данные загружены в новый слой. Если '''never''' или '''false''', то отправка данных [wikitr:/Help/Action/EncourageDiscourageUpload блокируется или препятствуется]] || === {{{open_file }}} === Открывает локальный файл в JOSM. {{{ GET /open_file?filename=... }}} где ||= **Параметр** =||= **Обязательный/необязательный** =||= **Значение** =|| || `filename` || О || Локальный файл, открываемый в JOSM (например: /tmp/test.osm) || === {{{imagery}}} === Указывает JOSM добавить слой подложки (WMS/TMS). {{{ GET /imagery?title=...&type=...&url=... }}} где ||= **Параметр** =||= **Обязательный/необязательный** =||= **Значение** =|| || `url` || О || URL запроса, включая шаблоны подстановки. Должен быть последним параметром. Всё после "&url=" интерпретируется как URL, даже если содержит символы "&". || || `title` || Н || Отображаемое имя слоя || || `type` || Н || Тип слоя. Возможные значения: `wms`, `tms` и `bing` [[BR]] (с версии !RemoteControl 1.3) || || `cookies` || Н || || || `min_zoom` || Н || Минимальный масштаб [[BR]] (с версии !RemoteControl 1.4) || || `max_zoom` || Н || Максимальный масштаб. Для более высоких уровней просто увеличивается изображение, доступное в максимальном масштабе [[BR]] (с версии !RemoteControl 1.4) || Обязательный параметр: url Необязательные параметры: title, type, cookies, min_zoom, max_zoom ==== Примеры ==== * TMS-слой "osm" {{{http://tile.openstreetmap.org/{zoom}/{x}/{y}.png}}} [http://localhost:8111/imagery?title=osm&type=tms&url=http://tile.openstreetmap.org/%7Bzoom%7D/%7Bx%7D/%7By%7D.png] * WMS-слой "landsat" {{{http://irs.gis-lab.info/?layers=landsat&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox} }}} [http://localhost:8111/imagery?title=landsat&type=wms&url=http://irs.gis-lab.info/?layers=landsat&SRS=%7Bproj%7D&WIDTH=%7Bwidth%7D&HEIGHT=%7Bheight%7D&BBOX=%7Bbbox%7D] === {{{load_object}}} === Указывает JOSM скачать объекты с заданным ID. {{{ GET /load_object?new_layer=true|false&objects=... }}} где ||= **Параметр** =||= **Обязательный/необязательный** =||= **Значение** =|| || `objects` || О || Разделённый запятыми список ID объектов, например, "{{{n1234,n1235,w84,r958493}}}" || || `new_layer` || Н || Если '''true''', скачивает в новый слой || || `addtags` || Н || Необязательный параметр для добавления тегов. Ключ и значение разделяются "=", а несколько тегов могут быть разделены вертикальной линией "|". См. [#addtags подробнее]. || || `relation_members` || Н || Если '''true''', скачиваются также объекты, являющиеся участниками отношений. || || `referrers` || Н || Если '''true''', скачиваются также ссылающиеся объекты, то есть родительские отношения, а для точек дополнительно родительские линии. (с r6782) || || `layer_name` || Н || Имеет смысл только если данные загружаются в новый слой; даёт JOSM подсказку, какое имя дать слою || || `layer_locked` || Н || Действует только если данные загружены в новый слой. Если '''true''', то новый слой [[Action/LockedLayer|блокируется]] || || `download_policy` || Н || Действует только если данные загружены в новый слой. Если '''never''' , то скачивание [wikitr:/Help/Action/BlockDownload блокируется] || || `upload_policy` || Н || Действует только если данные загружены в новый слой. Если '''never''' или '''false''', то отправка данных [wikitr:/Help/Action/EncourageDiscourageUpload блокируется или препятствуется]] || ==== Пример ==== [http://localhost:8111/load_object?new_layer=true&objects=w106159509] === {{{add_node}}} === Указывает JOSM создать новую точку с заданными координатами. **Примечание**: это действие требует права ''Создать новые объекты'', которое не включено в настройках по умолчанию. {{{ GET /add_node?lon=...&lat=... }}} где ||= **Параметр** =||= **Обязательный/необязательный** =||= **Значение** =|| || `lon` || О || Долгота точки || || `lat` || О || Широта точки || || `addtags` с v1.5|| Н || Необязательный параметр для добавления тегов. Ключ и значение разделяются "=", а несколько тегов могут быть разделены вертикальной линией "|". См. [#addtags подробнее]. || ==== Пример ==== http://localhost:8111/add_node?lon=13.3&lat=53.2 === {{{add_way}}} === Указывает JOSM создать новую линию с точками, создаваемыми в заданных координатах. **Примечание**: это действие требует права ''Создать новые объекты'', которое не включено в настройках по умолчанию. {{{ GET /add_way?way=lat1,lon1;lat2,lon2;... }}} where ||= **Параметр** =||= **Обязательный/необязательный** =||= **Значение** =|| || `way` || О || Пары координат (широта, долгота), разделённые точками с запятой. || || `addtags` с v1.5|| Н || Необязательный параметр для добавления тегов. Ключ и значение разделяются "=", а несколько тегов могут быть разделены вертикальной линией "|". См. [#addtags подробнее]. || ==== Пример ==== http://localhost:8111/add_way?way=53.2,13.3;53.3,13.3;53.3,13.2 === {{{version}}} === Эта команда возвращает текущую версию протокола интерфейса удалённого управления. Разработчики могут использовать её для запроса, запущен ли экземпляр JOSM, а также для определения, доступна ли требуемая функциональность на клиенте. {{{ GET /version[?jsonp=callback] }}} где ||= **Параметр** =||= **Обязательный/необязательный** =||= **Значение** =|| || `jsonp` || Н|| обратный вызов Jsonp для старых браузеров, не поддерживающих ​Cross-Origin Resource Sharing (CORS) || Команда возвращает объект json, содержащий идентификатор приложения, который всегда имеет вид: "JOSM !RemoteControl", major и minor номера версии. Совместимые изменения протокола увеличивают minor номер. Несовместимые — увеличивают major номер. То есть клиентское приложение, знающее протокол версии 1.0, всё ещё может общаться с JOSM, имеющим 1.1. Но не гарантируется его работа с 2.0. Таким образом, клиент должен проверить major номер версии. Типичный вывод выглядит так: {{{ #!js { "protocolversion": { "major": 1, "minor": 0 }, "application": "JOSM RemoteControl" } }}} Для более старых браузеров, в которых не реализована технология [http://ru.wikipedia.org/wiki/Cross-origin_resource_sharing Cross-Origin Resource Sharing (CORS)], команда обеспечивает возможность jsonp-отклика. Load the URL in a script tag and supply the name of a callback that will receive the JSON data. Далее приведён образец кода, проверяющего поддержку CORS и использующего вариант отклика [http://ru.wikipedia.org/wiki/JSONP JSONP]. {{{ #!js // in addition to the CC-BY-SA of the wiki feel free to use the following source for any purpose without restrictions (PD) // credits and additions appreciated: https://wiki.openstreetmap.org/wiki/User:Stephankn function checkJOSM(version){ alert(version.application + " uses protocol version " + version.protocolversion.major + "." + version.protocolversion.minor); // do something useful, maybe showing edit button } var url = "http://127.0.0.1:8111/version"; var useFallback = false; // currently FF3.5, Safari 4 and IE8 implement CORS if (XMLHttpRequest) { var request = new XMLHttpRequest(); if ("withCredentials" in request) { request.open('GET', url, true); request.onreadystatechange = function(){ if (request.readyState != 4) { return; } if (request.status == 200) { checkJOSM(eval('(' + request.responseText + ')')); } }; request.send(); } else if (XDomainRequest) { var xdr = new XDomainRequest(); xdr.open("get", url); xdr.onload = function(){ checkJOSM(eval('(' + xdr.responseText + ')')); }; xdr.send(); } else { useFallback = true; } } else { // no XMLHttpRequest available useFallback = true; } if (useFallback) { // Use legacy jsonp call var s = document.createElement('script'); s.src = url + '?jsonp=checkJOSM'; s.type = 'text/javascript'; if (document.getElementsByTagName('head').length > 0) { document.getElementsByTagName('head')[0].appendChild(s); } } }}} === Добавление, изменение и удаление тегов === #addtags Попробуйте этот пример: [http://localhost:8111/load_and_zoom?addtags=wikipedia%3Ade=Weiße_Gasse%7Cmaxspeed=5&select=way23071688,way23076176,way23076177,&left=13.739727546842&right=13.740890970188&top=51.049987191025&bottom=51.048466954325]. (Works also with the zoom-command) Пользователь должен проверить теги и выделение перед применением тегов к выделенным объектам. Если у каких-нибудь объектов уже есть тег, он будет заменён. С версии протокола 1.5 - команды `add_node` и `add_way` поддерживают параметр `addtags` - можно использовать символ `=` в значении, и все пробелы в начале/конце будут обрезаны. [http://localhost:8111/add_node?lon=13.3&lat=53.2&addtags=natural=tree%7Cname=%20%20%20==Great%20Oak==] (создаёт точку с natural=tree и name="==Great Oak==") - Если найдено пустое значение, тег будет удалён из объектов (checkbox-confirmation is needed) [http://localhost:8111/load_and_zoom?addtags=wikipedia%3Ade=%7Cmaxspeed=&select=way23071688,way23076176,way23076177,&left=13.739727546842&right=13.740890970188&top=51.049987191025&bottom=51.048466954325]. === Другие команды === Удалённое управление позволяет различным модулям добавлять дополнительные команды. The other registers a RequestHandler class and specifies a command to be handled by this class. The command syntax has to be defined by the other plugin. Модуль reverter с версии 27091 использует эту функцию. ---- Назад к [wikitr:/Help/Preferences/RemoteControl Удалённое управление][[br]] Назад к [wikitr:/Help/Preferences Настройки][[br]] Назад к [wikitr:/Help Основной странице справки]