Changes between Initial Version and Version 1 of Nl:Help/RemoteControlCommands


Ignore:
Timestamp:
2016-12-07T16:47:32+01:00 (9 years ago)
Author:
DiGro
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Nl:Help/RemoteControlCommands

    v1 v1  
     1[[TranslatedPages(revision=1,outdated=This page is missing command features.)]]
     2
     3[[PageOutline(3-3,Opdrachten voor afstandsbediening,inline)]]
     4
     5== Lijst met opdrachten ==
     6
     7Een volledige lijst met opdrachten en verplichte/optionele parameters wordt weergegeven op http://127.0.0.1:8111/ (als JOSM wordt uitgevoerd).
     8
     9=== {{{load_and_zoom}}} ===
     10Geeft JOSM instructies om een begrenzingsvak te downloaden vanaf de API, zoom naar het gedownloade gebied en selecteer optioneel één of meer objecten.
     11{{{
     12GET /load_and_zoom?left=...&right=...&top=...&bottom=...&select=object[,object...]
     13}}}
     14where
     15||= **Parameter** =||= **Vereist/Optioneel** =||= **Betekenis** =||
     16|| `bottom` || R || Minimum latitude ||
     17|| `top` || R || Maximum latitude ||
     18|| `left` || R || Minimum longitude ||
     19|| `right` || R || Maximum longitude ||
     20|| `new_layer` || O || Indien '''true''', downloadt naar een nieuwe laag ||
     21|| `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]. ||
     22|| `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}}} ||
     23|| `zoom_mode` || O || '''download''' | '''selection''', standaard selectie ||
     24|| `changeset_comment` || O || Opmerking van de wijzigingenset ||
     25|| `changeset_source` || O || Bron van de wijzigingenset ||
     26|| `search` || O || Zoeken naar objecten in de huidige gegevenslaag. Zie [wiki:/Nl:Help/Action/Search Zoeken] ||
     27
     28==== Voorbeeld ====
     29
     30Start JOSM (vergeet niet de mogelijkheid Afstandsbediening in te schakelen), en klik dan op:
     31
     32[http://127.0.0.1:8111/load_and_zoom?left=8.19&right=8.20&top=48.605&bottom=48.590&select=node413602999]
     33
     34JOSM zal nu een gebied in het Duitse Schwarzwald downloaden en de gespecificeerde knoop hebben geselecteerd.
     35
     36=== {{{zoom}}} ===
     37Geeft JOSM instructies te zoomen naar het gespecificeerde gebied en optioneel één of meer objecten selecteren.
     38{{{
     39GET /zoom?left=...&right=...&top=...&bottom=...&select=object[,object...]
     40}}}
     41Accepteert dezelfde parameters als de opdracht [#load_and_zoom 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.
     42
     43**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=.
     44=== {{{import}}} ===
     45Geeft JOSM instructies om het gespecificeerde bestand van OSM te downloaden en het toe te voegen aan de huidige set met gegevens.
     46{{{
     47GET /import?url=...
     48}}}
     49waar
     50||= **Parameter** =||= **Vereist/Optioneel** =||= **Betekenis** =||
     51|| `url` || R ||  ||
     52|| `new_layer` || O || Indien '''true''', downloadt naar een nieuwe laag ||
     53
     54=== {{{load_data}}} ===
     55(sinds versie 1.6)
     56Geeft 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.
     57
     58{{{
     59GET /load_data?new_layer=(true/false)&layer_name=...&mime_type=...&data=...
     60}}}
     61waar
     62||= **Parameter** =||= **Vereist/Optioneel** =||= **Betekenis** =||
     63|| `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 [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent encodeUriComponent()] verschaft deze functionaliteit van huis uit. ||
     64|| `new_layer` || O || Kies er voor de gegevens in ene nieuwe laag te laden ||
     65|| `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 ||
     66|| `layer_name` || O || Alleen geldig indien de gegevens in een nieuwe laag worden geladen; Geeft JOSM een hint over hoe de laag te noemen ||
     67
     68=== {{{open_file }}} ===
     69Opent een lokaal bestand in JOSM.
     70
     71{{{
     72GET /open_file?filename=...
     73}}}
     74waar
     75||= **Parameter** =||= **Vereist/Optioneel** =||= **Betekenis** =||
     76|| `filename` || R || Het in JOSM te openen lokale bestand (Bijv: /tmp/test.osm) ||
     77
     78
     79=== {{{imagery}}} ===
     80Geeft JOSM instructies om een afbeeldingslaag (WMS/TMS) toe te voegen.
     81{{{
     82GET /imagery?title=...&type=...&url=...
     83}}}
     84waar
     85||= **Parameter** =||= **Vereist/Optioneel** =||= **Betekenis** =||
     86|| `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.  ||
     87|| `title` || O || De weer te geven naam van de laag ||
     88|| `type` || O || Type van de laag. Mogelijke waarden zijn `wms`, `tms` en `bing` [[BR]] (sinds !RemoteControl Versie 1.3) ||
     89|| `cookies` || O ||  ||
     90|| `min_zoom` || O || Het minimale zoomniveau [[BR]] (sinds !RemoteControl Versie 1.4) ||
     91|| `max_zoom` || O || Het maximale zoomniveau. Voor hogere schalen wordt de afbeelding van het maximale niveau vergroot [[BR]] (sinds !RemoteControl Versie 1.4) ||
     92
     93
     94vereiste parameters: url
     95optionele parameters: title, type, cookies, min_zoom, max_zoom
     96
     97==== Voorbeelden ====
     98* TMS-laag "osm" {{{http://tile.openstreetmap.org/{zoom}/{x}/{y}.png}}}
     99
     100[http://localhost:8111/imagery?title=osm&type=tms&url=http://tile.openstreetmap.org/%7Bzoom%7D/%7Bx%7D/%7By%7D.png]
     101
     102* WMS-laag "landsat" {{{http://irs.gis-lab.info/?layers=landsat&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox} }}}
     103[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]
     104
     105=== {{{load_object}}} ===
     106
     107Instructs JOSM to download objects with a given id.
     108{{{
     109GET /load_object?new_layer=true|false&objects=...
     110}}}
     111where
     112||= **Parameter** =||= **Required/Optional** =||= **Meaning** =||
     113|| `objects` || R || Comma separated list of object ids, e.g. "{{{n1234,n1235,w84,r958493}}}" ||
     114|| `new_layer` || O || If '''true''', downloads to a new layer ||
     115|| `addtags` || O || Optional parameter to add tags. The key and value is separated by "=" and multiple tags can be separated by a Pipe "|". See [#addtags details]. ||
     116|| `relation_members` || O || If '''true''', downloads objects members of the relations as well. ||
     117|| `referrers` || O || If '''true''', downloads referrers of the object as well. I.e. parent relations, and for nodes, additionally, parent ways. (since r6782) ||
     118
     119==== Example ====
     120
     121[http://localhost:8111/load_object?new_layer=true&objects=w106159509]
     122
     123=== {{{add_node}}} ===
     124
     125Instructs JOSM to create a new node at the given coordinates.
     126
     127**Note**: This action requires the permission ''Create new objects'' which is disabled by default.
     128
     129{{{
     130GET /add_node?lon=...&lat=...
     131}}}
     132where
     133||= **Parameter** =||= **Required/Optional** =||= **Meaning** =||
     134|| `lon` || R || The longitude of the node ||
     135|| `lat` || R || The latitude of the node ||
     136|| `addtags` since v1.5|| O || Optional parameter to add tags. The key and value is separated by "=" and multiple tags can be separated by a Pipe "|". See [#addtags details]. ||
     137
     138==== Example ====
     139http://localhost:8111/add_node?lon=13.3&lat=53.2
     140
     141=== {{{add_way}}} ===
     142
     143Instructs JOSM to create a new way with new way nodes at given coordinates.
     144
     145**Note**: This action requires the permission ''Create new objects'' which is disabled by default.
     146
     147{{{
     148GET /add_way?way=lat1,lon1;lat2,lon2;...
     149}}}
     150where
     151||= **Parameter** =||= **Required/Optional** =||= **Meaning** =||
     152|| `way` || R || Pairs of latitude, longitude coordinates separated by semicolon. ||
     153|| `addtags` since v1.5|| O || Optional parameter to add tags. The key and value is separated by "=" and multiple tags can be separated by a Pipe "|". See [#addtags details]. ||
     154
     155==== Example ====
     156
     157http://localhost:8111/add_way?way=53.2,13.3;53.3,13.3;53.3,13.2
     158
     159
     160=== {{{version}}} ===
     161This command returns the current protocol version of the installed !RemoteControl interface. Developers can use it to query for a running instance of JOSM and also determine whether the requested functionality is available in the client.
     162{{{
     163GET /version[?jsonp=callback]
     164}}}
     165where
     166||= **Parameter** =||= **Required/Optional** =||= **Meaning** =||
     167|| `jsonp` || O|| Jsonp callback for older browsers not implementing ​Cross-Origin Resource Sharing (CORS) ||
     168
     169The 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.
     170
     171A typical output looks like this:
     172{{{
     173#!js
     174{
     175   "protocolversion": {
     176      "major": 1,
     177      "minor": 0
     178   },
     179   "application": "JOSM RemoteControl"
     180}
     181}}}
     182For older browsers not implementing [http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing 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.
     183
     184Following is some sample code that checks for CORS capabilities and uses [http://en.wikipedia.org/wiki/JSONP JSONP] as a fallback solution.
     185{{{
     186#!js
     187// in addition to the CC-BY-SA of the wiki feel free to use the following source for any purpose without restrictions (PD)
     188// credits and additions appreciated: https://wiki.openstreetmap.org/wiki/User:Stephankn
     189
     190function checkJOSM(version){
     191   alert(version.application + " uses protocol version " + version.protocolversion.major + "." + version.protocolversion.minor);
     192   // do something useful, maybe showing edit button
     193}
     194
     195var url = "http://127.0.0.1:8111/version";
     196var useFallback = false;
     197// currently FF3.5, Safari 4 and IE8 implement CORS
     198if (XMLHttpRequest) {
     199   var request = new XMLHttpRequest();
     200   if ("withCredentials" in request) {
     201      request.open('GET', url, true);
     202      request.onreadystatechange = function(){
     203         if (request.readyState != 4) {
     204            return;
     205         }
     206         if (request.status == 200) {
     207            checkJOSM(eval('(' + request.responseText + ')'));
     208         }
     209      };
     210      request.send();
     211   }
     212   else if (XDomainRequest) {
     213      var xdr = new XDomainRequest();
     214      xdr.open("get", url);
     215      xdr.onload = function(){
     216         checkJOSM(eval('(' + xdr.responseText + ')'));
     217      };
     218      xdr.send();
     219   } else {
     220      useFallback = true;
     221   }
     222}
     223else {
     224   // no XMLHttpRequest available
     225   useFallback = true;
     226}
     227
     228if (useFallback) {
     229   // Use legacy jsonp call
     230   var s = document.createElement('script');
     231   s.src = url + '?jsonp=checkJOSM';
     232   s.type = 'text/javascript';
     233   
     234   if (document.getElementsByTagName('head').length > 0) {
     235      document.getElementsByTagName('head')[0].appendChild(s);
     236   }
     237   
     238}
     239}}}
     240
     241
     242=== Adding, changing or deleting tags === #addtags
     243Try this example: 
     244[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].
     245(Works also with the zoom-command)
     246
     247The user must review the tags and the selection before the tags are applied to the selected objects.
     248If the tag exists on some objects, it will be can be replaced.
     249
     250Since protocol version 1.5
     251- `add_node` and `add_way` commands support `addtags` parameter
     252- It is possible to use `=` character in value and all leading/trailing spaces are trimmed.
     253[http://localhost:8111/add_node?lon=13.3&lat=53.2&addtags=natural=tree%7Cname=%20%20%20==Great%20Oak==] (creates node with natural=tree an name="==Great Oak==")
     254- If empty value is found, tag is to be deleted from objects (checkbox-confirmation is needed)
     255[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].
     256
     257=== Other commands ===
     258Remotecontrol allows other plugins to add additional commands. 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.
     259
     260Reverter plugin since version 27091 makes use of this feature.
     261
     262----
     263
     264Back to [[Help/Preferences/RemoteControl]][[br]]
     265Back to [[Help/Preferences]][[br]]
     266Back to [[Help]]