wiki:Nl:Help/RemoteControlCommands

Version 5 (modified by stoecker, 10 days ago) (diff)

Update

This page is missing command features.

Andere talen:

Opdrachten voor afstandsbediening

  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. Toevoegen, wijzigen of verwijderen van tags
  12. Andere opdrachten

Lijst met opdrachten

Een volledige lijst met opdrachten en verplichte/optionele parameters wordt weergegeven op http://127.0.0.1:8111/ (als JOSM wordt uitgevoerd).

load_and_zoom

Geeft JOSM instructies om een begrenzingsvak te downloaden vanaf de API, zoom naar het gedownloade gebied en selecteer optioneel één of meer objecten.

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

where

Parameter Vereist/Optioneel Betekenis
bottom R Minimum latitude
top R Maximum latitude
left R Minimum longitude
right R Maximum longitude
new_layer O Indien true, downloadt naar een nieuwe laag
addtags O Optionele parameter om tags toe te voegen. De sleutel de waarde worden gescheiden door "=" en meerdere tags kunnen worden gescheiden door een pipe "|". Zie [details #addtags].
select O Kommagescheiden lijst van objecten die zouden moeten worden geselecteerd. Specificaties voor objecten zijn combinaties of de woorden "way", "node", of "relation", en de numerieke ID van het object. Voorbeeld: select=way38473,node12399,node54646
zoom_mode O download | selection, standaard selectie
changeset_comment O Opmerking van de wijzigingenset
changeset_source O Bron van de wijzigingenset
search O Zoeken naar objecten in de huidige gegevenslaag. Zie Zoeken

Voorbeeld

Start JOSM (vergeet niet de mogelijkheid Afstandsbediening in te schakelen), en klik dan op:

http://127.0.0.1:8111/load_and_zoom?left=8.19&right=8.20&top=48.605&bottom=48.590&select=node413602999

JOSM zal nu een gebied in het Duitse Schwarzwald downloaden en de gespecificeerde knoop hebben geselecteerd.

zoom

Geeft JOSM instructies te zoomen naar het gespecificeerde gebied en optioneel één of meer objecten selecteren.

GET /zoom?left=...&right=...&top=...&bottom=...&select=object[,object...]

Accepteert dezelfde parameters als de opdracht load_and_zoom en gebruikt dezelfde code voor zoomen en selecteren. Het enige verschil is dat er geen gegevens zullen worden geladen vanaf de API.

Hint: Deze opdracht kan ook worden gebruikt om alleen objecten te selecteren. Voer gewoon een klein uniek gebied in bij de items left..bottom en voeg de lijst met objecten toe aan de optie select=.

import

Geeft JOSM instructies om het gespecificeerde bestand van OSM te downloaden en het toe te voegen aan de huidige set met gegevens.

GET /import?url=...

waar

Parameter Vereist/Optioneel Betekenis
url R De gewenste URL, inclusief patronen. Moet de laatste parameter zijn, alles na "&url=" wordt geïnterpreteerd als URL, zelfs als het tekens "&" bevat.
new_layer O Indien true, downloadt naar een nieuwe laag

load_data

(vanaf versie 1.6) Geeft JOSM instructies om gegevens van OSM te laden, direct gecodeerd in de URL, in plaats van afkomstig uit een extern bestand. Dit is alleen geschikt voor kleinere gegevens (sommige browsers beperken de maximale lengte van de URL), maar is sneller (omdat er geen downloaden wordt vereist), en in veel gevallen waarin dynamisch gegenereerde gegevens nodig zijn, is het eenvoudiger te genereren.

GET /load_data?new_layer=(true/false)&layer_name=...&mime_type=...&data=...

waar

Parameter Vereist/Optioneel Betekenis
data R De te laden gegevens in XML, dit zou een URL moeten zijn die zo is gecodeerd dat het ook de speciale tekens &, = en ? codeert naar resp. %26, %3D en %3F. De methode van JS encodeUriComponent() verschaft deze functionaliteit van huis uit.
new_layer O Kies er voor de gegevens in ene nieuwe laag te laden
mime_type O Type Mime van de gegevens, standaard is dit "application/x-osm+xml", wat momenteel het enige ondersteunde type mime is, maar in de toekomst zouden ook andere typen mime kunnen worden ondersteund
layer_name O Alleen geldig indien de gegevens in een nieuwe laag worden geladen; Geeft JOSM een hint over hoe de laag te noemen

open_file

Opent een lokaal bestand in JOSM.

GET /open_file?filename=...

waar

Parameter Vereist/Optioneel Betekenis
filename R Het in JOSM te openen lokale bestand (Bijv: /tmp/test.osm)

imagery

Geeft JOSM instructies om een afbeeldingslaag (WMS/TMS) toe te voegen.

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

waar

Parameter Vereist/Optioneel Betekenis
url R De gewenste URL, inclusief patronen. Moet de laatste parameter zijn, alles na "&url=" wordt geïnterpreteerd als URL, zelfs als het tekens "&" bevat.
title O De weer te geven naam van de laag
type O Type van de laag. Mogelijke waarden zijn wms, tms en bing
(vanaf RemoteControl Versie 1.3)
cookies O
min_zoom O Het minimale zoomniveau
(vanaf RemoteControl Versie 1.4)
max_zoom O Het maximale zoomniveau. Voor hogere schalen wordt de afbeelding van het maximale niveau vergroot
(vanaf RemoteControl Versie 1.4)

vereiste parameters: url optionele parameters: title, type, cookies, min_zoom, max_zoom

Voorbeelden

  • TMS-laag "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-laag "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

Geeft JOSM instructies om objecten te downloaden met opgegeven ID.

GET /load_object?new_layer=true|false&objects=...

waar

Parameter Vereist/Optioneel Betekenis
objects R Kommagescheiden lijst van ID's van objecten, bijv. "n1234,n1235,w84,r958493"
new_layer O Indien true, downloadt naar een nieuwe laag
addtags O Optionele parameter om tags toe te voegen. De sleutel en de waarde worden gescheiden door "=" en meerdere tags kunnen worden gescheiden door een pipe "|". Zie [details #addtags].
relation_members O Indien true, downloadt het objectleden van de relaties ook.
referrers O Indien true downloadt het ook de verwijzingen naar de objecten. D.i. ouder-relaties, en voor knopen, aanvullend, ouder-wegen. (vanaf r6782)

Voorbeeld

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

add_node

Geeft JOSM instructies om een nieuwe knoop te maken op de opgegeven coördinaten.

Opmerking: Deze actie vereist het recht Nieuwe objecten maken die standaard is uitgeschakeld.

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

waar

Parameter Vereist/Optioneel Betekenis
lon R De longitude van de knoop
lat R De latitude van de knoop
addtags vanaf v1.5 O Optionele parameter om tags toe te voegen. De sleutel en de waarde worden gescheiden door "=" en meerdere tags kunnen worden gescheiden door een pipe "|". Zie [details #addtags].

Voorbeeld

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

add_way

Geeft JOSM instructies om een nieuwe weg met nieuwe knopen te maken op de opgegeven coördinaten.

Opmerking: Deze actie vereist het recht Nieuwe objecten maken die standaard is uitgeschakeld.

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

waar

Parameter Vereist/Optioneel Betekenis
way R Paren van coördinaten van latitude en longitude, gescheiden door puntkomma.
addtags vanaf v1.5 O Optionele parameter om tags toe te voegen. De sleutel en de waarde worden gescheiden door "=" en meerdere tags kunnen worden gescheiden door een pipe "|". Zie [details #addtags].

Voorbeeld

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

version

Deze opdracht geeft de huidige versie van het protocol voor de geïnstalleerde interface van RemoteControl weer. Ontwikkelaars kunnen het gebruiken om een uitgevoerde instantie van JOSM te bevragen en ook om te bepalen of de verzochte functionaliteit beschikbaar is in de cliënt.

GET /version[?jsonp=callback]

waar

Parameter Vereist/Optioneel Betekenis
jsonp O Jsonp callback voor oudere browsers die ​Cross-Origin Resource Sharing (CORS) niet hebben geïmplementeerd

De opdracht geeft een JSON-object terug dat een identificatie voor de toepassing bevat die altijd "JOSM RemoteControl" is, een hoofdnummer en een kleiner nummer. Compatibele protocolwijzigingen resulteren in een verhoging van het kleine nummer. Incompatibele wijzigingen verhogen het hoofdnummer. Dus een toepassing van een cliënt die weet heeft van protocol versie 1.0 kan nog steeds praten met JOSM die versie 1.1 heeft. Maar het is niet gegarandeerd om te werken met 2.0. De cliënt zou dus het hoofdnummer moeten controleren.

Een gewone uitvoer zou er zo uit moeten zien:

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

Voor oudere browsers die niet Cross-Origin Resource Sharing (CORS) hebben geïmplementeerd verschaft de opdracht de mogelijkheid voor jsonp callback. Laadt de URL in een tag script en verschaf de naam van een callback die de gegevens van JSON moet ontvangen.

Het volgende is enige voorbeeldcode die controleert op de mogelijkheden voor CORS en JSONP gebruikt als een oplossing voor fallback.

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

Toevoegen, wijzigen of verwijderen van tags

Probeer dit voorbeeld: 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. (Werkt ook met de opdracht zoom)

De gebruiker moet de tags en de selectie nakijken vóórdat de tags worden toegepast op de geselecteerde objecten. Als de tag al op enkele objecten bestaat, kan het zijn dat die wordt vervangen.

Vanaf protocol versie 1.5

  • opdrachten add_node en add_way ondersteunen de parameter addtags
  • Het is mogelijk om het teken = te gebruiken in de waarde en alle leidende/volgende spaties worden getrimd.

http://localhost:8111/add_node?lon=13.3&lat=53.2&addtags=natural=tree%7Cname=%20%20%20==Great%20Oak== (maakt een knoop met natural=tree en name="==Great Oak==")

  • Indien een lege waarde wordt gevonden, dient de tag te worden verwijderd van objecten (bevestiging via keuzevak is nodig)

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.

Andere opdrachten

Afstandsbediening staat andere plug-ins toe aanvullende opdrachten toe te voegen. Die ander registreert een klasse RequestHandler en specificeert een opdracht die moet worden afgehandeld door deze klasse. De syntaxis van de opdracht dient te worden gedefinieerd door de andere plug-in.

Plug-in Reverter vanaf versie 27091 maakt gebruik van deze mogelijkheid.


Terug naar Afstandsbediening
Terug naar Voorkeuren
Terug naar Help