wiki:Es:Help/Plugin/Scripting

Altres idiomas:

Complemento Scripting

En pocas palabras

El complemento scripting le permite ejecutar secuencias de comandos dentro de JOSM.

Se usa para automatizar las tareas pequeñas para las que no se dedican complementos o no están disponibles, es decir,

  • pruebas adicionales de calidad para la invalidación de los casos de prueba que se encuentren disponibles
  • ingresar automáticamente datos en situaciones muy específicas (es decir, secuencias de números de casas)
  • importación de un formato de archivo personalizado que no es compatible con JOSM
  • exportar a un formato de archivo personalizado que no es compatible con JOSM

Usted puede utilizar cualquier lenguaje de programación que proporcione un JSR-223 compatible con el motor de scripting, en particular:

Configurando un Motor de Scripting

El complemente scripts no viene con un motor de scripts. Una instalación estándar de Java 6 ya debería incluir un motor de JavaScript (Rhino). Si desea utilizar otro lenguaje de script, tiene que configurar el respectivo motor de scripts primero:

  1. Seleccione el ítem del menú Scripting -> Configure ...
  2. Compruebe si el motor de scripting preferido ya está configurado. Si no es así,
    • Descarga el archivo jar que proporciona el motor de scripting
    • Añadir la ruta de este archivo jar en la lista de jars de motores de scripting

Ejecutando un Script

  1. Seleccione el ítem del menú Scripting -> Run...
  2. Introduzca la ruta hacia el script
  3. Pulse Run

Escribiendo un script

El complemento scripting no proporciona una consola para el desarrollo de scripts (todavía).

Utilice su editor preferido o entorno de desarrollo para escribir el script en su idioma preferido.

Aquí hay tres ejemplos que muestran el número de capas en JOSM. Si desea escribir scripts más complejos, tendrá que familiarizarse con el modelo de objetos JOSM y, en consecuencia, con la base de código de JOSM, porque no hay explícito una secuencias de comandos de la API, ni ninguna documentación fuera del código de JOSM.

Groovy

/*
 * HelloWorld.groovy - displays the number of actually open layers 
 */
import javax.swing.JOptionPane;
import org.openstreetmap.josm.Main;

def numlayers = Main.main?.map?.mapView?.numLayers
if (numlayers == null) numlayers = 0

JOptionPane.showMessageDialog(Main.parent, "[Groovy] Hello World!\nYou have ${numlayers} layer(s).")

JavaScript

/*
* HelloWorld.js  -  displays the number of currently open layers 
*/
importClass(Packages.javax.swing.JOptionPane)
importClass(Packages.org.openstreetmap.josm.Main)

function getMapView() {
	if (Main.main == null) return null
	if (Main.main.map == null) return null
	return Main.main.map.mapView
}

var numlayers = 0
var mv = getMapView()
if (mv != null){
	numlayers = mv.getNumLayers()
} 
JOptionPane.showMessageDialog(Main.parent, "[JavaScript] Hello World! You have " + numlayers + " layer(s).")

Python

#
# HelloWorld.py  - displays the number of currently open layers
# 
from javax.swing import JOptionPane
from org.openstreetmap.josm import Main

def getMapView():
        if Main.main == None:
                return None
        if Main.main.map == None:
                return None
        return Main.main.map.mapView


numlayers = 0
mv = getMapView()
if mv != None:
        numlayers = mv.getNumLayers()
        
JOptionPane.showMessageDialog(Main.parent, "[Python] Hello World! You have %s layer(s)." % numlayers)
Last modified 7 years ago Last modified on 2011-04-17T22:05:59+02:00