wiki:Uk:Help/Preferences/RemoteControl

Інші мови:

Налаштування > Дистанційне керування

source:trunk/images/preferences/remotecontrol.png Налаштування функцій дистанційного керування.

Дистанційне керування дозволяє JOSM’му бути керованим з інших застосунків, наприклад з оглядачів, відкриваючи на прослуховування порт TCP (8111) на локальному комп’ютері для отримання команд.
Примітка З причин підтримання безпеки ця функція відключена у типових налаштуваннях, її треба ввімкнути вручну.

Доступні наступні функції керування:

screenshot

  • Включити дистанційне керування дозволяє вмикати або вимикати цю функцію.
    • Завантаження даних через API
    • Імпорт даних за посиланням
    • Завантаження шарів із фоном
    • Зміна виділення
    • Зміна положення поточного вікна мапи
    • Створення нових об’єктів
    • Отримання версії протоколу
  • Підтверджувати всі дії Дистанційного керування вручну

Перелік команд

load_and_zoom

Команда для завантаження в JOSM даних габаритного прямокутника через API, та масштабування завантаженої ділянки та, необов’язково, виділення одного чи кількох об’єктів.

GET /load_and_zoom?left=…&right=…&top=…&bottom=…&select=object[,object…]

де

Параметр Обов’язковий/необов’язковий Опис
left О мінімальна довгота
right О максимальна довгота
bottom О мінімальна широта
top О максимальна широта
select Н розділений комами перелік об’єктів, які потрібно виділити. Об’єкти вказуються комбінацією слів "way", "node" або "relation" та числовим id. Example: select=way38473,node12399,node54646
addtags Н необов’язковий параметр для додавання теґів. Ключі та значення відокремлюються знаком "=", а кілька теґів можуть бути розділені "|". Спробуйте цей приклад. Працює також із командою zoom. Користувачу потрібно спочатку переглянути теґи та виділення перед тим, як теґи будуть застосовані до виділених об’єктів.
new_layer Н Якщо «істина», завантажити до нового шару

Приклад

Запустіть 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=…

imagery

Надає JOSM інструкції для завантаження шару (WMS/TMS) з фоном.

GET /imagery?title=…&type=…&url=…

де

Параметр Обов’язковий/необов’язковий Опис
title Н Назва шару
type Н Тип шару. Можливі значення wms та tms
(починаючи з версії 1.3)
url О URL-запит, включаючи шаблони. Повинен бути останнім параметром, все що знаходиться після "&url=" інтерпретується як URL, навіть якщо є символи "&".

Приклади

  • 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 Н Якщо «істина», завантажити до нового шару

Приклад

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

add_node

Надає JOSM інструкції для створення нової точки за вказаними координатами.

Примітка: Ця дія потребує дозволу на Створення нових об’єктів, який є відключеним у типових налаштуваннях.

GET /add_node?lon=…&lat=…

де

Параметр Обов’язковий/необов’язковий Опис
lon О Довгота точки
lat О Широта точки

Приклад

http://localhost:8111/add_node?lon=13.3&lat=53.2

add_way

Надає JOSM інструкції для створення нової лінії з новими точками по заданих координатах.

Примітка: Ця дія потребує дозволу на Створення нових об’єктів, який є відключеним у типових налаштуваннях.

GET /add_way?way=lat1,lon1;lat2,lon2;…

де

Параметр Обов’язковий/необов’язковий Опис
way О Пари довгота та широта, розділені точкою з комою.

Приклад

http://localhost:8111/add_way?way=53.2,13.3;53.3,13.3;53.3,13.2

version

Ця команда звітує про версію протоколу інтерфейсу RemoteControl. Розробники можуть використовувати цей запит для перевірки чи підтримує запущена версія JOSM потрібний функціонал.

GET /version[?jsonp=callback]

Команда повертає об’єкт json, який містить ідентифікатор застосунка, який завжди буде "JOSM RemoteControl", основний і додатковий номер версії. Сумісні зміни протоколу збільшують додатковий номер. Несумісні — основний номер. Отже клієнтський застосунок із протоколом версії 1.0 буде працювати із JOSM, що має версію протоколу 1.1. Але немає ніякої гарантії, що він буде працювати із версією протоколу 2.0. Отже клієнт повинен перевіряти основний номер версії.

Типовий вивід виглядатиме приблизно так:

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

Для старих оглядачів не реалізовано команду Cross-Origin Resource Sharing (CORS), що надає можливість зворотнього виклику jsonp. Завантажте URL до сценарію додайте відповідні теґи та назву зворотнього виклику, який отримуватиме дані JSON.

Тут наводиться зразковий код, який перевіряє можливості CORS capabilities та використовує JSONP як розв’язання задач зі зворотнім викликом.

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

Інші команди

Функції Відділеного керування дозволяють іншим втулкам додавати додаткові команди. Їх потрібно реєструвати у класі RequestHandler та визначати команди керуючи цим класом. Синтаксис команд повинен визначатись у цих втулках.

Втулок Reverter користується цією можливістю починаючи з версії 27091.

Дивись також

Стара сторінка втулка Дистанційного керування JOSM Remote-Plugin в OSM-Вікі


Назад до меню Налаштування
Назад до основної сторінки Довідки

Last modified 5 years ago Last modified on 2012-01-28T20:02:29+01:00