Version 7 (modified by 12 years ago) ( diff ) | ,
---|
This page is missing explaination. Please, help to improve this wiki.
Languages:
- English
- español
- français
- Nederlands
- русский
- українська
Preferences > Remote Control
Settings for the remote control feature.
Remote Control allows JOSM to be controlled from other applications, e.g. from a web browser, by opening a listening TCP port (8111) on localhost where it accepts commands.
The following control options are available:
- Enable remote control allows to switch the remote control feature on or off.
- Load data from API
- Import data from URL
- Load imagery layers
- Change the selection
- Change the viewport
- Create new objects
- Read protocol version
- Confirm all Remote Control actions manually
List of Commands
load_and_zoom
Instructs JOSM to download a bounding box from the API, zoom to the downloaded area and optionally select one or more objects.
GET /load_and_zoom?left=...&right=...&top=...&bottom=...&select=object[,object...]
where
Parameter | Required/Optional | Meaning |
---|---|---|
left | R | minimum longitude |
right | R | maximum longitude |
bottom | R | minimum latitude |
top | R | maximum latitude |
select | O | comma-separated list of objects that should be selected. Object specifiers are combinations of the words "way", "node", or "relation", and the numerical object id. Example: select=way38473,node12399,node54646
|
addtags | O | Optional parameter to add tags. The key and value is separated by "=" and multiple tags can be separated by a Pipe "|". Try this one for example. Works also with the zoom-command. The user must review the tags and the selection before the tags are applied to the selected objects. |
Example
Start JOSM (don't forget to enable the RemoteControl feature), then click on:
JOSM should now load an area in the German Schwarzwald and have the specified node selected.
zoom
Instructs JOSM to zoom to the specified area and optionally select one or more objects.
GET /zoom?left=...&right=...&top=...&bottom=...&select=object[,object...]
Accepts the same parameters as the load_and_zoom
command and uses the same code for zoom and selection. The only difference is that no data will be loaded from the API.
Hint: This command can also be used to select objects only. Just enter a small arbitrary area to the left..bottom entries and add the object list to the select= option.
import
Instructs JOSM to download the specified OSM file and add it to the current data set.
GET /import?url=...
imagery
Instructs JOSM to add an imagery (WMS/TMS) layer.
GET /imagery?title=...&type=...&url=...
where
Parameter | Required/Optional | Meaning |
---|---|---|
title | O | The display name of the layer |
type | O | Type of the layer. Possible values are wms and tms (since RemoteControl Version 1.3) |
url | R | The Request URL, including patterns. Must be the last parameter, everything after "&url=" is interpreted as URL, even if it contains "&" characters. |
Examples
- TMS layer "osm"
http://tile.openstreetmap.org/{zoom}/{x}/{y}.png
- WMS layer "landsat"
http://irs.gis-lab.info/?layers=landsat&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}
load_object
Instructs JOSM to download objects with a given id.
GET /load_object?new_layer=true|false&objects=...
where
Parameter | Required/Optional | Meaning |
---|---|---|
objects | R | Comma separated list of object ids, e.g. "n1234,n1235,w84,r958493 "
|
new_layer | O | If true, downloads to a new layer |
Example
http://localhost:8111/load_object?new_layer=true&objects=w106159509
version
This 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.
GET /version[?jsonp=callback]
The 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.
A typical output looks like this:
{ "protocolversion": { "major": 1, "minor": 0 }, "application": "JOSM RemoteControl" }
For older browsers not implementing 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.
Following is some sample code that checks for CORS capabilities and uses JSONP as a fallback solution.
// 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); } }
Other commands
Remotecontrol 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.
Reverter plugin since 27091 makes use of this feature.
See also
Old JOSM Remote-Plugin page at OSM wiki
Back to Preferences
Back to Main Help
Attachments (2)
- remote_control.png (72.0 KB ) - added by 6 years ago.
-
PreferencesRemoteControl.png
(181.3 KB
) - added by 3 years ago.
new screenshot
Download all attachments as: .zip