Segunda presentación utilizada por los ponentes del seminario celebrado en Madrid el pasado 17 de mayo.
Si necesitas más información sobre todas las ventajas y apoyo que Esri España ofrece a los emprendedores y desarrolladores, visita esri.es
2. Tres Tipos de Aplicaciones
Paradigmas
• MICROSOFT
- Aplicación Clásica Desktop
- Aplicación Basada en Ventanas, Menús, Botones,…
- Aplicación Instalable en Cliente Desktop
• GOOGLE
- Aplicación Web
- No requiere Instalación. Aplicación en Servidor
• APPLE
- Aplicación Pequeña
- Vinculada al Dispositivo
- Funcionalidad Especifica
3. Soluciones Desarrollo Plataforma ESRI. Parte 1
Esri como plataforma de desarrollo
ArcObjects APIs Web Python SDK ArcGIS Runtimes
Explorer
Aplicaciones Aplicaciones API GDB Aplicaciones
• ArcGIS Desktop, Server • ArcGIS Server • Varias
API REST:
ArcSDE
Add-ins:
• ArcGIS Desktop Base para la explotación del
SDK Runtime SDK
Servidor
• Objective C
APIs • Java
ArcGIS Engine: Aplicaciones • Silverlight
• Apl. Independiente • Javascript
• .NET
• ArcGIS Explorer
• Flex • WPF
Server: SOE • Silverlight SDK
SDK
• Ampliar funcionalidad • APIs Complementarias • .NET
• .NET
Servidor • SharePoint
• Google
• Bing
.NET y Java
4. Soluciones Desarrollo Plataforma ESRI. Part 2
ArcGIS Runtime para distintas plataformas SDKs
PC-Tablet Dispositivos Móviles
Windows Linux Windows iOS Android Windows
Mobile Phone
Aplicaciones Aplicaciones Aplicaciones Aplicaciones Aplicaciones Aplicaciones
• Ninguna • Ninguna • ArcGIS for WM • ArcGIS for iOS • ArcGIS for Android • ArcGIS for WP
Runtime SDK Runtime SDK Runtime SDK Runtime SDK Runtime SDK Runtime SDK
• WPF, Java • Qt, Java • .NET • Objective C • Java • Silverlight
7. Arquitectura Runtime
Local Geocodificación Mapping
Server GP Edición WPF Java
Capacidades de la Plataforma
Tile Package GPS
Messaging Sinbología Android iOS
Runtime
OpenGL DirectX
Core
Server Sync Offline Rutas Windows
Offline Mobile
Spatial analysis
Geocodificación
Remote Geocodificación Mapping
Windows
Server GP Edición Phone
9. ArcGIS Runtime SDK
Plataforma de desarrollo para crear aplicaciones con funcionalidad SIG
• Nueva Arquitectura(64 bit Nativo y 32)
• API Moderna (WPF, Java and Qt) (Windows y
Linux)
• Funcionalidad:
- Mapping, Navegación, Identificar, Consultas,
Buscar, Edición, Geolocalización y
Geoprocesamiento.
- Funcionalidad residente en Local o en el Servidor
• Fácil de Desplegar
- No requiere instalación Runtime
- Independiente de otras instalaciones de ArcGIS
- Software, mapas y datos
ArcGIS
. . . Trabajo en entornos conectados y desconectados Datos
Locales
11. ArcGIS Runtime. Arquitectura
• ArcGIS Runtime como una Caja Negra
ArcGIS API
ArcGIS REST Services
Caja Negra
GIS Runtime
12. ArcGIS Runtime. Arquitectura
Aplicación
ArcGIS API
ArcGIS REST Services
http REST
Servidor Web Embebido
ArcGISRuntime.exe
Process One
Memoria Compartida
Worker Worker Worker
Process Two
ArcGISRuntime.exe ArcGISRuntime.exe
Process Three ArcGISRuntime.exe
Process Four
14. Dónde se encuentra ArcGIS Runtime
ArcGIS Desktop
ArcGIS Engine
ArcGIS Runtime
ArcGIS Explorer Map Objects
ArcReader
15. Entornos de Desarrollo soportados
.NET WPF JAVA
Qt
Visual Studio 2010 Eclipse - Galileo Qt 4.7.3
Visual Studio Express Helios, Indigo Qt Creator
Expression Blend 2.2.1
.NET 4 SWING
Windows 32/64 bit
Linux 64 bit
16. Mapas y Simbolización
• ArcGIS Desktop como creador de los Mapas
• Soporta toda la simbolización de ArcGIS incluyendo
representaciones
• Soporte de “Maplex”: Anotaciones y Etiquetado
• Permite: Mapa Dinámico o Cacheado
17. Edición
• Geodatabase Feature Editing
- File y SDE Geodatabase
- Atributos y Shape
• Feature Services
18. GeoCodificación
• Soporta todos los ArcGIS Locators que ArcGIS
online proporciona
• Geocodificación directa e inversa
• Geocodificación por línea de comando
• Geocodes soportados mediante Locator Packages
19. Geoprocesamiento
• Herramientas, Scripts y modelos
• La herramienta depende del nivel de Runtime
- Basic (No)
- Standard (ArcEditor)
- … existe una lista con todas las herramientas
20. API
• NameSpace
Función .NET Java
Namespace Package
Accessing Online
Services
Utilizing Local Data
Manage Local Server
Geometry
Search
Geoprocessing
Toolkit
21. API
• NameSpace
Función .NET Java
Namespace Package
Accessing Online ESRI.ArcGIS.Client
Services
Utilizing Local Data ESRI.ArcGIS.Client.Local
Manage Local Server ESRI.ArcGIS.Client.Local
Geometry ESRI.ArcGIS.Client.Geometry
Search ESRI.ArcGIS.Client.Tasks
Geoprocessing ESRI.ArcGIS.Client.Tasks
Toolkit ESRI.ArcGIS.Client.Toolkit
22. API
• NameSpace
Función .NET Java
Namespace Package
Accessing Online ESRI.ArcGIS.Client Com.esri.map
Services
Utilizing Local Data ESRI.ArcGIS.Client.Local Com.esri.client.local
Manage Local Server ESRI.ArcGIS.Client.Local Com.esri.client.local
Geometry ESRI.ArcGIS.Client.Geometry Com.esri.core.geometry
Search ESRI.ArcGIS.Client.Tasks Com.esri.core.tasks
Geoprocessing ESRI.ArcGIS.Client.Tasks Com.esri.core.tasks
Toolkit ESRI.ArcGIS.Client.Toolkit Com.esri.client.toolkit
23. Runtime SDK
para Windows
DEMO: Consumo de Datos y Funcionalidad en
SERVER
24. Construyendo el Mapa
• Control del Mapa
• Datos Temporales / Vivos
- Vehículos, Eventos, Resultados…
• Datos Operacionales
- Elementos de interés, Zonas, Redes…
• Mapa Base
- Imágenes, Topograficos…
25. Construyendo el Mapa
• Control del Mapa
• Datos Temporales / Vivos Gráficas
• Datos Operacionales Dinámicas
• Mapa Base Tiled
26. Construyendo el Mapa
Gráficas Local
Server
Dinámicas Cliente Server
API
Tiled Nube
28. Dynamic Map Packages
• Documento de ArcMAp empaquetado con todas las
capas que contine en un único fichero MPK.
- Conteniendo todos los datos.
- Haciendo referencia al origen de datos original (ruta)
• El MPK se descomprime la con Runtime
- <My Documents>ArcGISPackages
29. Capas Gráficas
• El API cliente de Runtime tiene capas gráficas
para visualizar datos vivos/temporales
- Vehículos, Personas, Eventos, Resultados de
consultas, Interacción del usuario...
• Edición de geometrías, atributos y
simbolización bajo demanda.
• Los gráficos se almacenan en la memoria del
cliente
30. Funcionalidad de ArcGIS Runtime
Desplegar solo lo que se necesite
• Core
- 2D Mapping
- Modelo cartográfico de ArcGIS
- Enterprise y File Geodatabases
- Edición de feature y atributos
- Servicios ArcGIS Server
• Formatos adicionales (SDE Direct Connect, Rasters,
Shapefile,…)
• Geoprocesamiento
• Geocodificación
• Python
• Proyecciones
31. Runtime SDK
para Windows
DEMO: Consumo de Datos y Funcionalidad en
LOCAL
32. Niveles de licencia en Runtime
• Basic
- Acceso a servicios de ArcGIS Server
- Cacheados en Local
- GPS
• Standard
- Datos, Geoprocesamiento y Geolocalizadores en Local
- Edición Geodatabase
- Rutas
• Extensiones
- Spatial Analysis
- 3D Analysis
- Network Analysis
33. Distribución
• Basic
- Con ArcGIS Server no tiene coste
- Sigue los modelos de subscripción de ArcGIS Online
• Standard
- 50-pack
- Venta de paquetes adicionales de 10 ó 50
• SDK Runtime incluido en Esri Developer Network
(EDN)
39. Tareas (Tasks)
• Todas la tareas son asíncronas
- Identify
- Query
- Geocode
- GeoProcessing
40. Mostrar los resultados de Identify
• IdentifyResultSpinner
- Rellenar el adaptador con la lista de resultados
- Añadir a la vista para su visualización
- El spinner muestra los atributos con dominios
- Posibilidad de incluir en el adaptador los cambios
de visualización
41. Callouts & Popups
• Callouts?
- Item de mapa de ArcGIS SDK
• Popups?
- Concepto de ArcGIS Webmap
- Configuración online, consumible en todas las apps y apis
42. Callout
• Map callout
- Un callout por mapa
- Definir estilo en XML
- Definir content
- Text ó View/ViewGroup de android
- Mostrar en una ubicación (punto)
TextView msg = new TextView(this);
msg.setBackgroundColor(Color.BLACK);
msg.setText(address);
msg.setTextSize(12);
msg.setTextColor(Color.WHITE);
Callout callout = map.getCallout();
callout.setAnchor(Callout.ANCHOR_POSITION_FLOATING);
callout.setStyle(R.xml.calloutstyle);
callout.refresh();
callout.show(addressPoint, msg);
43. Popup
• Procedente de la configuración de webmap
• Flujo de trabajo básico
- Obtener PopupInfo- describe el popup del featurelayer
- Ejecutar AsynchTask para obtener las entidades del
featurelayer
- Obtener los Graphics del featureset
- Crear un PopupView usando Graphics and PopupInfo
- Añadir PopupViews al PopupContainer
- Añadir PopupContainer y MapContext al PopupDialog
- Mostrar
44. Queries, realizar consultas
• Query
- Clase que contiene los parámetros de la consulta a ser
ejecutada en el servidor.
• QueryTask
- Ejecuta las consultas
- Devuelve el FeatureSet
45. Edición
• Uso del Feature Services
- Mismo modelo que otras web apis
- applyEdits()
• Demostración del AttributeEditor
- Comprobación de los tipos de datos
- Entrada de datos
- Validación
• Utiliza un graphics layer como “sketch”
- Utiliza MapOnTouchListener
- Implementa eventos de toque y arrastre
47. Consejos Off-Line
• Utilizar en memoria una “feature collection”
- Feature set [array de entidades]
• Editar entidades :
- Métodos addGraphic()/removeGraphic()/applyEdits()
• Escribir entidades a/desde disco en json
48. Ejemplos Off-Line
• Jackson JsonParser
• Serializar a disco
- FeatureSet.toJson(); - String
- JsonGenerator.writeRawValue();
• Leer desde disco
• Pasado a Activity en un paquete
• FeatureSet.fromJson(jsonParser,hasSpatialRef);
49. GPS/COMPASS
• Android Location Service • Uso del SensorManager
• Añade funciones útiles • Objeto Sensor
- Simbolización • TYPE_ORIENTATION
- Precisión • getOrientation()
- Auto pan
• SensorEventListener
51. HTML5
Aplicación Nativa Aplicación Web
• Soluciones
1- Ejecutar Aplicación Web en Navegadores (PC ó Móvil)
Resources
- No accede a los sensores del dispositivo esridemos
2- Dentro de una Aplicación Nativa Embeber la Aplicación Web
a) Código Aplicación Web dentro aplicación Nativa
b) Se hace referencia a la Aplicación Web mediante URL
2.1- Incluyendo objeto para ver Web (en android: WebView)
HTML5_1
- No Accede a los sensores del dispositivo
2.2- Añadir librería “Phonegap” (Todos los dispositivos)
- SI Accede a los sensores del dispositivo pruebaphone1
53. Accediendo al portal
• Clase Portal
- Punto de entrada
- Instanciar con credencial o como invitado
- Dos casos:
- 1.-Cuenta de una organización
- 2.-Portal
- Si se proporciona credencial se conecta con la cuenta de la organización
• Crear Objeto Portal
• Con PortalInfo realizar una Query para obtener una Lista de grupos
• Bucle por la lista para acceder a cada Grupo
• Para cada grupo obtener el título y el thumbnail
• Actualizar la View con los resultados
55. En resumen…
• Plataforma ArcGIS Online
• Diversas soluciones
- Para cada entorno
- Para cada problema
- A elección del usuario
• API rest de ArcGIS Server como centro de todo
• Nuevo Kit Desarrollo ArcGIS Runtime SDK
• Novedad Runtime SDK Android
Google addressed issues with emulator and support for Open GL. Emulator support occurred after the dev summit event. http://blogs.esri.com/esri/arcgis/2012/05/02/arcgis-runtime-sdk-for-android-v1-1-supports-android-emulator/.
calloutsGet callout from the mapSet style using xml, attributeset valur pairSet anchor floating or explicitly (left right top etc…)Refresh to redraw new contentShow at point - Can move and set point