wiki:Ru:Help/RemoteControlCommands

Version 7 (modified by ak099, 7 years ago) ( diff )

--

Незавершённый перевод. This page is missing command features.

Другие языки:

Команды удалённого управления

  1. load_and_zoom
  2. zoom
  3. import
  4. load_data
  5. open_file
  6. imagery
  7. load_object
  8. add_node
  9. add_way
  10. version
  11. Добавление, изменение и удаление тегов
  12. Другие команды

Список команд

Полный список команд и обязательных/необязательных параметров приведён на странице по адресу 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, скачать в новый слой
addtags Н Необязательный параметр для добавления тегов. Ключ и значение разделяются "=", несколько тегов разделяются вертикальной линией "|". См. подробности.
select Н Разделённый запятыми список объектов, которые должны быть выделены. Спецификаторы объектов — это комбинации слов "way", "node", или "relation" с числовым ID объекта. Пример: select=way38473,node12399,node54646. Начиная с r13212, особое значение currentselection позволяет JOSM оставить предыдущее выделение.
zoom_mode Н download | selection, по умолчанию — selection
changeset_comment Н Комментарий к пакету правок
changeset_source Н Источник пакета правок
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, и использует тот же код для масштабирования и выделения. Единственное отличие — что никакие данные не скачиваются из API.

Совет: эту команду можно использовать, чтобы только выделить объекты. Просто укажите небольшую произвольную область параметрами left..bottom и добавьте список объектов для параметра select=.

import

Указывает JOSM загрузить файл .OSM и добавить его содержимое к текущему набору данных.

GET /import?url=...

где

Параметр Обязательный / необязательный Значение
url О URL файла, including patterns. Должен быть последним параметром, всё после "&url=" воспринимается, как URL, даже если содержит символы "&".
new_layer Н Если true, скачивает в новый слой

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 encodeUriComponent() обеспечивает такую функциональность «из коробки».
new_layer Н Загрузить данные в новый слой
mime_type Н Mime-тип данных, по умолчанию "application/x-osm+xml", который в настоящее время является единственным поддерживаемым mime-типом, но в дальнейшем будут поддерживаться и другие
layer_name Н Имеет смысл только если данные загружаются в новый слой; даёт JOSM подсказку, какое имя дать слою

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
(с версии RemoteControl 1.3)
cookies Н
min_zoom Н Минимальный масштаб
(с версии RemoteControl 1.4)
max_zoom Н Максимальный масштаб. Для более высоких уровней просто увеличивается изображение, доступное в максимальном масштабе
(с версии 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 Н Необязательный параметр для добавления тегов. Ключ и значение разделяются "=", а несколько тегов могут быть разделены вертикальной линией "|". См. подробнее.
relation_members Н Если true, скачиваются также объекты, являющиеся участниками отношений.
referrers Н Если true, скачиваются также ссылающиеся объекты, то есть родительские отношения, а для точек дополнительно родительские линии. (с r6782)

Пример

http://localhost:8111/load_object?new_layer=true&objects=w106159509

add_node

Указывает JOSM создать новую точку с заданными координатами.

Примечание: это действие требует права Создать новые объекты, которое не включено в настройках по умолчанию.

GET /add_node?lon=...&lat=...

где

Параметр Обязательный/необязательный Значение
lon О Долгота точки
lat О Широта точки
addtags с v1.5 Н Необязательный параметр для добавления тегов. Ключ и значение разделяются "=", а несколько тегов могут быть разделены вертикальной линией "|". См. подробнее.

Пример

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 Н Необязательный параметр для добавления тегов. Ключ и значение разделяются "=", а несколько тегов могут быть разделены вертикальной линией "|". См. подробнее.

Пример

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)

The command returns a json object containing an application identifier that is always "JOSM RemoteControl", a major number and a minor number. Compatible protocol changes result in an increase of the minor number. Incompatible changes increase the major number. So a client application knowing of protocol version 1.0 can still talk to JOSM having 1.1. But it's not guaranteed to be working with 2.0. So the client should verify the major number.

Типичный вывод выглядит так:

{
   "protocolversion": {
      "major": 1, 
      "minor": 0
   }, 
   "application": "JOSM RemoteControl"
}

For older browsers not implementing Cross-Origin Resource Sharing (CORS) the command provides the possibility for jsonp callback. Load the URL in a script tag and supply the name of a callback that will receive the JSON data.

Following is some sample code that checks for CORS capabilities and uses JSONP as a fallback solution.

// 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);
   }
    
}

Добавление, изменение и удаление тегов

Попробуйте этот пример: 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 использует эту функцию.


Назад к Удалённое управление
Назад к Настройки
Назад к Основной странице справки

Note: See TracWiki for help on using the wiki.