Scripts en las infoburbujas JMap

Las infoburbujas son la vía para obtener de manera simple y rápida información acerca de un objeto del mapa en JMap. Un clic o un toque hace aparecer la infoburbuja que muestra un contenido diferente para cada capa del proyecto. Siendo administrador JMap, usted define el contenido de la infoburbuja. Puede incluir textos, valores de atributos de los objetos, hiperenlaces, imágenes, etc. Puede acceder a la sintaxis de las infoburbujas de JMap para lograr el resultado deseado.

Pero ¿sabía usted que puede incluir pequeños programas JavaScript en las infoburbujas ?

Los scripts tienen múltiples usos en las infoburbujas tales como efectuar cálculos matemáticos, manipular cadenas de caracteres o implementar una lógica con condiciones. Abren la puerta a una gran variedad de posibilidades.

Además de las infoburbujas, los scripts también pueden ser usados en la configuración de las etiquetas.

Algunos ejemplos concretos ilustran el uso de scripts en las infoburbujas.

 

Condition if else


ev(NAME)
<script>
if (ev(TYPE) == "") {
   print("Type: N/A");
} else {
   print("Type: " + ev(TYPE));
}
</script>

Este script verifica si el atributo TYPE está vacío y en ese caso muestra N/A, de lo contrario muestra el valor del atributo. Remarque la función print() que muestra el contenido en la infoburbuja.

Se obtiene el siguiente resultado.

1

2

 

 

 

 

 

Condition if else if


<b>ev(NAME)</b>
<script>
if (ev(TYPE) == "") {
   print("Type: N/A");
}  else if (ev(TYPE) == "roof") {
print("*** Roof ***");
}  else {
   print("Type: " + ev(TYPE));
}
</script>

Este script muestra la utilización de else if para probar varias condiciones. Si el valor del atributo TYPE no está vacío y es igual a roof, entonces el script muestra el texto *** Roof ***.

Se obtiene el siguiente resultado.

3

 

 

 

 

 

Cálculo con un atributo – conversión


<b>ev(NAME)</b>
<script>
areaSqFt = ev(AREAM2) * 10.7639;
print(areaSqFt + " sq. feet");
</script>

Este script efectúa un cálculo matemático que convierte una superficie expresada en metros cuadrados en una superficie expresada en pies cuadrados.

Se obtiene el siguiente resultado. Remarque que el resultado debería ser formateado para limitar el número de decimales.

4

 

 

 

 


<b>ev(NAME)</b>
<script>
areaSqFt = ev(AREAM2) * 10.7639;
print(areaSqFt.toFixed(2) + " sq. feet");
</script>

Este script es idéntico al anterior y añade un llamado a la función JavaScript toFixed() para determinar el número de decimales.

Se obtiene el siguiente resultado.

5

 

 

 

 

 

Cálculo entre varios atributos


<b>ev(NAME)</b>
<script>
valuePerSqMtr = ev(VALUATION) / ev(AREAM2);
print("Value per sq. meter : " + valuePerSqMtr.toFixed(2) + "$");
</script>

Este script efectúa un cálculo matemático con dos atributos, la relación costo/superficie.

Se obtiene el siguiente resultado.

6

 

 

 

 

 

Manipulación de texto


<b>ev(NAME)</b>
<script>
var text = ev(NAME);
if (text.startsWith("Hotel")) {
  text = text.substring(6);
}
print(text);
</script>

En este script se verifica si el valor del atributo NAME comienza con Hotel y en ese caso se llama la función substring() para sustraer Hotel de la cadena de caracteres.

Se obtiene el siguiente resultado.

7

 

 

 

 

 

Limitaciones

Como en los ejemplos presentados, sus scripts deben limitarse a manipular variables locales y los atributos de los objetos del mapa. Por ejemplo, usted no puede :

    • Hacer referencia al DOM
    • Manipular los estilos (CSS)
    • Llamar la función alert()

 

Para obtener más detalles sobre las infoburbujas en JMap, puede consultar el manual de JMap Admin y este artículo que ofrece otros ejemplos de scripts.

 

Jean-Robert Desbiens-Haddad
CTO