miércoles, 16 de enero de 2013

Trabajar con tablas y filtros en ArcGIS Online

Por Federico López
Esri Servicios Online

 Como hemos indicado en un post anterior, a finales de 2012 ArcGIS Online ha experimentado una de sus más importantes actualizaciones.

 Nuevas opciones para trabajar con web maps, publicación de servicios alojados, mejoras en el intercambio de información o en la configuración de nuestras organizaciones, son algunas de las novedades incluidas.

 Probablemente ya habréis descubierto muchas de ellas, sin embargo iremos viendo a través de distintos ejemplos prácticos como aplicar estas mejoras.

 Hoy concretamente, vamos a analizar como ahora ArcGIs Online nos va a permitir trabajar con tablas y filtros. 

 Para ello tomaremos como punto de partida un sencillo shapefile de las provincias de España, con datos de población entre los años 2007 y 2012 procedentes del INE.

 Partiendo de esta información:
  • Recordaremos como podemos crear “feature services” en nuestra organización.
  • Consultaremos la información de cada elemento a través de su tabla de contenido
  • Aprenderemos a aplicar filtros. 
  • Convertiremos el mapa en una aplicación de consulta utilizando la nueva plantilla “Filtrar”

  Pero mejor veámoslo paso a paso:

   1. Lógate en tu organización de ArcGIS.com con tu usuario y contraseña.


   2. En la parte superior encontrarás la pestaña "MI CONTENIDO".


 Haz clic sobre esta opción y accederás a todo el contenido que tu usuario ha creado en la organización.

Recuerda
Aquí no sólo podrás  agregar mapas, datos, aplicaciones o herramientas en la nube de Esri, sino también administrarlos, eliminarlos o establecer su privacidad.
 
   3. Ubícate en la carpeta sobre la que quieras almacenar los datos y haz clic en la opción "Agregar elemento".
 

    4. Se abrirá una nueva ventana en la que tenemos que definir los parámetros necesarios para incorporar nuestro shapefile, convirtiéndolo en un feature service dentro de nuestra organización.


 Recuerda
Los shapefiles que incorporamos en ArcGIS Online deben de estar comprimidos en formato ZIP.
Para crear un feature service es necesario chequear la opción “Publicar este archivo como servicio destacado”.                                     
 
   5. Tras crearse la nueva entidad, la plataforma nos mostrará directamente sus detalles. Ábrelo a través del visor de mapas de ArcGIS.com.

   
   6.  ¡Esto ya lo hemos hecho muchas veces! Tenemos una capa geográfica que podemos simbolizar de diferentes maneras y sobre la que establecer distintos tipos de ventana emergente en función de la historia que queremos contar con nuestro mapa.

 En este caso hemos optado por categorizar las provincias en función de que hayan ganado o perdido población a lo largo del último año, incluyendo además como ventana emergente un gráfico de columnas que muestra la evolución entre los años 2007 y 2012.


Ver mapa más grande

   7. Una de las novedades incluidas en esta actualización, es la consulta de los datos que conforman la capa a través de su tabla de contenidos.
Para ello simplemente debemos acceder a las opciones de la capa y seleccionar "Mostrar tabla".


 
 De este modo en la parte inferior del mapa aparecerá la tabla con todos los registros que conforman el modelo de datos de la capa. 



  También se ha incluido funcionalidad sobre esta tabla de modo que podremos seleccionar registros, navegar en el mapa, mostrar u ocultar columnas e incluso establecer filtros (opción que veremos a continuación).



Importante
Sólo si trabajamos con  feature services, tanto alojados en la nube como procedentes de ArcGIS Server, podremos aplicar filtros.
Si nuestra capa es un shapefile podremos acceder a la tabla de contenidos, pero no aplicar consultas.

   8. Pero además de la tabla de contenidos, otra novedad destacada es la posibilidad de establecer filtros sobre los datos.

 Estas consultas pueden definirse de dos maneras distintas:
  • Desde la funcionalidad de la tabla
  • A través de las opciones de la capa 


 Por ambos caminos, accederemos a un constructor interactivo de consultas que nos permitirá crear expresiones basadas en los atributos de la capa, de tal modo que sólo aquellos elementos que cumplan con los criterios definidos se mostrarán en el mapa.

 En nuestro caso, hemos establecido que sólo se muestren aquellas provincias que han aumentado su población durante el último año.


 Además hemos activado la opción "Solicitar valores" ya que será imprescindible para la aplicación web que construiremos a continuación.

  9. Finalmente guardamos el mapa y lo hacemos público a través de la opción compartir.

  10. Como hemos indicado, en este último release se han incluido también nuevas plantillas para crear aplicaciones web. Y en concreto, una de ellas nos permitirá explotar de manera efectiva el filtro que acabamos de establecer en nuestro mapa.

 Como ya sabéis, crear aplicaciones en ArcGIS Online es algo muy sencillo y no requiere escribir nada de código. Recordemos los pasos a seguir:
  • Desde nuestro web map seleccionamos la opción "Hacer una aplicación Web" en el menú compartir. 
 
 
  •  Localizamos la plantilla denominada "Filtrar" y elegimos la opción publicar.

  •  Y finalmente definimos su nombre, descripción, ...

 Y ESTE ES EL RESULTADO: Población en las provincias españolas



10 comentarios:

  1. Hola, puedo agregar un FC que tengo alojado en una Geodatabase ? (ArcSDE)

    ResponderEliminar
  2. Si tienes feature classes en ArcSDE, puedes publicarlas como un servicio (feature service) desde tu ArcGIS for Server y consumirlas en ArcGIS Online, pudiendo aplicar filtros como comentamos en el post y posibilitando la edición desde web o móviles (que irá contra la versión correspondiente de tu base de datos).

    Si no quieres crear un servicio en tu ArcGIS for Server, puedes crear el servicio en tu suscripción de ArcGIS Online (de modo que la tabla se copiará a la nube y ya no estará sincronizada con tu base de datos, pero podrás usarla como un servicio igual que en el caso anterior).

    La tercera opción es la menos sofisticada: exportarla tu feature class a Shapefile y agregarla a ArcGIS Online como un fichero local, en cuyo caso tendrás la limitación de las 1.000 entidades y no será posible hacer una edición colaborativa.

    ResponderEliminar
  3. Muchas gracias voy a explorar la primera opción.

    ResponderEliminar
  4. Por otro lado tengo el siguiente problema:
    No puedo realizar el paso 10 para hacer una aplicación web, ya que el menú compartir no me ofrece la opción...
    No se por qué el menú compartir es distinto al que se muestra en ese paso. ¿alguna sugerencia? Saludos cordiales.

    ResponderEliminar
    Respuestas
    1. Ya encontré la solución:

      Pasos:
      1.Abre un mapa web guardado en el visor de mapasArcGIS.com.
      2.Haz clic en el botón Compartir para abrir la ventana Compartir.
      Solo puedes crear una aplicación Web con un mapa compartido.....

      El problema mio es que buscaba la opción compartir desde el WEB Map en mi contenido y no desde el visor de mapas de ArcGIS.com.

      Solucionado!!!!

      Eliminar
  5. Sí, en efecto la creación de aplicaciones debe hacerse desde la vista de mapa, y el mapa debe estar compartido.

    ¡Si tienes alguna otra duda nos cuentas!

    Jaime

    ResponderEliminar
  6. Hola:
    ¿Es posible eliminar el filtro, por ejemplo con algún comodín, para que muestre todos los datos? Mi idea es que el usuario de una aplicación web pueda no solo ver los datos filtrados, sino todos a la vez.

    También me gustaría saber si es posible filtrar por un conjunto limitado de elementos (usando por ejemplo un combo) en vez de tener que solicitar al usuario una entrada de texto.

    Saludos

    ResponderEliminar
  7. Hola David:

    A nivel de aplicación web, puedes controlar la forma en que el usuario interactúa con los filtros. Puedes crear una aplicación web que pueda mostrar queries predefinidas en forma de un combobox, por ejemplo. La forma en que está implementado la creación de filtros en ArcGIS Online utiliza entradas de texto, aunque es posible que la interfaz del visor vaya cambiando según evolucione la plataforma.

    Si necesitas mostrar todos los datos, ¿por qué aplicar un filtro? O puedes usar un filtro basado en una condición que se cumpla siempre, tal como ObjectID > 0.

    Saludos,
    Jaime

    ResponderEliminar
    Respuestas
    1. Gracias por tu respuesta Jaime. Muy amable.

      Lo que quiero implementar es lo siguiente: Dato un conjunto de datos clasificados, por ejemplo en cuatro tipos diferentes de edificios históricos -monasterios, iglesias, capillas, catedrales- cuando el usuario (público en general) acceda al mapa, vea inicialmente todos los elementos de cualquiera de los cuatro tipos. A continuación, si lo requiere y desde un combo, que pueda filtrar exclusivamente por esos cuatro tipos y además, mediante un campo de texto, concretar la demarcación (por ejemplo, un municipio, una provincia, etc.).
      Supongo que esto se puede implementar en AGOL sin problemas y con poca programación. ¿Estoy en lo cierto? Un ejemplo de estos pasos en el blog sería genial.

      Saludos.

      Eliminar
  8. Hola David:

    Lo que comentas es fácil de implementar usando las APIs web de Esri, por ejemplo la de Javascript. En este caso tu aplicación accedería al contenido de tu web map (el servicio que contiene los edificios históricos) y podrías llevar a cabo las queries que comentas (que pueden ser alfanuméricas, como filtrar por tipo, o espaciales, como filtrar por lo que quede dentro de un polígono existente en otra capa). Tienes muchos ejemplos de tareas de Query en la web, tales como https://developers.arcgis.com/en/javascript/jshelp/intro_querytask.html.

    La forma de implementar visualmente esta query es cosa del desarrollo. Puedes usar comboboxes, listas, cuadros de texto, selectores en el mapa o cualquier otra interfaz que te interese para tu aplicación.

    Si no tienes ya una aplicación desarrollada, puedes partir de una de las plantillas existentes en ArcGIS Online y modificarla con tu código personalizado y los estilos adecuados para tu aplicación.

    Saludos,
    Jaime

    ResponderEliminar