[[TranslatedPages(revision=4,outdated=This page is missing command features.)]] [[PageOutline(3-3,Opdrachten voor afstandsbediening,inline)]] == 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 [wiki:/Nl:Help/Action/Search 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 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 [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent 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` [[BR]] (vanaf !RemoteControl Versie 1.3) || || `cookies` || O || || || `min_zoom` || O || Het minimale zoomniveau [[BR]] (vanaf !RemoteControl Versie 1.4) || || `max_zoom` || O || Het maximale zoomniveau. Voor hogere schalen wordt de afbeelding van het maximale niveau vergroot [[BR]] (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: {{{ #!js { "protocolversion": { "major": 1, "minor": 0 }, "application": "JOSM RemoteControl" } }}} Voor oudere browsers die niet [http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing 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 [http://en.wikipedia.org/wiki/JSONP JSONP] gebruikt als een oplossing voor fallback. {{{ #!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); } } }}} === Toevoegen, wijzigen of verwijderen van tags === #addtags 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 [[wiki:/Nl:Help/Preferences/RemoteControl|Afstandsbediening]][[br]] Terug naar [[wiki:/Nl:Help/Preferences|Voorkeuren]][[br]] Terug naar [[wiki:/Nl:Help|Help]]