Changes between Version 7 and Version 8 of Nl:Help/Preferences/RemoteControl


Ignore:
Timestamp:
2012-01-31T21:44:20+01:00 (14 years ago)
Author:
DiGro
Comment:

adjusted to revision 9

Legend:

Unmodified
Added
Removed
Modified
  • Nl:Help/Preferences/RemoteControl

    v7 v8  
    1 [[TranslatedPages(revision=4,outdated=This page is missing explaination. Please\, help to improve this wiki.)]]
     1[[TranslatedPages(revision=9]]
    22   
    33= Voorkeuren > Afstandsbediening =
    44
    5 [[Image(source:trunk/images/preferences/remotecontrol.png)]] '''Instellingen voor de mogelijkheid van afstandsbediening.'''
    6 
    7 Afstandsbediening maakt het mogelijk dat JOSM wordt beheerd vanuit andere toepassingen, bijv. vanuit een webbrowser, door een luisterende TCP-poort (8111) te openen op localhost waar het opdrachten accepteert.
     5[[Image(source:trunk/images/preferences/remotecontrol.png)]] **Instellingen voor de mogelijkheid van afstandsbediening.**
     6
     7Afstandsbediening maakt het mogelijk dat JOSM wordt beheerd vanuit andere toepassingen, bijv. vanuit een webbrowser, door een luisterende TCP-poort (8111) te openen op localhost waar het opdrachten accepteert.[[BR]]
     8**Opmerking**: Vanwege veiligheidsredenen is deze mogelijkheid in de standaard instellingen uitgeschakeld en moet handmatig worden ingeschakeld.
    89
    910
     
    1314
    1415
    15 * '''Aftandsbediening inschakelen''' maakt het mogelijk om de mogelijkheid voor de afstandsbediening in- of uit te schakelen.
    16  * '''Gegevens laden vanuit de API'''
    17  * '''Gegevens importeren vanaf een URL'''
    18  * '''Lagen met luchtfoto's laden'''
    19  * '''De selectie wijzigen'''
    20  * '''De viewport wijzigen'''
    21  * '''Nieuwe objecten maken'''
    22  * '''Versie van protocol lezen'''
    23 
    24 * '''Bevestig alle acties van de Afstandsbediening handmatig'''
     16* **Afstandsbediening inschakelen** maakt het mogelijk om de mogelijkheid voor de afstandsbediening in- of uit te schakelen.
     17 * **Gegevens laden vanuit de API**
     18 * **Gegevens importeren vanaf een URL**
     19 * **Lagen met luchtfoto's laden**
     20 * **De selectie wijzigen**
     21 * **De viewport wijzigen**
     22 * **Nieuwe objecten maken**
     23 * **Versie van protocol lezen**
     24
     25* **Bevestig alle acties van de Afstandsbediening handmatig**
     26
     27== Lijst met opdrachten ==
     28=== {{{load_and_zoom}}} ===
     29Instrueert JOSM om een begrensd gebied van de API te downloaden, in te zoomen op het gedownloade gebied en optioneel één of meer objecten te selecteren.
     30{{{
     31GET /load_and_zoom?left=...&right=...&top=...&bottom=...&select=object[,object...]
     32}}}
     33where
     34||= **Parameter** =||= **Vereist/Optioneel** =||= **Betekenis** =||
     35|| `left` || V || minimale longitude ||
     36|| `right` || V || maximale longitude ||
     37|| `bottom` || V || minimale latitude ||
     38|| `top` || V || maximale latitude ||
     39|| `select` || O || komma-gescheiden lijst met objecten die zouden moeten worden geselecteerd. Aanduidingen voor objecten zijn combinaties van de woorden "way", "node", of "relation", en het numerieke object-ID. Voorbeeld: {{{select=way38473,node12399,node54646}}} ||
     40|| `addtags` || O || Optionele parameter om tags toe te voegen. De sleutel en waarde worden gescheiden door "=" en meerdere tags kunnne worden gescheiden door een Pipe "|". probeer deze als [http://localhost:8111/load_and_zoom?addtags=wikipedia:de=Wei%C3%9Fe_Gasse|maxspeed=5&select=way23071688,way23076176,way23076177,&left=13.739727546842&right=13.740890970188&top=51.049987191025&bottom=51.048466954325 voorbeeld]. Werkt ook met de zoom-opdracht. De gebruiker moet de tags en de selectie nakijken vóórdat de tags worden toegepast op de geselecteerde objecten. ||
     41|| `new_layer` || O || Indien true, downloaden naar een nieuwe laag ||
     42 
     43==== Voorbeeld ====
     44 
     45Start JOSM (vergeet niet om de mogelijkheid !RemoteControl in te schakelen), klik dan op:
     46 
     47[http://127.0.0.1:8111/load_and_zoom?left=8.19&right=8.20&top=48.605&bottom=48.590&select=node413602999]
     48 
     49JOSM zou nu een gebied in het Duitse Zwarte woud moeten laden en de gespecificeerde knoop hebben geselecteerd. 
     50 
     51=== {{{zoom}}} ===
     52Instrueert JOSM om te zoomen naar het gespecificeerde gebied en optioneel één of meer objecten te selecteren.
     53{{{
     54GET /zoom?left=...&right=...&top=...&bottom=...&select=object[,object...]
     55}}}
     56Accepteert dezelfde parameters als de opdracht {{{load_and_zoom}}} en gebruikt dezelfde code voor zoomen en selectie. Het enige verschil is dat er geen gegevens worden geladen vanuit de API.
     57
     58**Hint**: Deze opdracht kan ook worden gebruikt om alleen objecten te selecteren. Voer eenvoudigweg een klein begrensd gebied in bij de items left..bottom en voeg de objectlijst toe aan de optie select=.
     59
     60=== {{{import}}} ===
     61Instrueert JOSM om het gespecificeerde OSM-bestand te downloaden en het toe te voegen aan de huidige gegevensset.
     62{{{
     63GET /import?url=...
     64}}}
     65 
     66=== {{{imagery}}} ===
     67Instrueert JOSM om een laag voor foto's (WMS/TMS) toe te voegen.
     68{{{
     69GET /imagery?title=...&type=...&url=...
     70}}}
     71where
     72||= **Parameter** =||= **Vereist/Optioneel** =||= **Betekenis** =||
     73|| `title` || O || De weer te geven naam van de laag ||
     74|| `type` || O || Type laag. Mogelijke waarden zijn `wms` en `tms` [[BR]] (sinds !RemoteControl Versie 1.3) ||
     75|| `url` || V || De Request URL, inclusief patronen. Moet de laatste parameter zijn, alles na "&url=" wordt geïnterpreteerd als URL, zelfs als het tekens "&" bevat.  ||
     76
     77==== Voorbeelden ====
     78* TMS layer "osm" {{{http://tile.openstreetmap.org/{zoom}/{x}/{y}.png}}}
     79 
     80[http://localhost:8111/imagery?title=osm&type=tms&url=http://tile.openstreetmap.org/%7Bzoom%7D/%7Bx%7D/%7By%7D.png]
     81 
     82* WMS layer "landsat" {{{http://irs.gis-lab.info/?layers=landsat&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox} }}}
     83[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]
     84 
     85=== {{{load_object}}} ===
     86         
     87Instrueert JOSM om objecten met een opgegeven ID te downloaden.
     88{{{
     89GET /load_object?new_layer=true|false&objects=...
     90}}}
     91where
     92||= **Parameter** =||= **Vereist/Optioneel** =||= **Betekenis** =||
     93|| `objects` || V || Komma-gescheiden lijst met ID's van objecten, bijv. "{{{n1234,n1235,w84,r958493}}}" ||
     94|| `new_layer` || O || Indien true, downloaden naar een nieuwe laag ||
     95 
     96==== Voorbeeld====
     97 
     98[http://localhost:8111/load_object?new_layer=true&objects=w106159509]
     99 
     100=== {{{add_node}}} ===
     101 
     102Instrueert JOSM om een nieuwe knoop te maken op de opgegeven coördinaten.
     103 
     104**Opmerking**: Deze actie vereist het recht ''Create new objects'' dat standaard is uitgeschakeld.
     105 
     106{{{
     107GET /add_node?lon=...&lat=...
     108}}}
     109where
     110||= **Parameter** =||= **Vereist/Optioneel** =||= **Betekenis** =||
     111|| `lon` || V || De longitude van de knoop ||
     112|| `lat` || V || De latitude van de knoop ||
     113 
     114==== Voorbeeld ====
     115http://localhost:8111/add_node?lon=13.3&lat=53.2
     116 === {{{add_way}}} ===
     117 
     118Instrueert JOSM om een nieuwe weg te maken met nieuwe wegknopen op de opgegeven coördinaten.
     119
     120**Opmerking**: Deze actie vereist het recht ''Create new objects'' dat standaard is uitgeschakeld.
     121
     122{{{
     123GET /add_way?way=lat1,lon1;lat2,lon2;...
     124}}}
     125where
     126||= **Parameter** =||= **Vereist/Optioneel** =||= **Betekenis** =||
     127|| `way` || V || Paren van coördinaten van latitude en longitude, gescheiden door een puntkomma. ||
     128
     129==== Voorbeeld ====
     130
     131http://localhost:8111/add_way?way=53.2,13.3;53.3,13.3;53.3,13.2
     132
     133=== {{{version}}} ===
     134Deze opdracht geeft de huidige versie van het protocol van de geïnstalleerde interface !RemoteControl terug. Ontwikkelaars kunnen het gebruiken om een uitgevoerde versie van JOSM te bevragen en ook om te bepalen of de gevraagde functionaliteit beschikbaar is in de cliënt.
     135
     136{{{
     137GET /version[?jsonp=callback]
     138}}}
     139
     140De opdracht geeft een json-object terug dat een identificatie voor de toepassing bevat die altijd "JOSM !RemoteControl" is, een groot getal en een klein getal. Compatibele wijzigingen in het protocol resulteren in een verhoging van het kleine getal. Niet compatibele wijzigingen verhogen het grote getal. Dus een cliënt-toepassing die weet van protocol versie 1.0 kan nog steeds praten met JOSM die 1.1 heeft. Maar er is geen garantie dat het werkt met 2.0. Dus zou de cliënt het grote nummer moeten verifiëren.
     141
     142Een normale uitvoer zou er uitzien zoals dit:
     143
     144{{{
     145#!js
     146
     147{
     148   "protocolversion": {
     149   "major": 1, 
     150   "minor": 0
     151 }, 
     152   "application": "JOSM RemoteControl"
     153}
     154}}}
     155Voor oudere browsers die niet implementeren [http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing Cross-Origin Resource Sharing (CORS)] geeft de opdracht de mogelijkheid voor jsonp callback. Laad de URL in een scripttag en geef de naam van een callback op die de gegevens van JSON zal ontvangen.
     156 
     157Het volgende is voorbeeldcode die controleert op mogelijkheden voor CORS en [http://en.wikipedia.org/wiki/JSONP JSONP] gebruikt als een oplossing voor fallback. 
     158{{{
     159#!js
     160// in aanvulling op de CC-BY-SA van de wiki staat het u vrij om de volgende bron voor elk doel te gebruiken, zonder restricties (PD)
     161// credits en aanvullingen worden op prijs gesteld: http://wiki.openstreetmap.org/wiki/User:Stephankn
     162 
     163function checkJOSM(version){
     164alert(version.application + " uses protocol version " + version.protocolversion.major + "." + version.protocolversion.minor);
     165   // do something useful, maybe showing edit button
     166}
     167 
     168var url = "http://127.0.0.1:8111/version";
     169var useFallback = false;
     170// currently FF3.5, Safari 4 and IE8 implement CORS
     171if (XMLHttpRequest) {
     172  var request = new XMLHttpRequest();
     173   if ("withCredentials" in request) {
     174      request.open('GET', url, true);
     175      request.onreadystatechange = function(){
     176         if (request.readyState != 4) {
     177            return;
     178         }
     179         if (request.status == 200) {
     180            checkJOSM(eval('(' + request.responseText + ')'));
     181         }
     182      };
     183     request.send();
     184  }
     185  else if (XDomainRequest) {
     186     var xdr = new XDomainRequest();
     187    xdr.open("get", url);
     188      xdr.onload = function(){
     189         checkJOSM(eval('(' + xdr.responseText + ')'));
     190       };
     191      xdr.send();
     192   } else {
     193      useFallback = true;
     194   }
     195}
     196else {
     197   // no XMLHttpRequest available
     198   useFallback = true;
     199}
     200         
     201if (useFallback) {
     202   // Use legacy jsonp call
     203   var s = document.createElement('script');
     204   s.src = url + '?jsonp=checkJOSM';
     205   s.type = 'text/javascript';
     206     
     207   if (document.getElementsByTagName('head').length > 0) {
     208      document.getElementsByTagName('head')[0].appendChild(s);
     209   }
     210     
     211}
     212}}}
     213 
     214=== Andere opdrachten ===
     215Remotecontrol staat andere invoegtoepassingen toe om aanvullende opdrachten toe te voegen. De andere registreert een klasse RequestHandler en specificeert opdracht om te worden afgehandeld door die klasse. De syntaxis van de opdracht moet worden gedefinieerd door de andere invoegtoepassing.
     216 
     217Invoegtoepassing Reverter maakt sinds versie 27091 gebruik van deze mogelijkheid.
    25218
    26219== Zie ook ==