Accediendo a ArcGIS con la API JavaScript

Accediendo a ArcGIS con la API JavaScript Francisco Hernández/[email protected]
Web GIS ArcGIS for Server es la plataforma Arquitectura SOA Web Maps Rendimiento y escalabilidad Web Scenes Diseminación y Colaboración Simplificando Layers Geodatabase Modelo Geoinformación Archivos GIS Sensores Servicios y Datos •  Datos ú(les y de acceso simple Servicios de ArcGIS for Server • 
• 
• 
• 
• 
• 
Map (WMS) Globos Geocodificación GeoData GeoProcesos Imagen hIp://sampleserver6.arcgisonline.com/arcgis/rest JavaScript API
•  Múl(ple Plataforma •  JS Frameworks: •  Dojo, jQuery, EXTJS, etc. •  IDE: Aptana, Notepad++, Sublime, Visual Studio, Web Storm ArcGIS API para JavaScript Qué podemos hacer con la API ?
•  Mapas interac(vos •  U(lizar los mapas bases de ArcGIS ONLINE •  Consultar •  Ejecutar tareas (Geoprocesos) •  Hallar direcciones Cómo se obtiene la API ?
<script src="hIp://js.arcgis.com/3.14/"></script> h7p://www.esri.com/apps/products/download/ Construya su primer Mapa
•  Configurar Framework •  Referenciar la API •  Referenciar CSS •  Crear Mapa •  Agregar Mapa Base Consultas
TIPO DE CONSULTA EJEMPLO SOLUCION Entregar información sobre un punto dado Cuál es el nombre y población de la ciudad IdenLfyTask o ImageServiceIdenLfiyTask Buscar elementos que saLsfagan una consulta Cuáles son los clientes de Lpo Residencial ConverLr puntos en direcciones y viceversa Donde está “Marchant Pereira 201” FindTask Locator task Resolver ruta ópLma sobre una red Cuál es la ruta más corta entre el punto A y RouteTask punto B Determinar áreas sobre una red basado en su impedancia Cuál es la zona que rodea al Mall cuya distancia manejando es menor a 5 min. ServiceAreaTask Buscar elementos basado en valores de sus atributos y/o geometría Cuáles son los Clientes en Melipilla que Lenen más de 5 reclamos QueryTask or FeatureLayer Buscar servicios cerca de un incidente sobre Donde está la estación de bomberos más una red cercana a un incendio ClosestFacilityTask Otro Geoprocessor task Qué elementos son interferidos por un geometría dada. Mostrar los resultados de una Consulta
QUER
Y
QUERY
TASK
Servicios
GIS
Feature
Set
Layers
Gráficos
Mostrar resultado FeatureLayer
FEATURELAY
ER
QUER
Y
Servicios
GIS
Elementos en el current Extent Feature
Set
Preparando el objeto Query
Servicios
GIS
QUER
Y
CONDICIO
N
GEOMET
RIA
TIPO DE CRITERIO EJEMPLO ATRIBUTO mQuery.where = “magnitud >= 8 and lugar like ‘%Chile%’” ESPACIAL mQuery.spaLalRelaLonship = Query.SPATIAL_REL_CONTAINS; mQuery.geometry = graficos.geometry; ELEMENTOS QUE SE OBTIENEN EJEMPLO COLUMNAS ESPECIFICAS mQuery.outFields = [“magnitud”,”lugar”,”fecha”] OBJETO GEOMETRIA mQuery.returnGeometry = true; Ejecutando la consulta
Una vez definida la Query se u(liza QueryTask o métodos FeatureLayer Query Task FeatureLayer Se aplica sobre servicios Tiled, dynamic, o image Este (po de servicios (ene métodos propios para filtrar sin que se u(lice QueryTask Se debe especificar una sola capa, use el punto REST respec(vo setDefini(onExpression(condicion). Sólo muestra los objetos que sa(sfacen la condición QueryTask (ene un método execute() y retorna un FeatureSet queryFeatures(query). Retorna un FeatureSet selectFeatures(query). Realiza una consulta nueva o adicionando a la anterior. Es conveniente para manejar y desplegar conjuntos de elementos seleccionados Entendiendo el FeatureSet
Func(on explorandoResultado(fs){ console.log(fs.geometryType); console.log(fs.features.length); miElemento = fs.features[0]; Geometria = miElemento.geometry; misAtributos = miElemento.aIributes; for (campo in misAtributos) { console.log(campo+”:”+ misAtributos[campo]); } } Optimizando el FeatureLayer
USO PARA setDefini(onExpression() Se aplica en el lado del servidor para limitar la can(dad de elementos hacia el cliente selectFeatures() Párametro Selec(onMethod Crea y modifica selecciones en el lado cliente. Elementos son requeridos desde el Server solo cuando es necesario setAutoGeneralize() setMaxAllowableOffset() Se aplica una tolerancia para limitar la can(dad de vér(ces (Server) Párametro mode:SNAPSHOT, ONDEMAND, SELECTION Determina cuando y como los elementos deben ser recuperados desde el Server. Simbolización de los datos espaciales
USAR CUANDO SimpleRenderer Se aplica el mismo símbolo para todos los elementos UniqueValueRenderer Se aplica un símbolo específico basados en un valor único ClassBreaksRenderer Se aplica símbolos de diferentes tamaños o colores basados en rangos de valores de un atributo DotDensityRenderer Muestra la variación de la densidad especial de un fenómeno especial discreto HeatMapRenderer Convierte datos puntuales en un despliegue raster para mostrar en forma dinámica áreas de concentración TemporalRenderer Visualización de observaciones en (empo real o histórica. ScaleDependentRenderer Aplica diferentes símbolos a una misma capa dependiendo de la escala del (empo Propiedades de la simbolización para
FeatureLayers
USAR PARA Propiedad: setColorInfo() Muestra un arreglo de valores con(nuos usando una rampa de colores Propiedad: setRota(onInfo() Rota un símbolo para indicar la variación de la dirección (dirección del viento), esta propiedad también opera para DynamicLayers Método: setSizeInfo() Cambia el tamaño del símbolo o ancho basado en el rango de valores de un atributo Método: setOpacityInfo Cambia los valores ALFA usados para desplegar una capa (ALFA:0à1) Un misma simbolización puede ser aplicada a
DynamicLayer, GraphicLayer y FeatureLayer. El cómo se
aplica está basado en tipo de layer
Aplicando simbolización
Graphic & Feature Layers Dynamic Layers // Se ejecuta en el lado del cliente miGraphicLayer.setRenderer(miRender); miFeatureLayer.setRenderer(miRender); // Se ejecuta en el lado del Server var miLDO = new LayerDrawingOp(ons(); miLDO.renderer = miRender; miDynamicLayer.setLayerDrawingOp(ons([miLDO]); GRACIA