JOSM: creación de preajustes personalizados

En el capítulo anterior vimos cómo se pueden agregar menús de presets personalizados a JOSM. En este capítulo veremos cómo crear sus propios archivos de preajustes personalizados.

¡ADVERTENCIA! Este es un tema avanzado … ¡considérate advertido!

Introducción a XML

Para crear nuestro propio menú de Presets, primero necesitamos entender un lenguaje llamado XML. Si ya está familiarizado con XML, no dude en pasar a la siguiente sección.

XML, que significa “Lenguaje de marcado extensible”, es un lenguaje de computadora similar al HTML. La diferencia clave es que XML está diseñado para transportar datos, no mostrarlos. Muchas aplicaciones en Internet usan XML para transmitir datos, incluido OpenStreetMap. XML usa elementos, y cada elemento puede contener elementos secundarios dentro de él. Por ejemplo, imaginemos que queremos crear un archivo XML que contenga datos sobre el menú de un restaurante. Debemos crear un elemento raíz para contener todos los datos sobre nuestro menú. Nuestro elemento raíz tendrá una etiqueta de apertura y cierre, como esta:

  <menu>
  ... cualquier dato que queramos incluir en nuestro menú ...
  </menu>

La información está contenida dentro de un elemento, y dentro de cada elemento puede haber más elementos.

  <menu>
    <item name=“Hamburgesa”>
      <cost>400</cost>
      <description>Deliciosa hamburgesa de carne</description>
    </item>
      <item name=“Nasi Goreng”>
      <cost>200</cost>
      <description>Arroz frito de Indonesia</description>
    </item>
  </menu>

En este ejemplo, hemos colocado dos elementos <item&gt dentro de nuestro elemento <menu> para describir dos elementos diferentes que están contenidos en el menú. Cada elemento contiene dos elementos más en ellos, <cost> y <description>. Observe también cómo hemos escrito name = “Hamburguesa” dentro de la apertura de etiqueta <item>. Esto se llama un atributo y agrega información sobre el elemento.

Terminología XML

  • elemento raíz: el elemento más externo de un documento XML, que describe lo que está contenido
  • elemento: cualquier objeto XML, contenido por etiquetas de apertura y cierre, como <item> … data … </item>
  • etiqueta: algo contenido entre paréntesis, como <item>. <item> es la etiqueta de apertura de un elemento, y </item> Es la etiqueta de cierre. No confunda esto con las etiquetas OSM, que tienen un significado diferente.
  • atributo: una información contenida dentro de una etiqueta, como name=“Hamburguesa”

Usar XML para almacenar y transmitir datos es excelente porque es fácil de entender para las computadoras.

Archivos preestablecidos JOSM

Agreguemos un archivo de presets de muestra en JOSM y analicemos cómo funciona.

  • Descargue el archivo sample_presets.xml.
  • Luego cárguelo en JOSM como se describe en el capítulo anterior.
  • Crear una nueva capa y un nuevo objeto.
  • Vaya al menú Presets. Habrá un nuevo elemento llamado “Sample Building”. Haz click en eso.

sample building menu

Observe que el formulario que aparece tiene tres campos y cada uno acepta un tipo diferente de entrada. El primer campo, nombre del edificio, acepta una cadena de texto como entrada. El segundo, uso de construcción, tiene un cuadro desplegable. El campo final es una casilla de verificación, lo que significa que solo puede tener uno de dos valores, activado o desactivado.

sample presets form

Ahora veamos el archivo XML que define este formulario preestablecido.

  • Busque el archivo XML en su computadora y ábralo con un editor de texto. Si está utilizando Windows, puede usar el programa Bloc de notas. Si desea un editor más fácil de usar, puede descargar la aplicación gratuita Notepad++.
  • El archivo sample_presets.xml tiene este aspecto:

sample presets file

Por ahora, ignoremos las primeras seis líneas y la línea final, y centrémonos en todo lo que se encuentra entre etiquetas <item>

La primera línea se ve así:

  <item name="Sample Building" type="node,closedway">

Esta es la etiqueta de apertura de un elemento que se agrega al menú. Tiene dos atributos, nombre y tipo. El nombre define cómo aparecerá esto en el menú Presets. El tipo limita este preajuste a tipos específicos de objetos. En este caso, el preajuste solo se puede aplicar a puntos y formas, en otras palabras, nodos y formas cerradas. Si intenta aplicar este valor predeterminado a una línea, no funcionará.

Veamos la siguiente línea:

  <label text="Building Form" />

Al hacer clic en el menú y abrir el formulario de muestra, en la parte superior verá el texto “Formulario de creación”. Este es el texto definido en esta línea. Esto define una elemento <label>, que simplemente muestra texto en el formulario. El texto está definido por el atributo text=”some text”.

Baje unas pocas líneas y encuentre esto:

  <key key="building" value="yes" />

Esta es una de las etiquetas que se aplicarán al objeto que hemos seleccionado. Debido a que utiliza el elemento <key>, la etiqueta OSM que se proporciona aquí se aplicará automáticamente cuando se elija el valor predeterminado. Por lo tanto, este objeto obtendrá automáticamente la etiqueta building=yes.

La siguiente línea es un poco diferente, usando el <text> elemento.

  <text key="name" text="Name of Building" default="" delete_if_empty="true" />

El elemento <text> crea un campo en blanco. Cuando se crea el formulario en JOSM, el usuario podrá completar el campo vacío. Como el atributo delete_if_empty=”true” está establecido, no se agregará ninguna etiqueta si el usuario deja este campo vacío.

El cuadro desplegable del formulario se define en la siguiente línea:

  <combo key="building:use" text="Building Use" values="residential, commercial, industrial" />
  <display_values="Residential, Commercial, Industrial"/>

Un cuadro desplegable se define mediante el elemento <combo>. Al igual que con el elemento <text&gt, el atributo key define la clave de etiqueta. El valor se elige de una lista de posibles valores. El atributo display_values​​ le permite elegir diferentes nombres para mostrar en el cuadro desplegable, que puede ser más fácil de entender que los valores de etiqueta OSM.

Por último, veamos la línea que define la casilla de verificación.

  <check key="building:vacant" text="Is the building vacant?" default="off" /> 
  <delete_if_empty="true" />

El elemento <check> define la casilla de verificación. El atributo default=”off” indica que la casilla estará desmarcada por defecto. Los atributos restantes que ya has visto.

Crear su propio archivo de preajustes

La mejor manera de crear su propio archivo de preajustes es tomar uno que ya existe y manipularlo para cumplir sus objetivos. Siéntase libre de editar este archivo de muestra y experimente con él para aprender los conceptos básicos. Solo recuerde que cada vez que lo guarde, deberá reiniciar JOSM para cargar los cambios.

Antes de comenzar a crear sus propios ajustes preestablecidos, debe pensar detenidamente sobre las etiquetas que usará. Inventar nuevas etiquetas es otro tema completamente diferente. En general, debe utilizar las etiquetas OSM existentes cuando existan. La mayoría de las etiquetas existentes se enumeran en la página [Elementos del mapa en el Wiki de OSM] (http://wiki.openstreetmap.org/wiki/Map_Features).

Este archivo de muestra contiene la mayoría de los elementos que encontrará en un archivo de preajustes JOSM; no hay muchos elementos de formulario. Si desea experimentar con un archivo de presets más complejo, descargue el archivo dhaka_presets.xml aquí.

Además, se puede encontrar una explicación detallada de todos los elementos posibles [aquí] (http://josm.openstreetmap.de/wiki/TaggingPresets).

¡Buena suerte!