Está en la página 1de 83

Materiales curso prctico ArcIMS

mayo de 2005

ArcIMS 9.0 Curso prctico Introduccin, personalizacin y desarrollo de aplicaciones Cliente Parte 2

Manual Prctico del Curso

BGR - PN 1999.2103.2

Pgina 1 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Contenidos
Curso prctico: Introduccin, personalizacin y desarrollo de aplicaciones cliente en ArcIMS 9.0

Parte 2: XML, ArcXML y esquemas La comunicacin entre visor y servidor a travs del protocolo ArcXML Modificacin avanzada de archivos de configuracin de mapas Administracin avanzada de sitios ArcIMS Consultas de la informacin de atributos y espacial Personalizacin avanzada del visor HTML

Metas y prerrequisitos
Metas: Disear sitios Web con mapas dinmicos a partir del uso de la tecnologa ArcIMS, ArcXML y HTML Prerrequisitos: Conocimientos en HTML y JavaScript Conocimientos en ArcGIS Participacin en el curso prctico parte 1 Reglas del curso: Apagar celulares y desenchufar telfono Salir de la sala solamente durante los descansos Seguir los materiales del curso no adelantar en la materia

BGR - PN 1999.2103.2

Pgina 2 de 83

Materiales curso prctico ArcIMS

mayo de 2005

XML, ArcXML y estndares

La estructura de XML: Etiquetas y atributos Comentarios Localizacin Las principales aplicaciones de XML DTD, estndares de esquemas y DOM Transformacin de XML: Presentacin en Web Procesamiento (parsing) El DTD de ArcXML: Validacin de archivos de configuracin El rol de ArcXML en ArcIMS La gua de referencia ArcXML

BGR - PN 1999.2103.2

Pgina 3 de 83

Materiales curso prctico ArcIMS

mayo de 2005

La estructura de XML
Al igual como HTML, XML es un lenguaje textual de etiquetas (Markup) A diferencia con HTML, etiquetas XML identifican datos en vez de estilos de presentacin XML se compone de etiquetas y atributos. Una etiqueta puede contener cero, uno o varios atributos: <MAP dynamic=true><LAYER id=A3 name=Municipios /></MAP> Cdigo XML puede contener etiquetas vacas: <SCREEN/> Documentos XML pueden incluir comentarios explicativas sobre el cdigo: <!-- La siguiente seccin contiene la clasificacin del modelo de elevacin --> XML es ms restrictivo que HTML en cuanto a errores de sintaxis: etiquetas abiertas no estn permitidas. Cada documento XML requiere de un prlogo en el formato: <?xml version="1.0" encoding="UTF-8"?>
XML, ArcXML y estndares 1

XML se compone de atributos y elementos, y en muchos casos una estructura XML podra disearse utilizando atributos para un elemento de informacin o sub-elementos de un elemento existente: <diapositiva><titulo>Este es un ttulo</titulo></diapositiva> <diapositiva titulo="Este es un ttulo">...</diapositiva> Sin embargo, existen ciertas reglas que deciden sobre cundo utilizar un elemento y cundo utilizar un atributo para crear una estructura XML: Si los datos contienen sub-estructuras el objeto tiene que ser modelado como elemento porque atributos solo aceptan cadenas simples de texto Si los datos contienen ms que una lnea de texto el objeto debe modelarse como elemento Si un objeto puede ocurrir ms que una vez, ste debe modelarse como elemento Si los datos cambian frecuentemente, es recomendable utilizar elementos en vez de atributos (es ms fcil editar elementos) Si los datos son cadenas de texto son pequeas y simples y cambian raramente, atributos pueden utilizarse para modelar el objeto DTD pueden restringir valores permitidos de atributos pero no de elementos

BGR - PN 1999.2103.2

Pgina 4 de 83

Materiales curso prctico ArcIMS

mayo de 2005

La principales aplicaciones de XML


Procesamiento tradicional de datos XML codifica los datos a procesar Intercambio de informacin en Internet Protocolo de comunicacin de plataformas multi-capa Programacin basada en documentos (Document-Driven Programming - DDP) XML describe el diseo de software Definicin de la apariencia de una aplicacin Referencias a la interfaz grfica y componentes lgicos y funcionales Vinculacin (Binding) El DTD especifica cdigo de alto nivel para el procesamiento del XML Generacin automtica de cdigo de procesamiento de datos Creacin de clases que procesan datos a partir de su DTD Archivo (Archiving) Documentos XML archivan componentes de software reutilizables Transferencia de componentes desarrollados en diferentes lenguajes Modificacin de componentes a travs de reemplazar texto
XML, ArcXML y estndares 2

La importancia de XML tiene sus razones en una serie de caractersticas inherentes a las especificaciones y el modelo de objetos de documento: Texto sencillo: XML no est almacenada en formato binario o propietario sino en formato texto ASCII compatible con cualquier editor de texto estndar. Al mismo tiempo la estructura y jerarqua de XML es tan potente y escalable como un sistema de base de datos relacional o repositorio de datos. Identificacin de la informacin El modelo de objetos de documento (DOM) permite consultar y filtrar la informacin contenida en documentos XML a partir de las etiquetas definidas en el DTD. Representacin visual El contenido de documentos XML puede visualizarse en la Web a travs de hojas de estilo, tanto como convertirse en PostScript, TEX, PDF u otros formatos.

BGR - PN 1999.2103.2

Pgina 5 de 83

Materiales curso prctico ArcIMS

mayo de 2005

DTD, estndares de esquemas y DOM


Las Definiciones de Tipo de Documento son partes opcionales de la especificacin XML y definen las etiquetas vlidas y su jerarqua en un documento XML. Esquemas son ms poderosos que DTD. Parecidas a estructuras de bases de datos, las esquemas permiten la validacin de atributos y jerarquas complejas. Uno de los primeros protocolos para el acceso programtico a XML es el API Simple para XML SAX. Ms importante, es el Modelo de Objetos de Documentos (DOM) que convierte cdigo XML en una serie de objetos que pueden accederse al azar. Espacios de nombres (Namespaces) es un estndar que permite combinar dos o varios conjuntos de etiquetas en el mismo documento. XHTML es una especificacin basada en la idea de incluir etiquetas HTML en documentos XML, de esta forma permitiendo su despliegue en navegadores.

XML, ArcXML y estndares

XML ya es base para varios estndares especializados que se han construido utilizando XML como herramienta de definicin de lenguajes: SMIL Synchronized Multimedia Integration Language - SMIL es una recomendacin del W3C que cubre audio, video y animaciones MathML Mathematical Markup Language - MathML es una recomendacin del W3C para la representacin de formulas matemticas SVG Scalable Vector Graphics - SVG es una recomendacin del W3C para la representacin de grficos de vectores en Internet DrawML Drawing Meta Language - DrawML es una recomendacin del W3C que cubre imgenes 2D para ilustraciones tcnicas

BGR - PN 1999.2103.2

Pgina 6 de 83

Materiales curso prctico ArcIMS

mayo de 2005

La transformacin de XML
Documentos XML no contienen instrucciones que definen el formato y los estilos de la presentacin en Web de su contenido. XSLT es un estndar para la transformacin de etiquetas XML y de la informacin almacenada en un documento a HTML. Se usa XSLT en combinacin con XPATH, un mecanismo que permite filtrar y seleccionar los elementos a presentar. Lenguajes de programacin en Web como por ejemplo JSP utilizan XPATH para interpretar y crear consultas a documentos XML. La interpretacin (Parsing) y consulta programtica de documentos y cdigo XML puede realizarse a travs del modelo de objetos DOM y SAX. Aplicaciones escritas en el lenguaje Java pueden utilizar libreras como JAXP (Java API for XML Processing) para interpretar cdigo XML.

XML, ArcXML y estndares

Un modelo de objetos de documento (DOM) es una estructura tipo rbol en la cual cada nodo contiene una de los componentes de una estructura XML. Los nodos ms comunes son nodos de elemento (element nodes ) y nodos de texto (text nodes). Utilizando funciones del DOM (p. ej. nodeValue(), node.nodeType(), and nodeName()), los nodos pueden ser creados, borrados y sus contenidos modificados. Otras funciones permiten recorrer la jerarqua del documento e inspeccionar sub-conjuntos de elementos o sub-elementos.

BGR - PN 1999.2103.2

Pgina 7 de 83

Materiales curso prctico ArcIMS

mayo de 2005

El DTD de ArcIMS
ESRI provee con una Definicin de Tipo de Documento (DTD) de ArcXML que puede utilizarse para validar etiquetas y estructura de archivos AXL. La validacin de documentos XML se realiza en editores XML. El DTD de ArcXML puede utilizarse en una gran variedad de editores XML pero se recomienda editores que soportan codificacin UTF-8. Dos editores recomendados son XMLSpy y Xeena El DTD tiene que especificarse en el elemento DOCTYPE en la cabecera del documento ArcXML: <!DOCTYPE ARCXML SYSTEM "<arcxml.dtd"> Los editores XML pueden desplegar el contenido y la estructura de un archivo de configuracin de mapas en forma de una rejilla

XML, ArcXML y estndares

XML es un sistema complejo de tratamiento de informacin. Mientras que HTML es un lenguaje, XML representa una familia de lenguajes o metalenguaje capaz de definir otros lenguajes. El cdigo HTML, por ejemplo, est basado en un DTD (Document Type Definition, definicin de tipo de documento) interno. DTD es una definicin de las normas que regulan la formacin de las etiquetas de un lenguaje de marcas determinado, en este caso el HTML. En XML no existen DTDs predefinidos, por lo que es labor del diseador especificar su propio DTD para cada tipo de documento XML. El DTD de ArcIMS es la definicin de los tipos de nodos y atributos permitidos en los elementos de ArcXML.

BGR - PN 1999.2103.2

Pgina 8 de 83

Materiales curso prctico ArcIMS

mayo de 2005

El rol de ArcXML en ArcIMS


ArcXML es el protocolo de configuracin de servicios de mapas y de comunicacin con el servidor espacial en ArcIMS ArcXML provee las capacidades funcionales para componer y acceder mapas y datos en un formato apropiado antes de enviarlos a los clientes Es importante entender la relacin entre archivos de configuracin, peticiones y respuestas en ArcXML. Archivos de configuracin de mapas definen el contenido y la simbologa inicial de un servicio de mapas ArcIMS. A partir de peticiones ArcXML, enviados desde el cliente al servidor espacial a travs del servidor de aplicaciones, puede modificarse la apariencia del mapa. Asimismo, pueden realizarse consultas espaciales y a las tablas de atributos. El servidor espacial procesa el mapa y enva los resultados en protocolo ArcXML.
XML, ArcXML y estndares 6

La comunicacin entre los diferentes componentes de ArcIMS se realiza a travs del protocolo ArcXML. ArcXML es un derivado de XML, y se diferencian en tanto ArcXML no describe la estructura para la presentacin de una pgina Web de mapas, sino para la estructura del siguiente contenido y funcionalidad: Configuracin de servicios de mapas: Definen el contenido y el diseo de mapas a diseminar, incluyendo las capas de informacin espacial y su simbologa. Consultas: Emplean un filtro a servicios de mapas existentes y especifican la parte del mapa y datos relacionados que van a ser procesados. Respuestas: Mandan la informacin requerida al cliente.

BGR - PN 1999.2103.2

Pgina 9 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Prctica

Validacin de un archivo de configuracin AXL con XMLSpy

XML, ArcXML y estndares

BGR - PN 1999.2103.2

Pgina 10 de 83

Materiales curso prctico ArcIMS

mayo de 2005

La comunicacin entre cliente y servidor

Las relaciones entre los elementos principales de ArcXML CONFIG - Configuracin REQUEST - Peticin RESPONSE - Respuesta El ciclo de peticin y respuesta El funcionamiento del PostFrame Obtencin de informaciones sobre servicios ArcIMS

BGR - PN 1999.2103.2

Pgina 11 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Las relaciones entre los elementos principales de ArcXML


ArcXML contiene tres elementos principales: CONFIG, REQUEST y RESPONSE

La comunicacin entre cliente y servidor

Existen 3 tipos de elementos principales en ArcXML: <Config>, <Request>, <Response>. CONFIG se utiliza para la configuracin de archivos de mapas, base para la creacin de servicios de mapas. REQUEST utiliza el cliente para comunicarse con el servidor espacial y obtener informacin en forma de mapas o datos. RESPONSE utiliza el servidor para enviar la informacin solicitada al cliente. La comunicacin entre cliente y servidor espacial se realiza a travs del servidor de aplicaciones y el conector Servlet. Al utilizar una herramienta o funcin en el Cliente, se ejecutan una serie de funciones Javascript para realizar esta comunicacin en forma de un ciclo peticin - respuesta (request-response cycle). El diagrama a continuacin muestra el ciclo complete para las herramientas de cliente Zoom In e Identify.

BGR - PN 1999.2103.2

Pgina 12 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Ciclos de comunicacin
1. Esquema de ciclos de comunicacin (Zoom / Identificar)

La comunicacin entre cliente y servidor

Al utilizar una herramienta (Zoom e Indentify en este ejemplo) y hacer clic sobre el mapa principal una serie de funciones JavaScript se ejecutan y preparan la informacin a enviar al servidor con la funcin sendToServer y el modo de procesar la respuesta con processXML().

BGR - PN 1999.2103.2

Pgina 13 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Ciclos de comunicacin
2. El ciclo peticin respuesta en el visor HTML

La comunicacin entre cliente y servidor

La comunicacin entre el cliente (visor) y el servidor se basa en peticiones y respuestas codificadas en ArcXML. En cada ciclo consulta-respuesta, las funciones Javascript actualizan los atributos y elementos de entrada del archivo PostFrame (jsform.htm). El contenido de PostFrame se enva al conector Servlet en forma de formulario HTML. El mismo conector recibe la respuesta del servidor espacial y la convierte en una nueva pgina PostFrame. Este mtodo de envo de un formulario es necesario porque JavaScript y HTML so son capaces de manejar un ciclo de peticin respuesta por su propia cuenta.

BGR - PN 1999.2103.2

Pgina 14 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Ciclos de comunicacin
3. La peticin 1) Una funcin JavaScript crea cdigo ArcXML apropiado para la operacin seleccionado por el usuario. Se ejecuta la funcin sendToServer en MapFrame que actualiza el elemento ArcXMLRequest del formulario de la pgina PostFrame. El formulario de PostFrame se enva al servidor Web y el conector Servlet extrae las valores de los parmetros del formulario. El conector Servlet reenva la peticin al servidor de Aplicaciones el cual la manda al servidor espacial para ser procesado.

2)

3)

4)

La comunicacin entre cliente y servidor

Una funcin Javascript crea la peticin ArcXML y ejecuta la funcin sendToServer en MapFrame (mapframe.htm) para actualizar los elementos de PostFrame. El formulario PostFrame es enviado al servidor Web y el conector Servlet extrae la informacin del formulario. El conector enva la informacin al servidor de Aplicaciones y ste la manda al servidor espacial.

BGR - PN 1999.2103.2

Pgina 15 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Ciclos de comunicacin
4. La respuesta 1) El servidor especial enva la respuesta con la informacin solicitada al conector Servlet a travs del servidor de Aplicaciones. El conectador crea una nueva versin del PostFrame con la informacin obtenida del servidor espacial y reemplaza la versin anterior. La funcin passXML pasa la informacin contenida en PostFrame a la funcin processXML de la pgina MapFrame. La funcin processXML finalmente ejecuta la funcin Javascript adecuada para procesar la informacin obtenida.

2)

3)

4)

La comunicacin entre cliente y servidor

BGR - PN 1999.2103.2

Pgina 16 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Ciclos de comunicacin
5. La pgina PostFrame
<HTML> <HEAD> <TITLE>Default Form</TITLE> <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> function passXML() { var theResponse = // Conector reemplaza este valor; parent.MapFrame.processXML(theResponse); } </SCRIPT> </HEAD> <BODY BGCOLOR="White" onload="passXML()"> <FORM ACTION="" METHOD="POST" name="theForm"> <INPUT TYPE="Hidden" NAME="ArcXMLRequest" SIZE="40"> <INPUT TYPE="Hidden" NAME="JavaScriptFunction" VALUE="parent.MapFrame.processXML"> <INPUT TYPE="Hidden" NAME="RedirectURL" VALUE=""> <INPUT TYPE="Hidden" NAME="BgColor" VALUE="#000000"> <INPUT TYPE="Hidden" NAME="FormCharset" VALUE="UTF-8"> </FORM> </BODY> </HTML
La comunicacin entre cliente y servidor 6

Al enviar una consulta al servidor espacial, se actualizan los siguientes elementos de la pgina PostFrame: Action: ArcXMLRequest: JavaScriptFunction: BGColor: FormCharset: URL del servicio de mapas. Texto con la consulta ArcXML. Funcin que procesar la respuesta. El predefinido es parent.MapFrame.processXML. Color de fondo. El predefinido es negro. Codificacin de caracteres de ArcXML. El predefinido es UTF-8.

Las valores del formulario se actualizan y el formulario se enva al conector Servlet que extrae las peticiones ArcXML y las reenva a travs del Servidor de Aplicaciones a la parte adecuada del servidor Espacial. La respuesta del servidor espacial crea una nueva versin de la pgina PostFrame conteniendo la informacin obtenida. A continuacin, una pgina PostFrame con una respuesta incluida por el conector Servlet.

BGR - PN 1999.2103.2

Pgina 17 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Ciclos de comunicacin
6. La pgina PostFrame con una Respuesta
<HTML> <HEAD> <TITLE>Default Form</TITLE> <SCRIPT TYPE=text/javascript LANGUAGE=JavaScript> function passXML() { var XMLResponse = <?xml version=1.0 encoding=UTF8?><ARCXML version=1.1> <RESPONSE><IMAGE><ENVELOPEminx=-180 miny=-126 maxx=180 maxy=126/> <OUTPUT file=c:\\\arcims\\\output\\\World_KAT27721614.gif url=http://kat/output/World_KAT27721614.gif/></IMAGE></RESPONSE></ARCXML>; parent.MapFrame.processXML(XMLResponse); } </SCRIPT> </HEAD> <BODY BGCOLOR=#000000 onload=passXML()> <FORM ACTION=METHOD=POST name=theForm> <!--- <input type=Hidden name=Form value=True> ---> </FORM> </BODY> </HTML>

La comunicacin entre cliente y servidor

BGR - PN 1999.2103.2

Pgina 18 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Ciclos de comunicacin
6. Manejo del ciclo de comunicacin en el cliente El ciclo peticin - respuesta est manejado por las funciones sendToServer() y processXML() en aimsXML.js. Ambas funciones cambian y comprueban el valor de la variable okToSend despus de cada peticin y respuesta. La manera correcta de programar funciones propias es utilizando customMapTool() y useCustomFunction() en el archivo aimsCustom.js: (A) function customMapTool(e) { if (toolMode == 1001) { if (checkIfActiveLayerAvailable()) { select(e); } } } if (toolMode == 1002) { (B) function useCustomFunction(theReply) { if (XMLMode==1001) { var tempVar = toolMode; toolMode = 25; displayAttributeData(theReply); toolMode = tempVar; zoomToReturnedRecords(); } else if (XMLMode==1002) {
La comunicacin entre cliente y servidor 8

(A) La funcin encargada de mandar los comandos personalizados al servidor espacial (a travs de servidor de aplicaciones) utilizando la funcin Javascript sendToServer. (B) La funcin personalizada para recibir y procesar la respuesta del servidor espacial.

BGR - PN 1999.2103.2

Pgina 19 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Prctica
1.

Revisin de los archivos HTML y JavaScript relacionados con el ciclo de comunicacin

Revisar la funciones sendToServer(), sendMapXML() y processXML() en aimsXML.js Revisar los parmetros y las funciones de accin del formulario del PostFrame en la pgina jsForm.htm. Buscar la variable okToSend en aimsXML.js y otros archivos JavaScript Revisar las funciones customMapTool() y useCustomFunction() en aimsCustom.js, aimsClick.js y aimsXML.js. Buscar y revisar los archivos JavaScript que ajusten las variables toolMode y XMLMode.

2.

3. 4.

5.

*Nota: el documento PDF Customizing the HTML Viewer contiene una referencia de las funciones JavaScript
La comunicacin entre cliente y servidor 9

BGR - PN 1999.2103.2

Pgina 20 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Modificacin avanzada de archivos de configuracin

Tablas de atributos y bases de datos externos Consultas almacenadas Extraccin de datos Utilizacin de proyecciones: El motor de proyecciones en ArcIMS Seleccionar una proyeccin Proyecciones en los archivos de configuracin

BGR - PN 1999.2103.2

Pgina 21 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Modificacin avanzada de archivos de configuracin


La gua de referencia de ArcXML Referencia completa del sintaxis y elementos ArcXML Formatos HTML y PDF

Modificacin avanzada de archivos de configuracin

BGR - PN 1999.2103.2

Pgina 22 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Integracin de tablas externas en servicios de mapas


La unin de tablas se realiza a travs de los atributos jointables y joinexpression del elemento <SPATIALQUERY> <LAYER type="featureclass" name="Ciudades" visible="true" id="5"> <DATASET name="ciudades" type="point" workspace="shp_ws-70" /> <SPATIALQUERY jointables="censo" joinexpression="To=[ciudades.ID], From=[censo.ID], Type=[scan]" > </SPATIALQUERY> <VALUEMAPRENDERER lookupfield="censo.CENSO90"> <RANGE lower="10000" upper="100000" label="&lt;100000"> <SIMPLEMARKERSYMBOL color="255,0,0" width="13" /> </RANGE> <RANGE lower="100000" upper="1000000" label="100000 - 1 Mio"> <SIMPLEMARKERSYMBOL color="255,50,0" width="10" /> </RANGE> <RANGE lower="1000000" upper="10000000" label="&gt; 1 Mio"> <SIMPLEMARKERSYMBOL color="255,100,0" width="8" /> </RANGE> </VALUEMAPRENDERER> </LAYER> Modificacin avanzada de archivos de configuracin

El elemento <SPATIALQUERY> realiza consultas a los datos que componen un servicio de mapas de las siguientes maneras: Consulta o filtra los datos en base a sus atributos alfanumricos Crea una consulta o filtro espacial en base a los elementos geogrficos Crea una combinacin de consulta de atributos y espacial

Adems, <SPATIALQUERY> realiza la unin de las tablas de atributos con archivos DBF externos y la relacin con tablas ArcSDE. El archivo DBF debe encontrarse en la misma carpeta del archivo SHP. No debe utilizarse un archivo DBF de un archivo SHP utilizado en un servicio de mapas. Los atributos claves para la unin de tablas son joinexpression y jointables.

BGR - PN 1999.2103.2

Pgina 23 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Consultas almacenadas
Consultas SQL pueden ser predefinidas y almacenadas para su uso en los visores de ArcIMS. Consultas almacenadas facilitan el trabajo a usuarios poco experimentados con el sintaxis de SQL. Elementos claves para crear consultas almacenadas son <STOREDQUERY>, <QUERY> y <SQVAR> <EXTENSION type="StoredQuery"> <STOREDQUERIES> <STOREDQUERY name="Poblacion"> <QUERY where="( POP_ADMIN &gt; [%var%])" subfields="#ALL# /> <SQVAR position="0" name="[%var%]"> <FIELD name=POP_ADMIN" precision="0" type=4" size=10" /> </SQVAR> </STOREDQUERY> </STOREDQUERIES> </EXTENSION> Modificacin avanzada de archivos de configuracin

El elemento <EXTENSION> define los parmetros de consultas almacenadas y extracciones de capas. Para definir una consulta almacenada se utiliza el elemento STOREDQUERIES. Una consulta almacenada crea una consulta predefinida a ser utilizad en visores ArcIMS. El elemento <QUERY> sigue las mismas reglas en la construccin de clusulas SQL como <SPATIALQUERY>. Es recomendable comprobar la consulta con valores reales y posteriormente reemplazar el valor con la variable [%var%].

BGR - PN 1999.2103.2

Pgina 24 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Extraccin / descarga de datos


La extraccin (descarga) de datos en formato Shape requiere de la extensin EXTRACT en el archivo de configuracin. La extensin EXTRACT debe incluir el elemento <EXTRACTPARAMS>. Los elementos <OUTPUTFILE> y <OUTPUTFIELD> definen nombres para el archivo shape y los campos de la tabla de atributos (alias). <LAYER type="featureclass" name=Departamentos" visible="true" id="35"> <DATASET name=adm_l2" type=polygon" workspace="shp_ws-2" /> <SPATIALQUERY subfields=FIPS_ADMIN ADMIN_NAME POP_ADMIN" /> <EXTENSION type="extract" > <EXTRACTPARAMS clip="true" > <OUTPUTFILE file=departamentos" > <OUTPUTFIELD name=FIPS_ADMIN" alias=Cdigo" /> <OUTPUTFIELD name="STATE_NAME" alias=Nombre" /> <OUTPUTFIELD name="POP1990" alias=Poblacin 1990" /> </OUTPUTFILE> </EXTRACTPARAMS> </EXTENSION>
Modificacin avanzada de archivos de configuracin 4

Para habilitar el servidor de extraccin, una extensin tipo Extract debe incluirse en el archivo de configuracin. Si una capa de la configuracin del mapa incluye una extensin tipo Extract, todas las capas pueden ser extradas y descargados. EXTRACTPARAMS es el elemento principal y debe incluirse en el elemento EXTENSION. El atributo clip especifica si los elementos deben recortarse correspondiendo a la extensin actual del mapa en el visor. Si se deshabilita clip elementos parcialmente incluidas en el visor, se extraen completamente. Elementos recortados no extraen sus atributos de la base de datos. El elemento OUTPUTFILE puede utilizarse para modificar el nombre del Shapefile generado. De forma predefinida, el nombre de Shapefile corresponde al atributo id en el elemento LAYER. Similarmente, mediante el elemento OUTPUTFIELD pueden definirse alias para los nombres de los campos a extraer. Para limitar los campos extrados a los especificados en el elemento OUTPUTFIELD, el atributo subfields debe incluirse en un elemento SPATIALQUERY o QUERY de la capa indicada.

BGR - PN 1999.2103.2

Pgina 25 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Utilizacin de proyecciones
El servidor espacial de ArcIMS provee con capacidades de proyectar capas espaciales de forma dinmica (on-the-fly). Existen tres elementos ArcXML que manejan la proyeccin de datos: COORDSYS - define los Metadatos de la proyeccin FEATURECOORDSYS - sistema comn de coordenadas FILTERCOORDSYS - sistema de coordenadas en peticiones del cliente <MAP dynamic="true" > <!- - Ejemplo en un archivo de configuracin - -> <PROPERTIES> <FEATURECOORDSYS id="4326" /> <FILTERCOORDSYS id="4326" /> </PROPERTIES> <LAYER type="image" name="ETM N1610" visible="true" id="N1610" > <DATASET name="n-16-10.sid" type="image" workspace="jai_ws-18" /> <COORDSYS id="32616" /> </LAYER> Modificacin avanzada de archivos de configuracin

La proyeccin y transformacin de datos se realiza en el servidor espacial de ArcIMS. Existen tres elementos en ArcXML que se utilizan para definir proyecciones en archivos de configuracin de mapas o en consultas: COORDSYS FEATURECOORDSYS FILTERCOORDSYS

En ArcIMS, el trmino sistema de coordenadas (coordinate system), que incluye tanto sistemas de coordenadas geogrficas como proyectadas, se utiliza para describir informacin sobre la proyeccin, Datum, unidades y meridianos. La referencia de ArcXML contiene las siguientes listas con definiciones e identificadores para sistemas de coordenadas: Sistemas de coordenadas proyectadas Sistemas de coordenadas geogrficas Transformaciones de datum COORDSYS define los Metadatos de la proyeccin de capas. No realiza ninguna funcin de reproyeccin y corresponde al contenido de un archivo *.prj. Para poder proyectar o transformar datos tipo Shape, coberturas o ArcSDE, es necesario definir COORSYS o crear un archivo *.pjr. Adems de datos tipo vector, COODSYS puede aplicarse a datos tipo raster y capas tipo acetato.

BGR - PN 1999.2103.2

Pgina 26 de 83

Materiales curso prctico ArcIMS

mayo de 2005

FEATURECOORDSYS especifica un sistema comn de coordenadas para la transformacin de las capas contenidas en un servicio de mapas. FEATURECOORDSYS representa la proyeccin general de los datos por parte del servidor espacial. Este sistema de coordenadas puede diferenciarse del sistema definido para cada capa. FILTERCOORDSYS se utiliza para definir el sistema de coordenadas del cliente. De la misma forma como en el caso de COORDSYS, se trata de informacin tipo Metadatos. Hay que incluir FILTERCOORDSYS en archivos de configuracin de mapas para poder utilizar FEATURECOORDSYS. En los archivos de configuracin, FEATURECOORDSYS y FILTERCOORDSYS deben tener el mismo valor. En peticiones los dos elementos pueden tener diferentes valores. Si es necesario realizar una transformacin de Datum, el atributo datumtransformid hay que incluirse en los elementos <FEARTURECOORDSYS>, <FILTERCOORDSYS> y <COORDSYS>. Ejemplo NAD27 a WGS84: <MAP dynamic="true" > <!- - Ejemplo en un archivo de configuracin - -> <PROPERTIES> <FEATURECOORDSYS id="4326" /> <!- - coordenadas geogrficas en WGS84 - -> <FILTERCOORDSYS id="4326" /> </PROPERTIES> <LAYER type="image" name=Managua" visible="true" id=MGA27" > <DATASET name=managua_nad27.sid" type="image" workspace="jai_ws-18" /> <COORDSYS id=26716 datumtransformid=1170 /> <!- - de NAD27 a WGS84 - -> </LAYER> Si se define FEATURECOORDSYS, el servidor espacial calcula automticamente las unidades correctas. El atributo MAPUNITS est ignorado. Al especificar FEATURECOORDSYS y COORDSYS, objetos generados en capas acetato deben utilizar el atributo units="database".

BGR - PN 1999.2103.2

Pgina 27 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Prctica 1

Unin de una tabla DBF externa y creacin de etiquetas o un clasificacin basada en un campo de la tabla unida

* <WORKSPACES> <SHAPEWORKSPACE name="shp_ws-0" directory=C:\Curso ArcIMS 5-05 Parte 2\Datos\soter_ca" /> </WORKSPACES> <LAYER type="featureclass" name="soterca" visible="true" id="0"> <DATASET name="soterca" type="polygon" workspace="shp_ws-0" /> <SPATIALQUERY jointables="SOILCOMP" joinexpression="To=[soterca.SUID], From=[SOILCOMP.SUID], Type=[exact]" /> <GROUPRENDERER> <SIMPLELABELRENDERER field="SOILCOMP.PRID" > <TEXTSYMBOL font="Arial" fontstyle="bold" fontsize="10" /> </SIMPLELABELRENDERER> <VALUEMAPRENDERER lookupfield="SOILSEL"> <EXACT value="ACh" label="ACh"> <SIMPLEPOLYGONSYMBOL filltransparency="1.0" fillcolor="115,131,37" boundarycaptype="round" /> </EXACT> <EXACT value="ACu" label="ACu"> <SIMPLEPOLYGONSYMBOL filltransparency="1.0" fillcolor="166,182,85" boundarycaptype="round" /> </EXACT> <EXACT value="ALh" label="ALh"> <SIMPLEPOLYGONSYMBOL filltransparency="1.0" fillcolor="177,186,132" boundarycaptype="round" /> </EXACT> * Nota: El ejemplo completo se encuentra en practica3-1.axl
Modificacin avanzada de archivos de configuracin 7

Prctica 2

Habilitacin de la extraccin de capas en el archivo de configuracin.

*<MAP> <PROPERTIES> <ENVELOPE minx="-92.232" miny="7.211" maxx="-77.153" maxy="17.818" name="Initial_Extent" /> <MAPUNITS units="decimal_degrees" /> </PROPERTIES> <WORKSPACES> <SHAPEWORKSPACE name="shp_ws-0" directory=C:\Curso ArcIMS 5-05 Parte 2\Datos\soter_ca" /> </WORKSPACES> <LAYER type="featureclass" name="soterca" visible="true" id="0"> <DATASET name="soterca" type="polygon" workspace="shp_ws-0" /> <SPATIALQUERY jointables="SOILCOMP" joinexpression="To=[soterca.SUID], From=[SOILCOMP.SUID], Type=[exact]" subfields="CNTRCODE CNTRNAME SOILSEL LITH SOILCOMP.PRID" /> <EXTENSION type="Extract" > <EXTRACTPARAMS clip="true" > <OUTPUTFILE file="soter_ca" > <OUTPUTFIELD name="CNTRCODE" alias="CODIGOPAIS" /> <OUTPUTFIELD name="CNTRNAME" alias="NOMBREPAIS" /> <OUTPUTFIELD name="SOILSEL" alias="TIPOSUELO" /> <OUTPUTFIELD name="LITH" alias="LITOLOGIA" /> <OUTPUTFIELD name="SOILCOMP.PRID" alias="ID_SUELO" /> </OUTPUTFILE> </EXTRACTPARAMS> </EXTENSION> *Notas: - El ejemplo completo se encuentra en practica3-2.axl - Un visor ejemplar con funcin de descarga se encuentra en ..\Visores\Extract
Modificacin avanzada de archivos de configuracin 8

BGR - PN 1999.2103.2

Pgina 28 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Prctica 3

Integracin de imgenes Landsat en proyeccin UTMWGS84 o Lambert en el archivo de configuracin

*<MAP dynamic="true" > <PROPERTIES> <FILTERCOORDSYS id="4326" /> <FEATURECOORDSYS id="4326" /> <BACKGROUND color="0,0,0" transcolor="0,0,0"/> </PROPERTIES> <WORKSPACES> <IMAGEWORKSPACE name="jai_ws-17" directory="C:\Curso ArcIMS 5-05 Parte 2\Datos" /> <IMAGEWORKSPACE name="jai_ws-18" directory="C:\Curso ArcIMS 5-05 Parte 2\Datos\etm" /> <SHAPEWORKSPACE name="shp_ws-19" directory="C:\Curso ArcIMS 5-05 Parte 2\Datos" /> </WORKSPACES> <LAYER type="image" name="NASA MODIS 1km (2001)" visible="true" id="ca_modis_1km" minscale="1:2500000"> <DATASET name="ca_1km.sid" type="image" workspace="jai_ws-17" /><COORDSYS id="4326" /> </LAYER> <LAYER type="image" name="ETM N1610" visible="true" id="N1610" maxscale="1:2500000"> <DATASET name="n-16-10.sid" type="image" workspace="jai_ws-18" /><COORDSYS id="32616" /> </LAYER> <LAYER type="image" name="ETM N1615" visible="true" id="N1615" maxscale="1:2500000"> <DATASET name="n-16-15.sid" type="image" workspace="jai_ws-18" /><COORDSYS id="32616" /> </LAYER> <LAYER type="image" name="ETM N1705" visible="true" id="N1705" maxscale="1:2500000"> <DATASET name="n-17-05.sid" type="image" workspace="jai_ws-18" /><COORDSYS id="32617" /> </LAYER> *Nota: El ejemplo complete se encuentra en sismos_geor.axl
Modificacin avanzada de archivos de configuracin 9

BGR - PN 1999.2103.2

Pgina 29 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Administracin avanzada de sitios ArcIMS

Comandos externos Informacin sobre servicios de mapas y catlogos Configuracin y manejo de seguridad

BGR - PN 1999.2103.2

Pgina 30 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Manejo de ArcIMS con comandos externos


Manejo de servicios de mapas, servidores espaciales y servidores virtuales. Se requiere de un archivo ArcXML utilizando el elemento <ADMINCMD> Se utiliza el siguiente comando: >>java com.esri.aims.admincore.cmd.Exec http://servidor uid pwd file filename Ejemplo de un archivo AXL para adicionar e iniciar un servicio de mapas: <?xml version="1.0"?> <ADMINCMD version="1.0"> <SERVICES> <SERVICE type="add" name=Practica2" axl=c:\arcims\axl\practica2.axl vsname="ImageServer1" imgloc=c:\arcims\output imgurl="http://maguncia/output" imagememory=8" cleanup="20" imgtype="JPG" /> <SERVICE type="start" name=Practica2" /> </SERVICES> </ADMINCMD>
Administracin avanzada de ArcIMS 1

Los servicios de mapas, as como los servidores espaciales y virtuales, pueden administrarse desde el smbolo de comandos a partir de aplicaciones Java instalados con el sistema. Adems, es posible obtener informacin sobre las caractersticas del sitio Web a travs de comandos Java. Para administrar los servicios de mapas desde el smbolo de comandos, deben utilizarse los siguientes dos archivos: Un archivo XML con cdigo utilizando el elemento <ADMINCMD> Un archivo batch o de cadena de comandos para facilitar la ejecucin de la solicitud.

Todas estas instrucciones utilizan la siguiente aplicacin Java instalada con el sistema: com.esri.aims.admincore.cmd.Exec. El archivo XML puede contener instrucciones para adicionar, iniciar, parar y borrar servicios de mapas, as como para adicionar o quitar servidores fsicos y virtuales. A continuacin se muestran unos ejemplos de comandos de la aplicacin Java com.esri.aims.admincore. cmd.Exec para obtener informacin sobre el sitio ArcIMS.

BGR - PN 1999.2103.2

Pgina 31 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Informacin de servicios con comandos externos


El comando java com.esri.aims.admincore.cmd.Exec puede ser utilizado para obtener informacin sobre el servidor ArcIMS. Se utiliza el siguiente comando: >>java com.esri.aims.admincore.cmd.Exec http://servidor uid pwd cmd [CMD] Comandos para obtener informacin: cmd SERVICE: Informacin sobre servicios de mapas cmd VSERVER: Informacin sobre los servidores virtuales cmd PSERVER: Informacin sobre cada servidor fsico cmd STATS: Estadsticas sobre capacidades utilizadas y libres Permite salvar la configuracin actual con CMD SAVE

Administracin avanzada de ArcIMS

BGR - PN 1999.2103.2

Pgina 32 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Configuracin y manejo de seguridad


1. Seguridad bsica y configuracin de un contra-fuego Las solicitudes enviadas a travs del conector Servlet no pueden utilizar comandos capaces de corromper el sistema. Las tareas administrativas de ArcIMS estn protegidas con contrasea El servidor Web permite restringir sitios y pginas Web para establecer un acceso selectivo. Los datos fuente crticos no deberan almacenarse en el servidor Web. La incorporacin de un FireWall permite un alto nivel de proteccin. Existen varios tipos de configuracin de un FireWall. Los ms recomendados para ArcIMS son: El contrafuego se ubica entre el Servidor Web y el Internet El contrafuego se ubica entre el Servidor Web y el Servidor de Aplicaciones

Administracin avanzada de ArcIMS

El conector Servlet de ArcIMS permite el envo de cualquier solicitud ArcXML vlida al servidor espacial no hay comprobacin de la autorizacin de las solicitudes. Sin embargo, y debido al hecho de que slo las solicitudes vlidas de ArcXML estn permitidas, no es posible enviar comandos al servidor espacial que puedan corromper la integridad del sistema ArcIMS. No existe ningn peligro para la seguridad de los datos o acceso ilegal. Los usuarios slo pueden acceder a las capas de informacin publicadas en los servicios de mapas, y solamente a travs de cdigo ArcXML. Para aumentar la seguridad de un sitio Web y restringir el acceso a ciertas pginas Web, el software del servidor Web dispone de funcionalidades para implementar mtodos de autentificacin de usuarios con nombre y contrasea. La mayora de los servidores de Web soporta dos tipos de autenticacin: bsica y digest. El ltimo tipo de autenticacin es ms seguro (descifra la contrasea), sin embargo, slo el bsico est implementado en la mayora de los navegadores. El conector Servlet permite la restriccin del acceso no slo a sitios Web, sino tambin a servicios de mapas en particular. El ejemplo de la prctica siguiente explica los pasos a seguir para implementar este nivel de seguridad. El nivel de seguridad ms alto puede implementarse a travs de la instalacin de los denominados Firewall, equipos especialmente configuradas y ubicadas en la entrada a la Web de una institucin para controlar cualquier acceso desde el Internet.

BGR - PN 1999.2103.2

Pgina 33 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Configuracin y manejo de seguridad


2. Control de acceso Los conectores Servlet, Java y ActiveX permiten restringir el acceso a servicios de mapas Los dos conectores utilizan una lista de control de acceso (ACL) para establecer restricciones y criterios de autenticacin. Existen dos tipos de ACL: basada en un archivo de texto y basado en una base de datos (con acceso va JDBC). La ACL basada en texto es un archivo XML, fcil de generar y que no requiere de otros componentes. Pasos para establecer un control de acceso via ACL basada en XML: Paso 1: Crear un nuevo archivo de configuracin de mapas. Paso 2: Editar el archivo Esrimap_prop en Paso 3: Crear un archivo XML (el archivo ACL) Paso 4: Ajustar autenticacin en IIS para la carpeta Jakarta
Administracin avanzada de ArcIMS 4

Los conectores ActiveX, Java y Servlet permiten restringir el acceso a servicios de mapas para que solo usuarios autenticados puedan accederlos. Los conectores ActiveX y Servlet proveen autenticacin va HTTP, el conector Java HTTP o TCP/IP. De forma predefinida, la autenticacin est deshabilitada y todas las peticiones estn enviadas al servidor de Aplicaciones por el conector. Sin embargo, los conectores pueden configurarse para verificar la autenticacin del cliente en base a: - nombre de usuario y contrasea - nmero IP del cliente - privilegios de acceso Para este fin, los conectores utilizan listas de control de acceso (ACL) para designar servicios libres y restringidos y los criterios de autenticacin, tales como nombres de usuarios y claves de acceso. Existen dos tipos de ACL: basadas en archivos o basadas en Java Database Connectivity (JDBC). La ventaja de ACL basadas en archivo es que se generan y modifican fcilmente con un editor de texto y que no se requiere de componentes adicionales. El ACL se crea en formato de un archivo XML y su contenido se carga a la memoria del sistema al iniciar el motor Servlet. Al modificar el archivo, hay que reiniciar el motor. En caso de ACL basada en JDBC, los permisos se almacenan en una base de datos relacional (SGBDR) accedido a travs del dispositivo JDBC. Es recomendado utilizar esta forma de ACL en caso de muchos usuarios, modificaciones frecuentes y por requerimientos de confidencialidad de datos personales.

BGR - PN 1999.2103.2

Pgina 34 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Prctica 1

Manejo de ArcIMS y obtencin de informacin sobre servicios y servidores con comandos externos

java com.esri.aims.admincore.cmd.Exec http://maguncia admin admin file .. .. <?xml version="1.0"?> <ADMINCMD version="1.0"> <SERVICES> <SERVICE type="stop" name="test" /> <SERVICE type="remove" name="test" /> </SERVICES> </ADMINCMD>

java com.esri.aims.admincore.cmd.Exec http://maguncia admin admin CMD SAVE java com.esri.aims.admincore.cmd.Exec http://maguncia admin admin CMD SERVICE java com.esri.aims.admincore.cmd.Exec http://maguncia admin admin CMD MONITOR java com.esri.aims.admincore.cmd.Exec http://maguncia admin admin CMD VSERVER
Administracin avanzada de ArcIMS 5

Prctica 2

Creacin de un servicio de mapas con restricciones de acceso definidos en un ACL en formato XML

Paso 1: Crear un nuevo archivo de configuracin de mapas. Paso 2: Editar el archivo Esrimap_prop en: <ArcIMS>\Connectors\Servlet enable=True Habilita el conecetor Servlet authenticate=True Habilita la autentificacin del conector servlet authMethods=Basic - Basic y Digest authenticateWithSessions=True Ms eficiente para los clientes sessionTimeout=120 - 120 segundos es un valor adecuado aclFileName=<ruta completa al archivo ACL>/aimsacl.xml realm=Servicios Georiesgos - Ttulo de la ventana de dilogo Paso 3: Crear un archivo XML (el archivo ACL) <?xml version="1.0"?> <AIMSACL> <USER name=* services=Practica1, Practica2 /> <USER name=privado password=qwert99 services=Sismos_Ineter trustedclients="192.168.0.1-192.168.0.255" /> </AIMSACL>

Administracin avanzada de ArcIMS

BGR - PN 1999.2103.2

Pgina 35 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Consultas de la informacin espacial y de atributos

La herramienta sendArcXML Informacin sobre servicios Navegacin y representacin de las capas: Zoom y Pan Cambiar el orden de despliegue de las capas Manipular la visibilidad de las capas Cambio de simbologa Visualizacin en dependencia de escala Filtrar los datos Cambiar las propiedades de la imagen de salida Generacin de capas dinmicas Desplegar subsets de capas Agregar nuevos juegos de datos Agregar capas tipo acetato Creacin de la leyenda del mapa Extraccin de datos Consulta de atributos y de objetos espaciales

BGR - PN 1999.2103.2

Pgina 36 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Consultas de la informacin espacial y de atributos

La herramienta sendArcXML enva peticiones ArcXML al servidor ArcIMS y despliega las respuestas en formato texto

Consultas de la informacin espacial y de atributos

La herramienta sendArcXML de ESRI permite enviar consultas al servidor espacial y observar sus respuestas. Utiliza el ciclo completo de consulta-respuesta de los clientes HTML estndares de ArcIMS. sendArcXML es un ayudante verstil el el desarrollo de aplicaciones que utilizan ArcXML para su comunicacin con servicios ArcIMS. La herramienta es programada en HTML y Javascript y debe instalarse en la misma ruta de los sitios Web de ArcIMS. El archivo sendArcXMLparam.js contiene una serie de variables bsicas que deben ajustarse antes de utilizar la herramienta.

BGR - PN 1999.2103.2

Pgina 37 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Obtencin de informacin sobre servicios de mapas


Los elementos <GETCLIENTSERVICES/> y <GET_SERVICE_INFO/> solicitan informacin sobre servicios existentes y sus contenidos. GETCLIENTSERVICES (Catalog) produce un catlogo de los servicios de mapas GET_SERVICE_INFO (ServiceInfo) es una consulta que solicita informacin sobre el contenido y las propiedades de un servicio de mapas. GET_SERVICE_INFO tiene cinco atributos opcionales que determinan el tipo de informacin sobre las capas:

envelope - informacin sobre la extensin (zoom) del servicio de mapas fields - descripcin de la estructura de las tablas de atributos renderer - informacin sobre la simbologa de capas extensions - informacin sobre extensiones definidas para capas (p.ej. EXTRACT) dpi - recalcula escalas mnimas y mximas para diferentes resoluciones
El resultado de esta consulta est contenido en la respuesta <SERVICEINFO>.
Consultas de la informacin espacial y de atributos 2

Ejemplo de una respuesta SERVICES: <?xml version="1.0"?> <ARCXML version="1.1"> <RESPONSE> <SERVICES> <SERVICE name="CA_OV" servicegroup="ImageServer1" access="PUBLIC" type="ImageServer" version="" status="ENABLED" > <IMAGE type="JPG" /> <ENVIRONMENT> <LOCALE country="US" language="en" variant="" /><UIFONT name="SansSerif" /> </ENVIRONMENT> <CLEANUP interval="10" /> </SERVICE> <SERVICE name="Practica" servicegroup="ImageServer1" access="PUBLIC" type="ImageServer" version="" status="ENABLED" > <IMAGE type="JPG" /> <ENVIRONMENT> <LOCALE country="US" language="en" variant="" /><UIFONT name="SansSerif" /> </ENVIRONMENT> <CLEANUP interval="10" /> </SERVICE> <SERVICE name="Sismos_INETER" servicegroup="ImageServer1" access="PUBLIC" type="ImageServer" version="" status="ENABLED" > <IMAGE type="JPG" />

BGR - PN 1999.2103.2

Pgina 38 de 83

Materiales curso prctico ArcIMS


<ENVIRONMENT> <LOCALE country="US" language="en" variant="" /><UIFONT name="SansSerif" /> </ENVIRONMENT> <CLEANUP interval="10" /> </SERVICE> </SERVICES> </RESPONSE> </ARCXML>

mayo de 2005

Ejemplo de una respuesta SERVICEINFO: <?xml version="1.0" encoding="UTF-8"?> <ARCXML version="1.1"> <RESPONSE> <SERVICEINFO> <ENVIRONMENT> <LOCALE language="en" country="US" /><UIFONT name="SansSerif" color="0,0,0" size="12" style="regular" /> <SEPARATORS cs=" " ts=";"/><CAPABILITIES forbidden="" disabledtypes=""/> <SCREEN dpi="96"/><IMAGELIMIT pixelcount="2621440" /> </ENVIRONMENT> <PROPERTIES> <ENVELOPE minx="-92.232" miny="7.211" maxx="-77.153" maxy="17.818" name="Initial_Extent" /> <MAPUNITS units="decimal_degrees" /> </PROPERTIES> <LAYERINFO type="featureclass" visible="true" name="adm_l2" id="2"> <FCLASS type="polygon"></FCLASS> </LAYERINFO> <LAYERINFO type="featureclass" visible="true" name="Pases" id="1"> <FCLASS type="polygon"></FCLASS> </LAYERINFO> <LAYERINFO type="featureclass" visible="false" name="adm_l3" id="2b"> <FCLASS type="polygon"></FCLASS> </LAYERINFO> <LAYERINFO type="featureclass" visible="true" name="latlong" id="3"> <FCLASS type="line"></FCLASS> </LAYERINFO> <LAYERINFO type="featureclass" visible="true" name="viasca_cdcw" id="9"> <FCLASS type="line"></FCLASS> </LAYERINFO><LAYERINFO type="featureclass" visible="true" name="Ciudades" id="5"> <FCLASS type="point"></FCLASS> </LAYERINFO> </SERVICEINFO> </RESPONSE> </ARCXML>

BGR - PN 1999.2103.2

Pgina 39 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Generacin de la imagen del mapa


Uno de los principales elementos en peticiones ArcXML es <GET_IMAGE>. GET_IMAGE genera la imagen del mapa y permite modificar contenido y propiedades de las capas. La respuesta a una peticin GET_IMAGE es <IMAGE>. La estructura bsica de GET_IMAGE: <GET_IMAGE autoresize ="true | false" [false] show ="layers" [layers] > <PROPERTIES... /> <ENVIRONMENT... /> (m) <LAYER... /> <WORKSPACES... /> </GET_IMAGE >
Consultas de la informacin espacial y de atributos 3

La consulta GET_IMAGE (respuesta IMAGE) es la principal funcin para definir o modificar la simbologa (relleno, smbolos) de un mapa. GET_IMAGE crea un mapa en un archivo tipo imagen en el servidor espacial y provee informacin sobre el nombre y ruta de la imagen del mapa (image map). Las solicitudes de GET_IMAGE son enviadas al servidor virtual tipo imagen. Realizando cambios en los parmetros PROPERTIES y LAYER, es posible cambiar el despliegue de un servicio de mapas.

BGR - PN 1999.2103.2

Pgina 40 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Navegacin y representacin de capas


1. Zoom y Pan con GET_IMAGE y ENVELOPE Ejemplo: <?xml version="1.0" encoding="UTF-8"?> <ARCXML version="1.1"> <REQUEST> <GET_IMAGE show=layers autoresize=true > <PROPERTIES> <ENVELOPE minx="-92.964" miny="6.941" maxx="-76.481" maxy="18.086"/> <IMAGESIZE width=800" height=600" /> <BACKGROUND color="0,153,255" transcolor="0,153,255" /> </PROPERTIES> </GET_IMAGE> </REQUEST> </ARCXML>

Consultas de la informacin espacial y de atributos

Las funciones Zoom y Pan en un cliente de mapas se realiza a travs del cambio de la extensin del mapa. La extensin de un mapa se modifica a partir de la definicin de nuevas coordenadas min y max en el parmetro ENVELOPE de la clusula PROPERTIES de GET_IMAGE. Para cambiar el tamao del mapa resultante se modifica el parmetro IMAGESIZE.

BGR - PN 1999.2103.2

Pgina 41 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Navegacin y representacin de capas


2. Orden y visibilidad de capas: LAYERLIST y LAYERDEF Ejemplo: <ARCXML version="1.1"> <REQUEST> <GET_IMAGE> <PROPERTIES> <ENVELOPE minx="-93" miny=6" maxx="-76" maxy="19" /> <IMAGESIZE width="500" height="400" /> <LAYERLIST order="true"> <!-- nodefault=true --> <LAYERDEF id="1" visible="true" /> <!--Pases--> <LAYERDEF id="2" visible="true" /> <!--Departamentos--> <LAYERDEF id=2b" visible=false" /> <!--Municipios--> <LAYERDEF id=5" visible="true" /> <!--Ciudades--> </LAYERLIST> </PROPERTIES> </GET_IMAGE> </REQUEST> </ARCXML>
Consultas de la informacin espacial y de atributos 4

LAYERLIST y LAYERDEF se utilizan en una consulta GET_IMAGE para manipular la apariencia de capas en el mapa resultante. Algunas de las modificaciones comunes son: Definir la visibilidad de capas Cambiar la simbologa de capas Realizar consultas SQL con las capas Cambiar el orden de despliegue de capas

El orden de las capas configuradas en un archivo de configuracin puede modificarse con los atributos nodefault y order en el elemento LAYERLIST. Con el atributo nodefault="true", se despliegan solamente las capas indicadas en LAYERLIST pero en el orden establecido en el archivo de configuracin. Para cambiar el orden de despliegue de las capas hay que ajustarse el atributo order=true. En este modo, solamente las capas indicadas en elementos LAYERDEF se despliegan y en el orden establecido en LAYERLIST. El cambio de orden de capas no afecta el orden en la leyenda.

BGR - PN 1999.2103.2

Pgina 42 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Navegacin y representacin de capas


3a. Modificar la simbologa de capas La estructura bsica del elemento RENDERER es la siguiente: <RENDERER> <SYMBOL /> </RENDERER> ArcIMS (y ArcXML) dispone de seis tipos de RENDERER: SIMPLERENDERER SIMPLELABELRENDERER VALUEMAPRENDERER VALUEMAPLABELRENDERER GROUPRENDERER SCALEDEPENDENTRENDERER El elemento GROUPRENDERER se utiliza para crear simbologa compleja y para la creacin de smbolos con etiquetas.
Consultas de la informacin espacial y de atributos 5

ArcXML maneja simbologa y etiquetas (label) a partir de los elementos tipo RENDERER. Cada RENDERER incluye un smbolo o una etiqueta, dependiendo del tipo de elemento geogrfico a simbolizar. La estructura bsica del elemento RENDERER es la siguiente: <RENDERER> <SYMBOL /> </RENDERER> ArcIMS (y ArcXML) dispone de seis diferentes tipos de RENDERER: SIMPLERENDERER SIMPLELABELRENDERER VALUEMAPRENDERER VALUEMAPLABELRENDERER GROUPRENDERER SCALEDEPENDENTRENDERER VALUEMAPRENDERER y VALUEMAPLABELRENDERER disponen de tres subelementos para crear mapas clasificados: - RANGE - EXACT - OTHER Cada RENDERER puede contener solamente un tipo de smbolo. Para crear simbologa compleja se combinan varios RENDERER en un GROUPRENDERER.

BGR - PN 1999.2103.2

Pgina 43 de 83

Materiales curso prctico ArcIMS

mayo de 2005

A continuacin se muestran los smbolos que pueden ser utilizados en SIMPLERENDERER y VALUEMAPRENDERER: Capas de puntos: SIMPLEMARKERSYMBOL RASTERMARKERSYMBOL TRUETYPEMARKERSYMBOL Capas de lneas: HASHLINESYMBOL SIMPLELINESYMBOL + Smbolos de capas de puntos Capas de polgonos: GRADIENTFILLSYMBOL RASTERFILLSYMBOL SIMPLEPOLYGONSYMBOL + Smbolos de capas de puntos y de lneas Los siguientes smbolos pueden ser utilizados para etiquetas en SIMPLELABELRENDERER y VALUEMAPLABELRENDERER: CALLOUTMARKERSYMBOL CHARTSYMBOL RASTERSHIELDSYMBOL SHIELDSYMBOL TEXTSYMBOL El elemento GROUPRENDERER se utiliza si se requiere combinar dos a ms RENDERER para crear simbologa compleja. De la misma forma, se aplica GROUPRENDERER para la creacin de smbolos en conjunto con etiquetas. El ejemplo a continuacin muestra la creacin de un GROUPRENDERER compuesto por dos SIMPLERENDERER dibujando polgonos en color opaco con una trama de lneas cruzadas y un SIMPLELABELRENDERER generando una etiqueta para cada polgono.

BGR - PN 1999.2103.2

Pgina 44 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Navegacin y representacin de capas


3b. Modificar la simbologa de capas
<GET_IMAGE> <PROPERTIES> <ENVELOPE minx="-93" miny="6" maxx="-76" maxy="19" /> <IMAGESIZE width="800" height="600" /> <LAYERLIST> <LAYERDEF id="1" visible="true" > <GROUPRENDERER> <SIMPLERENDERER> <SIMPLEPOLYGONSYMBOL fillcolor="255,255,204" filltype="solid" /> </SIMPLERENDERER> <SIMPLERENDERER> <SIMPLEPOLYGONSYMBOL fillcolor="0,27,127" filltype="cross" /> </SIMPLERENDERER> <SIMPLELABELRENDERER field="LONG_NAME"> <TEXTSYMBOL fontstyle="bold" fontsize="14" /> </SIMPLELABELRENDERER> </GROUPRENDERER> </LAYERDEF> <LAYERDEF id="2" visible="false" /> <LAYERDEF id="2b" visible="false" /> <LAYERDEF id="5" visible="true" /> </LAYERLIST> </PROPERTIES> </GET_IMAGE>
Consultas de la informacin espacial y de atributos 6

La simbologa de capas puede modificarse mediante la definicin de elementos RENDERER en el elemento LAYERDEF. Sin definicin de elementos RENDERER, el mapa se despliega en la simbologa predefinida en el archivo de configuracin. La sintaxis para la definicin de RENDERER es igual a la de los archivos de configuracin.

BGR - PN 1999.2103.2

Pgina 45 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Navegacin y representacin de capas


4. Filtrar datos con SPATIALQUERY Consultas espaciales y de atributos se definen en el elemento <LAYERDEF> a travs del elemento <SPATIALQUERY> <LAYERLIST order ="true" > <LAYERDEF id="1" visible="true" /> <LAYERDEF id="2" visible="true" /> <LAYERDEF id="5" > <SPATIALQUERY where="(STATUS = 'National capital' OR POP_RANK >= 4)"> <SPATIALFILTER relation="area_intersection"> <ENVELOPE minx="-93" miny="13" maxx="-86" maxy="19" /> </SPATIALFILTER> </SPATIALQUERY> <SIMPLERENDERER> <SIMPLEMARKERSYMBOL type="star" color="255,0,0" width="16" /> </SIMPLERENDERER> </LAYERDEF> </LAYERLIST>

Consultas de la informacin espacial y de atributos

Consultas espaciales y de atributos se definen en el elemento <LAYERDEF>. Para seleccionar o filtrar elementos espaciales en base a sus atributos, se define una consulta en un elemento <SPATIALQUERY>. Para consultar elementos espaciales en base a su ubicacin, un filtro espacial <SPATIALFILTER> puede incluirse en <SPATIALQUERY>. La expresin en el atributo where corresponde al sntaxis de clausulas SQL. Algunos de los operadores utilizados en las clausulas where (y tambin en leyendas y nombres de capas) deben mascararse con los siguientes caracteres (escape characters): Y tipogrfica (&) se mascara a &amp; Doble comillas (") se mascara a &quot; Comillas (') se mascara a &apos; Mayor de (>) se mascara a &gt; Menor de (<) se mascara a &lt;

Los siguientes operadores SQL pueden utilizarse en una clausula where: =, >, >=, <, <=, <>, LIKE, BETWEEN, IN, NOT IN. ORDER BY y DISTINCT no son vlidos. Caracteres especiales de localizacin nacional deben mascararse con su cdigo ASCII: por ejemplo se mascara con &#209; SPATIALQUERY se utiliza tambin para relacionar archivos DBF con shapefiles o tablas ArcSDE. Para relacionar tablas DBF a un shapefile se utiliza los atributos jointables y joinexpression.

BGR - PN 1999.2103.2

Pgina 46 de 83

Materiales curso prctico ArcIMS

mayo de 2005

La sintaxis de joinexpression es "To=[campo de la tabla principal], From=[campo de la tabla secundaria], Type=[exact or scan]". Los parametros exact y scan: Exact: Scan: para relaciones uno-a-uno y uno-a-varios para relaciones varios-a-uno y varios-a-varios

BGR - PN 1999.2103.2

Pgina 47 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Navegacin y representacin de capas


5. Corredores espaciales (buffer) <GET_IMAGE> <PROPERTIES> <ENVELOPE minx="-88.1" miny="10.6" maxx="-82.2" maxy="14.6" /> <IMAGESIZE width="800" height="600" /> </PROPERTIES> <LAYER type="featureclass" name="elBuffer" id="viasBuf"> <DATASET fromlayer="9" /> <SPATIALQUERY where="(VIAS_DCW_L&gt;61929 AND VIAS_DCW_L&lt;61989)" > <BUFFER distance="5000" bufferunits="METERS" /> </SPATIALQUERY> <SIMPLERENDERER> <SIMPLEPOLYGONSYMBOL fillcolor="255,0,0" filltransparency=".5" boundarycolor="255,0,0" boundarywidth="2" /> </SIMPLERENDERER> </LAYER> </GET_IMAGE>

Consultas de la informacin espacial y de atributos

Si se usa el elemento BUFFER en una consulta espacial (<SPATIALQUERY>), el servidor espacial crear un polgono (corredor, rea de inters) alrededor de los elementos geogrficos seleccionados por la consulta. BUFFER en combinacin con TARGETLAYER crea un corredor alrededor de los elementos seleccinados por SPATIALQUERY y selecciona los elementos de la capa especificada en TARGETLAYER que se encuentran dentro de este corredor. Integrado en el elemento <SPATIALFILTER>, BUFFER define un nuevo polgono de filtro espacial. Este polgono cambiar la geometra del filtro espacial existente y se usar como nuevo filtro.

BGR - PN 1999.2103.2

Pgina 48 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Navegacin y representacin de capas


6. Proyecciones <GET_IMAGE> <PROPERTIES> <ENVELOPE minx="-88.1" miny="10.6" maxx="-82.2" maxy="14.6" /> <IMAGESIZE width="800" height="600" /> <FILTERCOORDSYS id="4326" /> <!-- Geogrfico --> <FEATURECOORDSYS id="32616" /> <!-- UTM 16N --> </PROPERTIES> <LAYER type="featureclass" name="elBuffer" id="viasBuf"> <DATASET fromlayer="9" /> <SPATIALQUERY where="(VIAS_DCW_L&gt;61929 AND VIAS_DCW_L&lt;61989)" > <BUFFER distance="5000" bufferunits="METERS" /> </SPATIALQUERY> <SIMPLERENDERER> <SIMPLEPOLYGONSYMBOL fillcolor="255,0,0" filltransparency=".5" boundarycolor="255,0,0" boundarywidth="2" /> </SIMPLERENDERER> </LAYER> </GET_IMAGE>
Consultas de la informacin espacial y de atributos 9

En peticiones, al igual como en los archivos de configuracin, la proyeccin de un mapa puede modificarse con los siguientes elementos: COORDSYS FEATURECOORDSYS FILTERCOORDSYS

En caso de peticiones, FILTERCOORDSYS especifica el sistema de coordenadas utilizadas en elementos de la peticin (p. ej. en ENVELOPE) y debe diferenciarse de FEATURECOORDSYS para realizar una reproyeccin dinmica del mapa solicitada. En presente ejemplo, todas la peticin utiliza coordenadas Geogrficas, y por lo tanto se especifica el ID 4326. FEATURECOORDSYS especifica a cual sistema de coordenadas debe transformarse el servicio de mapas. En nuestro ejemplo se trata del ID 32616que es el identificador de UTM 16N WGS84. Se debe tomar en cuenta que para capas o objetos sin definicin del sistema de coordenadas en un en el archivo de configuracin o archivo .prj hay que especificar el elemento COORDSYS.

BGR - PN 1999.2103.2

Pgina 49 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Generacin de capas dinmicas


1. Desplegar un subconjunto de una capa con el elemento <LAYER> <GET_IMAGE> <PROPERTIES> <ENVELOPE minx="-93" miny="6" maxx="-76" maxy="19" /> <IMAGESIZE width="800" height="600" /> <LAYERLIST> <LAYERDEF id="1" visible="false" /> <!-- visible=true --> <LAYERDEF id="2" visible="false" /> <LAYERDEF id="2b" visible="false" /> <LAYERDEF id="5" visible="true" /> </LAYERLIST> </PROPERTIES> <LAYER type="featureclass" name="SelPais" visible="true" id="10"> <DATASET fromlayer="1" /> <SPATIALQUERY where="LONG_NAME=&apos;Nicaragua&apos;" /> <SIMPLERENDERER> <SIMPLEPOLYGONSYMBOL filltype="solid" fillcolor="255,255,0"/> </SIMPLERENDERER> </LAYER> </GET_IMAGE>
Consultas de la informacin espacial y de atributos 10

A partir del parmetro LAYER de la consulta GET_IMAGE, se pueden adicionar capas (layer) dinmicas a las ya existentes en un servicio de mapas. Existen dos tipos de capas dinmicas: Para agregar una copia de una capa existente en un servicio de mapas con el fin de mostrar un subconjunto de datos sobre los ya existentes. Para generar objetos grficos o cartogrficos a desplegar en una capa acetato sobre el mapa original.

En el presente ejemplo, la capa dinmica creada despliega el polgono correspondiendo a Nicaragua en color amarillo superpuesto sobre el mapa original, lo que podra representar una seleccin espacial o por atributos.

BGR - PN 1999.2103.2

Pgina 50 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Generacin de capas dinmicas


2. Agregar nuevos juegos de datos <GET_IMAGE> <PROPERTIES> <ENVELOPE minx="-93" miny="6" maxx="-76" maxy="19" /> <IMAGESIZE width="800" height="600" /> <LAYERLIST> <LAYERDEF id="1" visible="true" /> <LAYERDEF id="2" visible="false" /> <LAYERDEF id="2b" visible="false" /> <LAYERDEF id="5" visible="true" /> </LAYERLIST> </PROPERTIES> <LAYER type="featureclass" name ="V&#237;as" visible="true" id="10"> <DATASET name="viasca_cdcw" type="line" workspace="shp_ws-70" /> <SIMPLERENDERER> <SIMPLELINESYMBOL width="1" captype="round" color="255,0,0" /> </SIMPLERENDERER> </LAYER> </GET_IMAGE>
Consultas de la informacin espacial y de atributos 11

Al especificar el nombre de un archivo Shape o capa ArcSDe en el elemento DATASET, es posible agregar capas no existentes en el servicio de mapas. Todos los tipos de capa son vlidos: puntos, lneas, polgonos, e imagen. Para poder agregar capas dinmicas es necesario incluir el parmetro dynamic="true en el elemento MAP del archivo de configuracin de mapas: <MAP dynamic="true" > Nota importante: Las capas dinmicas slo pueden desplegarse. No es posible realizar consultas (Query, Identify, Search). La alternativa es incluir todos los datos en el archivo de configuracin y utilizar LAYERDEF para habilitar o deshabilitar el despliegue de las capas. Para agregar datos nuevos, el elemento DATASET debe especificar un WORKSPACE. Este WORKSPACE debe configurarse en el archivo de configuracin.

BGR - PN 1999.2103.2

Pgina 51 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Generacin de capas dinmicas


3. Generacin de capas acetato para el despliegue de objetos grficos <GET_IMAGE> <PROPERTIES> <ENVELOPE minx="-93" miny="6" maxx="-76" maxy="19" /> <IMAGESIZE width="800" height="600" /> <BACKGROUND color="0,0,255" /> </PROPERTIES> <LAYER type="acetate" name="acetate" id="acetate"> <OBJECT units="database"> <TEXT coords="-89.5 11" label="Oc&#233;ano Pac&#237;fico"> <TEXTMARKERSYMBOL fontstyle="bolditalic" fontsize="16" /> </TEXT> </OBJECT> <OBJECT units="pixel"> <NORTHARROW type="1" size="35" coords="75 75" /> </OBJECT> </LAYER> </GET_IMAGE>
Consultas de la informacin espacial y de atributos 12

Los Acetate Layers (capas transparentes) pueden desplegar elementos geomtricos, grficos o cartogrficos sobre un mapa. Este tipo de capas slo son visibles en los visores HTML de ArcIMS o los que trabajan con conectores ActiveX, ColdFusion, Java y .NET. ArcExplorer y el visor Java no las despliegan Los Acetate Layers estn compuestos por uno o varios OBJETOS, tales como lneas, smbolo de norte, puntos, polgonos, barra de escala y texto. Capas acetato son diseados para desplegar una cantidad limitada de objetos si se generan un cantidad de objetos demasiada grande, el rendimiento del sistema puede deteriorarse. Las capas acetato se componen de uno o varios elementos OBJECT definidos en un elemento LAYER especificando el atributo type=acetate. La estructura bsica de los elementos OBJECT es la siguiente: <OBJECT units ="database | pixel - unidades de coordenadas lower ="double" [1:1] - escala mnima upper ="double" [1:infinito] - escala mxima > <LINE... /> | <NORTHARROW... /> | <POINT... /> /| <POLYGON... /> | <SCALEBAR... /> | <TEXT... /> | <COORDSYS... /> </OBJECT >

BGR - PN 1999.2103.2

Pgina 52 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Generacin de la leyenda del mapa


1. Utilizacin de los elementos <LEGEND> y <DRAW> LEGEND en combinacin con DRAW pueden integrarse en una solicitud tipo GET_IMAGE para solicitar una imagen del mapa y/o una de la leyenda <ARCXML version="1.1"> <REQUEST> <GET_IMAGE> <PROPERTIES> <ENVELOPE minx="-93" miny="6" maxx="-76" maxy="19" /> <IMAGESIZE width="800" height="600" /> <LEGEND reverseorder="true" backgroundcolor="233,233,233" title="Leyenda" font="Times New Roman" titlefontsize="16" layerfontsize="12" height="60" autoextend="true" columns="3" width="300" cansplit="true" splittext="(cont.)" /> <DRAW map="false" /> <!-- inhabilitar generacin del mapa --> </PROPERTIES> </GET_IMAGE> </REQUEST> </ARCXML>
Consultas de la informacin espacial y de atributos 13

LEGEND puede utilizarse en una peticin GET_IMAGE para generar una leyenda e incluirla en la respuesta al mapa solicitado. LEGEND crea un archive tipo imagen (GIF, JPG, PNG) adicional y devuelve informacin sobre nombre y ruta de este archivo. El elemento DRAW puede utilizarse para solicitar ambos, una leyenda y un mapa. Se dispone de una gran cantidad de atributos que pueden emplearse para cambiar la apariencia y el diseo de la leyenda: Si el elemento padre es IMAGE: file ="string" type ="gif | jpg | png | png8" url ="string" Si el elemento padre es PROPERTIES con un servicio tipo Image: antialiasing ="true | false" [true] autoextend ="true | false" [false] backgroundcolor ="0,0,0 - 255,255,255" cansplit ="true | false" [false] cellspacing ="integer" [2] columns ="integer" [1] display ="true | false" [true] font ="Any system font" [Arial] height ="1 - NNN" [300] layerfontsize ="integer" [10]

BGR - PN 1999.2103.2

Pgina 53 de 83

Materiales curso prctico ArcIMS


reverseorder ="true | false" [false] splittext ="string" [(cont)] swatchheight ="integer" [14] swatchwidth ="integer" [18] title ="string" titlefontsize ="integer" [12] transcolor ="0,0,0 - 255,255,255" valuefontsize ="integer" [8] width ="1 - NNN" [125] > (m) <LAYERS... /> </LEGEND>

mayo de 2005

LEGEND es solamente vlido con servicios tipo IMAGE o ArcMap Image en el visor HTML de ArcIMS o implementaciones propias.

BGR - PN 1999.2103.2

Pgina 54 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Generacin de la leyenda del mapa


2. Capas y capas dinmicas en leyendas
<GET_IMAGE> <PROPERTIES> <ENVELOPE minx="-89.95" miny="10.64" maxx="-81.40" maxy="16.42"/> <IMAGESIZE width="800" height="600" /> <LAYERLIST> <LAYERDEF id="0" visible="true" /><LAYERDEF id="1" visible="true" /><LAYERDEF id="2" visible="true" />

<LAYERDEF id="2b" visible="true" /> <!-- Habilita municipios en la leyenda -->


<LAYERDEF id="5" visible="true" /><LAYERDEF id="10" visible="true" /><LAYERDEF id="3" visible="true" /> </LAYERLIST> <LEGEND backgroundcolor="233,233,233" title="Leyenda" font="Times New Roman" height="60" autoextend="true" columns="3" width="300" cansplit="true" splittext="(cont.)" >

<LAYERS> <LAYER id="3"/> <!-- Deshabilita Lat/Long en la leyenda --> </LAYERS>


</LEGEND> <DRAW map="false" /> </PROPERTIES> <LAYER type="featureclass" name ="V&#237;as" visible="true" id="10"> <DATASET name="viasca_cdcw" type="line" workspace="shp_ws-33" /> <SIMPLERENDERER> <SIMPLELINESYMBOL width="1" captype="round" color="255,0,0" /> </SIMPLERENDERER> </LAYER> </GET_IMAGE>
Consultas de la informacin espacial y de atributos 14

Capas cuya visibilidad est inhabilitada en el archivo de configuracin o va los elementos <LAYERLIST> y <LAYERDEF> no aparecen en la leyenda. El elemento LAYERS puede utilizarse para eliminar capas de la leyenda sin modificar las capas en el mapa principal. Capas dinmicas que incluyen un elemento DATASET estn incluidas en la leyenda. Capas acetato no se incluyen el la leyenda.

BGR - PN 1999.2103.2

Pgina 55 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Extraccin de mapas y descarga de archivos Shape


Mientras que <GET_IMAGE> genera una imagen del servicio de mapas, <GET_EXTRACT> puede utilizarse para extraer y descargar capas en formato Shapefile.
<GET_EXTRACT> <PROPERTIES> <ENVELOPE minx="-89.95" miny="10.64" maxx="-81.40" maxy="16.42"/> <FILTERCOORDSYS id="4326" /> <FEATURECOORDSYS id="32616" /> <!-- Generar Shapefiles en UTM 16N --> <LAYERLIST> <LAYERDEF id="0" visible="true" /> <LAYERDEF id="1" visible="true" /> <LAYERDEF id="2" visible="true" /> <LAYERDEF id="2b" visible="false" /> <!-- No extraer municipios --> <LAYERDEF id="5" visible="true" /> <LAYERDEF id="3" visible="false" /> <!-- No extraer lat/long --> </LAYERLIST> </PROPERTIES> <LAYER type="featureclass" name ="V&#237;as" visible="true" id="10"> <!-- Extraer vas --> <DATASET name="viasca_cdcw" type="line" workspace="shp_ws-33" /> <SIMPLERENDERER> <SIMPLELINESYMBOL width="1" captype="round" color="255,0,0" /> </SIMPLERENDERER> </LAYER> </GET_EXTRACT>
Consultas de la informacin espacial y de atributos 15

El propsito de GET_EXTRACT y EXTRACT es el de extraer una o varias capas (layer) de un servicio de mapas tipo imagen y convertirlas en archivos tipo shape. GET_EXTRACT es muy similar a GET_IMAGE respecto a sus elementos y propiedades ArcXML. Una solicitud GET_EXTRACT identifica las capas a extraer junto con la extensin espacial y filtros definidos en el archivo de configuracin de mapas. Una vez extrado, el archivo tipo shape es comprimido en formato ZIP y guardado en una ruta definida en la solicitud. Para crear un servicio de mapas con capacidad de descarga de capas, hay que definir una extensin Extract en el archivo de configuracin de mapas. Para modificar el contenido o simbologa del mapa extrado, pueden utilizarse en una solicitud tipo GET_EXTRACT los siguientes parmetros: IMAGESIZE LAYERLIST y LAYERDEF SPATIALQUERY (o QUERY) LAYER OUTPUT Extraer mapas dependiendo de la escala Definir capas y simbologa a extraer Crear filtros antes de extraer los datos Adicionar capas antes de extraer los datos Cambiar la ruta y nombre del archivo a descargar

Las solicitudes de GET_EXTRACT se envan al servidor tipo Extract de la siguiente manera: http://miServidor/servlet/com.esri.esrimap.Esrimap?ClientVersion=9.0&ServiceName=miServicoDeMapas& CustomService=Extract&Form=True&Encode=True

BGR - PN 1999.2103.2

Pgina 56 de 83

Materiales curso prctico ArcIMS

mayo de 2005

IMAGESIZE calcula cuales capas extraer basado en dependencias de la escala. Si una capa est fuera del rango de la escala calculado en base a IMAGESIZE, la capa no se extrae. El valor predefinido de IMAGESIZE es 400 x 300 Pixel. Capas inhabilitadas en LAYERDEF con el atributo visible=false no se extraen. Si el atributo nodefault=true en el elemento LAYERLIST, solo las capas listadas en LAYERLIST se extraen. SPATIALQUERY puede utilizarse para filtrar y limitar los elementos y campos (con el atributo subfields) de una capa a extraer. Para limita el nmero de elementos (features) a extraer debe ajustarse el atributo featurelimit. Al igual como con la solicitud GET_IMAGE, los elementos COORDSYS, FEATURECOORDSYS, FILTERCOORDSYS y COORDSYS pueden utilizarse para reproyectar los datos antes de extraerlos a formato Shape.

BGR - PN 1999.2103.2

Pgina 57 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Generacin de mapas con servicios tipo ArcMap


A travs de los elementos <GET_IMAGE> y <GET_LAYOUT> pueden accederse a los marcos de datos (dataframes) definidos en un proyecto ArcMap publicado como ArcMap Image Service.
<?xml version="1.0" encoding="UTF-8"?> <ARCXML version="1.1"> <REQUEST> <GET_IMAGE dataframe="Geolog&#237;a"> <PROPERTIES> <LAYERLIST> <LAYERDEF id="9" visible="true" /> <!--Geo-poly--> <LAYERDEF id="8" visible="true" > <!--Base--> <SPATIALQUERY where="NAME=Brazil" /> </LAYERDEF> <LAYERDEF id="3" visible="false" /> <!--Morfo--> <LAYERDEF id="2" visible="false" /> <!--Fallas--> <LAYERDEF id="0" visible="true" /> <!--Geo-Arc--> </LAYERLIST> </PROPERTIES> </GET_IMAGE> </REQUEST> </ARCXML> <?xml version="1.0" encoding="UTF8"?> <ARCXML version="1.1"> <REQUEST> <GET_LAYOUT> <PROPERTIES> <ENVELOPE minx="0" miny="0" maxx="8.5" maxy="11" /> </PROPERTIES> <DATAFRAME id="Geolog&#237;a"> <LAYERLIST order="true"> <LAYERDEF id="9" visible="true" /> <LAYERDEF id="8" visible="true" /> </LAYERLIST> </DATAFRAME> <DATAFRAME id="Inundaciones"> <LAYERLIST> <LAYERDEF id="1" visible="false" /> </LAYERLIST> </DATAFRAME> </GET_LAYOUT> </REQUEST> </ARCXML>
Consultas de la informacin espacial y de atributos 16

Documentos ArcMap pueden contener ms que un conjunto de mapas (data frames) y al solicitar un mapa de un servicio tipo ArcMap Image, el elemento GET_IMAGE accede por predefinicin al data frame activo. Para obtener acceso a diferentes data frames, se utiliza el atributo dataframe. Navegacin a partir de <ENVELOPE> y modificacin de la visibilidad de capas a partir de <LAYERDEF> y <LAYERLIST> funcionan igual como con Image Service. No se puede cambiar el orden de despliegue de las capas. No se puede modificar la simbologa de las capas. Para acceder a los diseos de mapas (layout) de un documento ArcMap, se dispone del elemento GET_LAYOUT. El formato y tamao del layout est determinado por el documento ArcMap y no puede modificarse a travs de la peticin con GET_LAYOUT. Sin embargo, GET_LAYOUT puede solicitar los datos a diferentes niveles de Zoom y en otras proyecciones. La respuesta LAYOUT puede contener uno o varios dataframes en la misma pgina, adems de elementos grficos como textos, flecha de norte, barras de escala y leyendas. GET_LAYOUT tiene dos elementos hijo: PROPERTIES y DATAFRAME. El primero define caractersticas generales del diseo, tales como la extensin, las unidades de pgina y la proyeccin predefinida parta todos los dataframes. DATAFRAME provee informacin sobre un data frame individual, tales como nivel de Zoom, escala y proyeccin.

BGR - PN 1999.2103.2

Pgina 58 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Consulta de atributos y de objetos espaciales


1. Acceder a los objetos espaciales con GET_FEATURES GET_FEATURES es una consulta verstil para acceder a informacin geomtrica y de atributos. Solicitudes con <GET_FEATURES> pueden realizarse con servicios de mapas tipo Image, ArcMap y Feature. El elemento <GET_FEATURES> solo puede consultar una capa a la vez. Capas dinmicas no permiten consultas GET_FEATURE. Las consultas de atributos deben enviarse al servidor virtual de consultas (Query Server): http://miServidor/servlet/com.esri.esrimap.Esrimap ?ClientVersion=9.0 &ServiceName=miServicio &CustomService=Query &Form=True&Encode=True
Consultas de la informacin espacial y de atributos 17

GET_FEATURES es una consulta verstil para acceder informacin geomtrica y de atributos. La informacin devuelta en la respuesta del servidor espacial est contenida en el elemento FEATURES. Las consultas tipo GET_FEATURES pueden realizarse en servicios de mapas tipo imagen y feature (vector). Dependiendo de los ajustes en los parmetros de GET_FEATURE, la respuesta del servidor espacial puede contener datos en formato ArcXML o en formato binario comprimido (feature stream). El formato binario puede utilizarse slo en clientes Java de ArcIMS. Las consultas GET_FEATURE a servicios de mapas tipo imagen estn limitadas a respuestas en formato ArcXML. Las consultas a un mapa se envan al servidor virtual tipo imagen (Image Server), mientras que las consultas a atributos deben enviarse al servidor virtual de consultas (Query Server). GET_FEATURES dispone de una serie de atributos que se utilizan para formatear la respuesta FEATURES. Entre otros son: outputmode, compact, geometry, skipfeatures, envelope, attributes, checkesc, y globalenvelope. Otros atributos pueden utilizarse para obtener informacin sobre el nmero de elementos devueltos por la respuesta: beginrecord, featurelimit, count, y hasmore.

BGR - PN 1999.2103.2

Pgina 59 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Consulta de atributos y de objetos espaciales


2. Estructura de la peticin <GET_FEATURES> y la respuesta <FEATURES>
<GET_FEATURES attributes ="true | false" [true] beginrecord ="integer" [0] checkesc ="true | false" [false] compact ="true | false" [false] dataframe ="string" envelope ="true | false" [false] featurelimit ="integer" [all features] geometry ="true | false" [true] globalenvelope ="true | false" [false] outputmode ="binary | xml | newxml" [binary] skipfeatures ="true | false" [false] > <LAYER... /> <QUERY... /> [o] <SPATIALQUERY... /> [o] <ENVIRONMENT... /> </GET_FEATURES > <FEATURES><FEATURE><ENVELOPE minx="-87.68" miny="10.70" maxx="-83.13" maxy="15.02"/> <FIELDS> <FIELD name="FIPS_CNTRY" value="NU" /> <FIELD name="GMI_CNTRY" value="NIC" /> <FIELD name="ISO_2DIGIT" value="NI" /> <FIELD name="ISO_3DIGIT" value="NIC" /> <FIELD name="CNTRY_NAME" value="Nicaragua" /> <FIELD name="LONG_NAME" value="Nicaragua" /> <FIELD name="SOVEREIGN" value="Nicaragua" /> <FIELD name="POP_CNTRY" value="4275103" /> <FIELD name="CURR_TYPE" value="Cordoba Oro" /> <FIELD name="CURR_CODE" value="NIO" /> <FIELD name="LANDLOCKED" value="N" /> <FIELD name="SQKM" value="128594.63" /> <FIELD name="SQMI" value="49650.38" /> <FIELD name="COLORMAP" value="5" /> <FIELD name="#SHAPE#" value="[Geometry]" /> <FIELD name="#ID#" value="6" /> </FIELDS> </FEATURE><FEATURECOUNT count="1" hasmore="false" /> </FEATURES>
Consultas de la informacin espacial y de atributos 18

Outputmode: binary: xml: newxml: geometry: compact: beginrecord: featurelimit: count: hasmore: skipfeatures: envelope: attributes: checkesc: globalenvelope:

respuesta en formato binario comprimido respuesta en formato ArcXML compacto respuesta en formato ArcXML detallado (cada campo en un elemento FIELD) solicita las coordenadas de los elementos encontrados devuelve las coordenadas en formato compacto o detallado el nmero del primer elemento a devolver la cantidad mxima de elementos a devolver el nmero de elementos encontrados true si la capa contiene ms que los elementos encontrados en la consulta si ajustado en true solo FEATURECOUNT est devuelto devuelve la extensin de cada elemento si ajustado en true los atributos de cada elemento estn devueltos si true los atributos incluyen caracteres mascarados ("&gt; 1000") devuelve la extensin de todos los elementos encontrados.

BGR - PN 1999.2103.2

Pgina 60 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Consulta de atributos y de objetos espaciales


3. Filtrar objetos espaciales con <GET_FEATURES> y <SPATIALQUERY> El elemento <GET_FEATURES> requiere de un elemento <LAYER> que especifica la capa a consultar y de un elemento <SPATIALQUERY> que puede estar vaco o contener una clusula de consulta SQL. <ARCXML version="1.1"> <REQUEST> <GET_FEATURES featurelimit="25" beginrecord="0" outputmode="newxml" geometry="false" envelope="true" globalenvelope="true"> <LAYER id="1" /> <SPATIALQUERY subfields="CNTRY_NAME FIPS_CNTRY POP_ADMIN TYPE_LOC SQKM" where="SQKM &gt; 100000" > <!-- Filtro por atributos --> <!-- <SPATIALFILTER relation="area_intersection"> <ENVELOPE minx="-89.4" miny="13.8" maxx="-88.9" maxy="14.0"/> </SPATIALFILTER> --> <!-- seleccin espacial --> </SPATIALQUERY> </GET_FEATURES> </REQUEST> </ARCXML>
Consultas de la informacin espacial y de atributos 19

GET_FEATURES slo puede consultar una capa de informacin a la vez. Las consultas no pueden realizarse con capas dinmicas y requieren incluir uno de los elementos SPATIALQUERY o QUERY. La consulta puede extraer datos basados en atributos, un filtro espacial (un rea) o una combinacin de ambos tipos. Debido a su capacidad para procesar consultas alfanumricas y geomtricas, se recomienda utilizar SPATIALQUERY para todos los tipos de consultas. Es obligatorio incluir un elemento SPATIALQUERY en el elemento GET_FEATURES. Para solicitar todos los elementos de una capa, SPATIALQUERY puede definirse con el atributo subfields para limitar las campos a devolver o con una clusula SQL vaca (where=).

BGR - PN 1999.2103.2

Pgina 61 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Consulta de atributos y de objetos espaciales


4. Crear expresiones SQL para consultas con SPATIALQUERY Encuentra todos los registros que muestran un valor mayor a 3 Millones en el campo POP_CNTRY: <SPATIALQUERY subfields="#ALL#" where="POP_CNTRY &gt; 30000000" > Encuentra todos los registros que contienen Nicaragua en los registros del campo LONG_NAME: <SPATIALQUERY subfields="#ALL#" where=LONG_NAME=&apos;Nicaragua&apos;" > Encuentra todos los registros que contienen nombres en que empiezan con Ni en los registros del campo LONG_NAME: <SPATIALQUERY subfields="#ALL#" where="CITY_NAME LIKE &apos;Ni%&apos;" > Encuentra todos los registros que contienen Honduras sin diferenciar minscula y mayscula: <SPATIALQUERY subfields="#ALL#" where="UPPER(LONG_NAME)=HONDURAS" >

Consultas de la informacin espacial y de atributos

20

Las consultas definidas en el elemento SPATIALQUERY pueden contener una expresin SQL where estndar de la siguiente forma: <SPATIALQUERY subfields="#ALL# | Operador_de_Comparacin Valor_Buscado" > #ID# | #SHAPE#" where="Nombre_Campo

Para buscar valores numricos se utiliza operadores de comparacin como: =, <, >, <=, >=, y <>. Valor_Buscado puede contener un valor fijo o una calculacin aritmtica bsica con: +, -, *, y /. Para buscar cadenas de texto se utiliza el operador = para encontrar texto exacto o el operador LIKE en combinacin con los wildcard _ o %. El primer wildcard encuentra cualquier carcter, el segundo encuentra cualquier secuencia de caracteres. Otros operadores permitidos son BETWEEN, IN, y NOT IN Si Valor_Buscado es una cadena de texto, hay que indicar el patrn en comillas sencillas. Para habilitar igualdad entre minscula y mayscula, el operador UPPER puede aplicarse al nombre del campo. En este caso, las cadenas de texto en Valor_Buscado deben estar en mayscula.

BGR - PN 1999.2103.2

Pgina 62 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Consulta de atributos y de objetos espaciales


5. Anlisis espacial con <SPATIALQUERY> y <BUFFER> El elemento <BUFFER> es un sub-elemento de SPATIALQUERY y construye corredores alrededor de objetos geogrficos seleccionados. El elemento <TARGETLAYER> puede utilizarse para seleccionar objetos espaciales con el Buffer. <GET_FEATURES featurelimit="25" beginrecord="0" outputmode ="newxml" geometry="true" envelope="true" globalenvelope="false"> <LAYER id="9" /> <!-- capa de vas --> <SPATIALQUERY where="VIAS_DCW_L=54481" > <BUFFER distance="5000" bufferunits="METERS" > <!-<TARGETLAYER id="5" /> <!-- Utilizar Buffer para encontrar ciudades --> --> </BUFFER> </SPATIALQUERY> </GET_FEATURES>
Consultas de la informacin espacial y de atributos 21

El elemento BUFFER con el elemento SPATIALQUERY como elemento padre funciona de la misma forma como en las solicitudes con GET_IMAGE, pero en vez de generar una imagen del buffer calculado o de los elementos seleccionados, GET_FEATURE devuelve las coordenadas de la geometra del Buffer, los atributos de los elementos seleccionados en TARGETLAYER o las coordenadas de sus geometras. Para poder utilizar BUFFER en SPATIALQUERY dentro de GET_FEATURES, un atributo subfields debe contener los campos #SHAPE# o #ALL#. Resultados de la operacin BUFFER pueden ser inexactos si los datos no estn proyectados as que se recomienda proyectar los datos antes de calcular corredores.

BGR - PN 1999.2103.2

Pgina 63 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Consulta de atributos y de objetos espaciales


6. Transformacin de geometra Los elementos <FILTERCOORDSYS> y <FEATURECOORDSYS> pueden utilizarse en SPATIALQUERY y GET_FEATURES para transformar la geometra de objetos espaciales. <ARCXML version="1.1"> <REQUEST> <GET_FEATURES featurelimit="25" beginrecord="0" outputmode="newxml" attributes="false" geometry="true" envelope="true" globalenvelope="false"> <LAYER id ="5" /> <SPATIALQUERY where="CITY_NAME=&apos;Managua&apos;" /> <FILTERCOORDSYS id="4326" /> <FEATURECOORDSYS id="32616" /> </SPATIALQUERY> </GET_FEATURES> </REQUEST> </ARCXML>
Consultas de la informacin espacial y de atributos 22

FILTERCOORDSYS y FEATURECOORDSYS pueden utilizarse en GET_FEATURES para transformar los elementos espaciales consultados. Los datos que pueden ser proyectados incluyen las extensiones establecidas en ENVELOPE y las coordenadas almacenadas en los elementos POINT y COORDS. Al igual como en GET_IMAGE, FILTERCOORDSYS especifica el sistema de coordenadas del cliente ejecutando la solicitud (coordenadas utilizadas en la solicitud). FEATURECOORDSYS especifica el sistema de coordenadas al cual deben transformarse los elementos consultados en solicitudes GET_FEATURE.

BGR - PN 1999.2103.2

Pgina 64 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Prcticas
1. 2. 3. 4. 5. 6. 7. 8. 9.

Consultas de la informacin espacial y de atributos utilizando los elementos aprendidos en sendArcXML

Utilizar los elementos GETCLIENTSERVICES y GET_SERVICE_INFO Realizar Zoom y Pan con GET_IMAGE y ENVELOPE Modificar orden y visibilidad de capas con LAYERLIST y LAYERDEF Modificar la simbologa de capas con los diferentes tipos de RENDERER y SYMBOL Filtrar datos con SPATIALQUERY y generar corredores espaciales con BUFFER Transformar capas a otras proyecciones Desplegar un subconjunto de una capa con el elemento LAYER y SPATIALQUERY Generacin de capas acetato para el despliegue de objetos grficos Extraccin de mapas y descarga de archivos Shape

10. Filtrar objetos espaciales con <GET_FEATURES> y <SPATIALQUERY> 11. Anlisis espacial con <SPATIALQUERY> y <BUFFER> 12. Transformacin de geometra de objetos espaciales
Consultas de la informacin espacial y de atributos 23

BGR - PN 1999.2103.2

Pgina 65 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Personalizacin avanzada del visor HTML

Personalizacin del diseo del visor HTML: La estructura del conjunto de marcos (frameset) Modificacin del diseo del frameset Personalizacin de la barra de herramientas Formato y representacin del contenido de respuestas: JavaScript y peticiones ArcXML Interpretacin (parsing) de la respuesta Despliegue de la informacin interpretada Creacin e integracin de funciones personalizadas: Pasos para la creacin de funciones Habilitacin de una funcin personalizada Desarrollo de una funcin personalizada

Prcticas: Personalizacin del diseo del visor cliente Creacin de un funcin especializada

BGR - PN 1999.2103.2

Pgina 66 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Personalizacin avanzada del visor HTML


1. Cambiar el diseo del FRAMESET Los marcos se definen el viewer.htm Las etiquetas de FRAMESET controlan las filas y columnas. Cada FRAMESET contiene uno o ms marcos (FRAME). Cada etiqueta FRAME hace referencia a un archivo HTM.
Arriba Izquierda Derecha

<FRAMESET ROWS=100,*,100> <FRAME name=Arriba src=arriba.htm> <FRAMESET COLS=300,*> <FRAME name=Izquierda src=izquierda.htm> <FRAME name=Derecha src=derecha.htm> </FRAMESET> <FRAME name=Abajo src=abajo.htm> </FRAMESET>

Abajo

Personalizacin avanzada del visor HTML

Marcos HTML se definen en un archivo especial, en el caso del visor HTML en el viewer.htm. Este archivo no contiene los elementos a desplegar en un navegador (de hecho, no contiene un elemento BODY), sino una divisin del espacio disponible en diferentes ventanas incluidas en filas y columnas. Cada una de esta ventana esta ocupada por un archivo HTM con su propia declaracin de BODY. En cada elemento FRAMESET se definen la cantidad y el tamao de las filas y columnas. El tamao est expresado en nmero de Pixel, porcentaje de la ventana o con un asterisco (*) para asignar el resto del espacio disponible a una fila o columna. En el presente ejemplo, la etiqueta <FRAMESET ROWS=100,*,100> define 3 filas asignando 100 Pixel a la fila superior e inferior y el espacio restante a la fila central. Como contenido del marco superior se define arriba.htm. Dentro de la fila central se definen dos columnas, asignando 100 Pixel y el archivo izquierda.htm a la primera y el espacio restante y el archivo derecha.htm a la segunda fila. Finalmente se asigna el archivo abajo.htm a la fila inferior del Frameset. A travs del Frameset del visor HTML el diseador puede modificar la apariencia estructural del cliente es decir la ubicacin de cada elemento o ventana del visor en una pgina Web. Al quitar marcos de Frameset, es posible disear un visor simple, por ejemplo sin rea de despliegue de atributos o sin cabecera y pie de la pgina. Es tambin posible integrar el Frameset del cliente en un sitio Web existente utilizando por ejemplo un elemento IFRAME en el cual se incluye el default.htm. Sin embargo, hay que tomar en cuenta que algunos marcos despliegan ms que un tipo de contenido: el marco TOCFrame despliega tanto la lista de capas en el servicio de mapas y le permite al usuario

BGR - PN 1999.2103.2

Pgina 67 de 83

Materiales curso prctico ArcIMS

mayo de 2005

seleccionar la capa activada para consultas, como la imagen de la leyenda generada con cada solicitud GET_IMAGE. Eliminando el marco TOCFrame, deshabilitara tambin el despliegue del mapa y causara errores en la ejecucin de ciertos JavaScript que llaman a este marco, hecho que requiere del diseador modificar los JavaScript en cuestin. En el caso del TOCFrame existe un mtodo ms fcil que el diseador puede utilizar para deshabilitar el despliegue del TOCFrame. Se ajusta la variable showTOC=false en ArcIMSParams.js y la variable showLegend=true en la funcin checkParams. Si el despliegue de la lista de capas (TOC) est deshabilitada, el usuario no tiene la posibilidad de seleccionar la capa activada, qu es requerida para funciones de consulta, tales como Identify. Si por esta u otras razones es necesario predefinir la capa activada, se dispone de la variable ActiveLayerIndex a la cual se asigna el ndice de la capa a activar. Nota que la primer capa del archivo de configuracin corresponde al ndice 0. Otros cambios comunes en el diseo del visor HTML son la utilizacin de otras imgenes GIF para modificar la cabecera y pie de la pgina en top.htm, bottom.htm y modeframe.htm. Adicionalmente, el elemento BGCOLOR puede utilizarse para cambiar el color de fondo de estas pginas.

BGR - PN 1999.2103.2

Pgina 68 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Personalizacin avanzada del visor HTML


2. Estructura del conjunto de marcos (frameset)
30 50
ToolFrame Toolbar.htm MapFrame MapFrame.htm TopFrame Top.htm

180
TocFrame TocFrame.htm

Resto de espacio

110
ModeFrame ModeFrame.htm

TextFrame Text.htm BottonFrame Bottom.htm

180

30

PostFrame

JSForm.htm

Personalizacin avanzada del visor HTML

El presente diagrama ilustra el diseo predefinido para el conjunto de marcos del visor HTML de ArcIMS. Cada rea muestra el nombre del marco (nombres utilizados por ejemplo por las funciones de JavaScript) y el archivo HTML que representa el contenido de cada marco. El diagrama es una gua bsica para disear un visor personalizado. La determinacin del tamao y de la ubicacin final de los marcos queda a disposicin de los requerimientos del diseador.

BGR - PN 1999.2103.2

Pgina 69 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Personalizacin avanzada del visor HTML


3. Cdigo HTML del Frameset en viewer.htm <FRAMESET ROWS="38,*,30,0"> <!-- FrameSet 1 con 4 filas --> <FRAME NAME="TopFrame" SRC="top.htm"> <!-- 1. fila del FS 1 --> <FRAMESET COLS="50,*,180"> <!-- 2. fila del FS 1 con FS de 3 columnas--> <FRAME NAME="ToolFrame" SRC="blank.htm"> <!-- 1. columna del frameset 2 --> <FRAMESET ROWS="*,110"> <! 2. col del FS 2 con FS de 2 cols --> <FRAME NAME="MapFrame" SRC="MapFrame.htm"> <! 1. fila del FS 3 <FRAME NAME="TextFrame" SRC="text.htm"> <! 2. fila del FS 3 </FRAMESET> <! Cierra FrameSet 3 <FRAME NAME="TOCFrame" SRC="TOCFrame.htm"> <! 3. col del FS 2 <FRAMESET> <! Cierra FrameSet 2 <FRAMESET COLS="180,*" FRAMEBORDER="0"> <! 3. fila del FS1 con FS de 2 cols <FRAME NAME="ModeFrame" SRC="bottom.htm"> <! 1. fila del FS3 <FRAME NAME="BottomFrame" SRC="bottom.htm"> <! 2. fila del FS3 </FRAMESET> <! Cierra FrameSet 3 <FRAME NAME="PostFrame" SRC="jsForm.htm"> <! 4. fila del FrameSet 1 </FRAMESET> <! Cierra FrameSet 1

Personalizacin avanzada del visor HTML

La diapositiva muestra el cdigo HTML del Frameset predefinido del visor HTML de ArcIMS. La estructura visual del visor HTML est caracterizada por una serie de Framesets intercalados. El conjunto de marcos principal est compuesto por cuatro filas que contienen dos Frames y dos Framesets independientes. La primera fila est representada por la cabecera en el TopFrame, la segunda contiene un Frameset de tres columnas compuestas de la barra de herramientas, otro Frameset que contiene el mapa principal y el rea de despliegue de textos, y por un marco que contiene la tabla de contenido. La tercera fila est dividida en un Frameset de dos columnas dando rea de despliegue para ModeFrame y BottomFrame. La ltima fila almacena el formulario oculto definido en PostFrame.

BGR - PN 1999.2103.2

Pgina 70 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Personalizacin avanzada del visor HTML


4. Personalizacin de la barra de herramientas Para cada funcin existe un botn que despliega un icono GIF: Existe un icono estilo NombreBoton_1 para herramientas no en uso y un icono estilo NombreBoton_2 para herramientas en uso Por predefinicin, la barra de herramientas se despliega en dos columnas la variable isSecond puede modificarse para el despliegue en una columna Cambiar imagen de botones y estructura de la barra if (parent.MapFrame.useSelect) { document.write('<td align="center" valign="middle">'); document.write('<img src="images/smiley.gif" width=16 height=16 isSecond = !isSecond; <!-- isSecond=true crea una barra de una columna --> document.writeln('</td>'); if (isSecond) document.write('</tr><tr>'); }
Personalizacin avanzada del visor HTML 4

Toolbar.htm es un archivo largo que utiliza HTML dinmico (DHTML) para crear una tabla de dos columnas cuyas celdas contienen los botones para las funciones activadas durante la generacin del visor en el Diseador. Cada botn est representado por dos iconos en formato GIF. Uno representa el estado acyivado de la herramienta y el otro el estado desactivado. La convencin de nombres para los archivos GIF es la siguiente: nombre_del_boton seguido por _1 para herramientas inactivas nombre_del_boton seguido por _2 para herramientas activas La funcin que establece el cambio del icono del botn en reaccin a la seleccin por parte del usuario es setToolPic. Al seleccionar una herramienta, todas la dems despliegan el icono correspondiente al estado inactivo (nombre_del_boton_1.gif), operacin que realiza la funcin revertToolPic. Por predefinicin, la barra de herramientas se despliega en una tabla de dos columnas. Para generar una barra de herramientas en solo una columna debe realizarse el siguiente ajuste en toolbar.htm: //isSecond = !isSecond; document.writeln('</td>'); //if (isSecond); document.write('</tr><tr>');

BGR - PN 1999.2103.2

Pgina 71 de 83

Materiales curso prctico ArcIMS

mayo de 2005

JavaScript y peticiones ArcXML


Las peticiones ArcXML se generan con funciones JavaScript almacenadas en aimsXML.js y otros archivos de la librera JavaScript del visor HTML. Ejemplo: generar el indicador de Norte (Northarrow) if (drawNorthArrow) { // crear una capa de acetato theString += '<LAYER type="acetate" name="theNorthArrow">\n'; theString += '<OBJECT units="pixel">\n<NORTHARROW type="' + NorthArrowType + '" size="' + NorthArrowSize + '" coords="' + NorthArrowCoords + '" shadow="32,32,32" '; theString += 'angle="' + NorthArrowAngle + '" antialiasing="True" overlap="False />\n</OBJECT>\n'; Variables ajustadas ArcIMSparams.js theString += '</LAYER>\n';
Cadena de texto que representa la peticin
<LAYER type="acetate" name="acetate" id="acetate"> <OBJECT units="pixel"> <NORTHARROW type="4" size="15" coords="20 30" shadow="32,32,32" angle="0" antialiasing="true" overlap="false"/> </OBJECT> </LAYER>
Personalizacin avanzada del visor HTML 5

Ajustado en true/false en ArcIMSparams.js

Todas las peticiones se generan a travs de funciones JavaScript almacenadas en las libreras correspondientes al tipo de funcin. Las funciones de despliegue general del mapa (elementos que deben generarse cada vez que se solicite el mapa) se encuentran en aimsXML.js. En este archivo se encuentran adems las funciones de comunicacin bsica (envo de peticiones y recepcin de respuestas) con el servidor. La generacin de las peticiones ArcXML se realiza en JavaScript mediante la creacin de cadenas de texto incluyendo cdigo ArcXML fijo y contenido de variables predefinidas o ajustadas en base a selecciones interactivas por parte del usuario. Una vez generada la peticin, la funcin generadora ejecuta la funcin sendToServer y htmlSendToServer (en aimsXML.js) que enva la peticin ArcXML al conector Servlet a travs del formulario en el PostFrame. En el presente ejemplo, todos los elementos generales del mapa principal (p.ej. Norte, barra de escala) se generan en la funcin writeXML() en aimsXML.js que por su parte es ejecutada cada vez que se solicite la creacin del mapa central mediante la funcin sendMapXML().

BGR - PN 1999.2103.2

Pgina 72 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Interpretacin de la respuesta con JavaScript


JavaScript no provee con funciones capaces de acceder al modelo de objetos de documentos XML. La interpretacin (parsing) de la respuesta ArcXML se realiza a travs de la funcin processXML en aimsXML.js.
Variable que contiene la respuesta

function getURL(theReply) { var theURL = ""; var startpos = 0; var endpos = 0;

Calcula la posicin del texto OUTPUT

var pos = theReply.indexOf("OUTPUT"); if (pos != -1) { theURL = getInsideString(theReply,'url="',dQuote,pos,0,false); } Funcin para extraer cadenas de texto legendImage = getLegendURL(theReply); return theURL; }
Funcin devuelve el URL de la imagen

Personalizacin avanzada del visor HTML

A diferencia con lenguajes como Java, JSP o ASP, JavaScript no provee con mtodos especializados en la interpretacin de documentos XML JavaScript no puede acceder al DOM o SAX y, en consecuencia, no dispone de funciones reales de parsing de documentos XML. En su vez, la librera de JavaScript del visor HTML contiene una serie de funciones que realizan la interpretacin de las respuestas del servidor espacial. La funcin central en este proceso es processXML en aimsXML.js ejecutada por el PostFrame cada vez que se regenera mediante el conector Servlet despus de haber enviado la peticin al servidor y recibido la respuesta. La funcin processXML contiene algunas funciones de interpretacin, como la de extraer el URL de la imagen del mapa de las respuestas a peticiones GET_IMAGE (ver presente ejemplo), pero en la mayora de los casos llama a funciones correspondientes al tipo de la peticin en los respectivos archivos JavaScript. La interpretacin y representacin visual de respuestas a consultas de atributos (GET_FEATURES) por ejemplo, se realiza con la funcin displayAttributeData en aimsIdentify.js.

BGR - PN 1999.2103.2

Pgina 73 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Formato y representacin del contenido de respuestas


Un mtodo comn para la representacin de informacin en pginas Web es la generacin una tabla con los elementos <TABLE>, <TD> y <TR>.
Iniciar tabla en la function writeOutDataPage(theReply,layerIndex,docObject,docName,pageObject) { variable dataString dataString += '<table border="1" cellspacing="0" cellpadding="2" for (var i=0;i<fCount;i++) { Crear bucle sobre elementos devueltos inData = parseRecordString(theReply, endpos); endpos = xmlEndPos; selectedData = inData; Funcin para extraer atributos epos = theReply.indexOf("</FEATURE",endpos); var fName1 = getFieldNames(selectedData); var fValue1 = getFieldValues(selectedData); Funciones para extraer nombres y valores de campos dataString += '<tr><td>'; Aadir una fila dataString += '</td>\n'; Aadir una columna for (var f=0;f<fName1.length;f++) { if ((f!=idFieldNum) && (f!=shapeFieldNum)) { dataString += '<TD>'; Aadir el valor del atributo a la celda dataString += fValue1[f].replace(/ /g, "&nbsp;"); dataString += '</td>\n';
Personalizacin avanzada del visor HTML 7

La representacin visual de las respuestas ArcXML se realiza a travs de la generacin de HTML dinmico. En los Website estndares de ArcIMS, la funcin displayAttributeData() en aimsidentify.js llama a writeOutDataPage que formatea el contenido de respuestas (FEATURE) a peticiones tipo GET_FEATURE. La funcin crea, de forma dinmica, una tabla HTML con los valores de la tabla de atributos. Se utilizan las funciones parseRecordString, getFieldNames y getFieldValues para controlar y extraer los valores y nombres de campos. Estas funciones utilizan el elemento <FIELD> en la respuesta para extraer los nombres y valores de campos. function parseRecordString(theReply, startpos) { var inData = ""; var pos = theReply.indexOf("<FIELDS ",startpos); if (pos!=-1) { startpos = pos + 8; xmlEndPos = theReply.indexOf('" />',startpos); inData = theReply.substring(startpos,xmlEndPos); } return inData; }

BGR - PN 1999.2103.2

Pgina 74 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Creacin e integracin de funciones personalizadas


1. Pasos recomendados Funciones propias deben integrarse de manera que implementan el ciclo de peticin-respuesta del visor HTML. La manera correcta de programar funciones propias es utilizando customMapTool() y useCustomFunction() en el archivo aimsCustom.js. Ambas funciones se comunican con sendToServer y processXML e implementan el ciclo de comunicacin a travs del PostFrame. Los siguientes pasos crean una nueva herramienta: 1. 2. 3. 4. Agregar una variable a ArcIMSparams.js que define la herramienta Adicionar un botn en la barra de herramientas (toolbar.htm) Agregar un nuevo modo (toolmode) a clickFunction en aimsClick.js Generar la funcionalidad adecuada en aimsCustom.js
Personalizacin avanzada del visor HTML 8

Paso 1: Entre las lneas 50 y 70 del archive ArcIMSparam.js se definen las variables de las herramientas del visor. Si una variable est en true, se activa la herramienta. Se agrega una nueva lnea de texto para definir una variable de la herramienta nueva por ejemplo miHiperlink=true. Paso 2: Hay que hacer tres modificaciones en toolbar.htm para aadir la herramienta a la barra de herramientas. Adems, hay que copiar dos imgenes gif a la carpeta /images para visualizar la herramienta en estado seleccionado y deseleccionado. La primera modificacin en toolbar.htm es ajustar la funcin revertToolPic() que determina la versin deseleccionada del icono. La segunda edicin se realiza en setToolPic() que determina la versin seleccionada del icono. La tercer modificacin es agregar cdigo para aadir la herramienta a la barra (se puede ubicar entre las herramientas ya existentes, por ejemplo entre Identify y Quero). Se pueden comprobar las modificaciones al refrescar el navegador al presionar la herramienta y recibir un mensaje Function not enabled las modificaciones han sido correctas.

BGR - PN 1999.2103.2

Pgina 75 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Paso 3: Agregar un modo para la herramienta personalizada en aimsClick.js en la funcin clickFunction() (aprox. en lnea 130). Esta funcin tiene una serie de bloques de cdigo que cambian la variable toolMode segn el usuario selecciona una herramienta. Puede copiarse un bloque y copiarlo a final de la funcin para su edicin. Paso 4: Por ultimo hay que darle funcionalidad a la herramienta y que es la parte ms complicada del proceso. Bsicamente, debe crearse funcionalidad apropiada para enviar comandos ArcXML al servidor ArcIMS. La funcin customMapTool(e) en aimsCustom.js se ejecuta si la variable toolMode es mayor que 1000, as que se debe incluir cdigo en esta funcin y crear una condicin de ejecucin con el toolMode ajustado en clickFunction() para la herramienta personalizada. Asimismo, debe programarse cdigo adecuado para el procesamiento de la respuesta ArcXML e incluir este cdigo en la funcin useCustomFuntion() la cual se ejecuta a travs de PostFrame si el toolMode es mayor que 1000.

BGR - PN 1999.2103.2

Pgina 76 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Creacin e integracin de funciones personalizadas


2. Crear nuevas funciones El desarrollo de nuevas funciones con funcionalidades no existentes en la librera JavaScript implica la generacin peticiones ArcXML Asimismo, es responsabilidad de programador implementar las funciones necesarias para la interpretacin de la respuesta Un ejemplo para el desarrollo de una funcin nueva es la implementacin de la descarga de datos en el visor HTML. En este caso, el botn debe ajustar la variable toolMode en un valor mayor que 1001 para invocar customMapTool. En customMapTool debe implementarse la funcin que compone peticin ArcXML para realizar el GET_EXTRACT Posteriormente se ejecuta sendToServer con la peticin ArcXML y un XMLMode mayor que 1001 para invocar customFunction. En customFunction debe implementarse la funcin de interpretacin de la respuesta.
Personalizacin avanzada del visor HTML 9

Ejemplo para la creacin de una funcin nueva: implementar GET_EXTRACT en el visor HTML estndar. Nota: la funcionalidad de Extract ya est pre-preparada en los visores HTML. Ya existe un botn y funciones vacas para agregar cdigo personalizado. Paso 1: Agregar la extensin EXTRACT a una de los elementos LAYER del archivo de configuracin para habilitar el servidor de extraccin: <LAYER type="featureclass" name="Pases" visible="true" id="1"> <DATASET name="paises" type="polygon" workspace="shp_ws-12" /> <EXTENSION type="Extract" > <EXTRACTPARAMS> <OUTPUTFILE file="paises" /> </EXTRACTPARAMS> </EXTENSION> Paso 2: Editar el archivo ArcIMSparam.js en el directorio del visor HTML que se quiere utilizar para este ejercicio y cambiar la variable var useExtract=true;. Paso 3: Editar el archivo aimsCustom.js en la carpeta javascript del visor HTML y crear dos nuevas variables globales:

BGR - PN 1999.2103.2

Pgina 77 de 83

Materiales curso prctico ArcIMS


var extractXMLMode=1111; var imsExtractURL = imsURL + '&CustomService=Extract'

mayo de 2005

Paso 4: Modificar la funcin useCustomFunction(theReply) en aimsCustom.js de la siguiente manera: function useCustomFunction(theReply) { if (XMLMode==1001) { // Insert code here. } else if (XMLMode==1111) { parseExtractResponse(theReply); } else { alert(msgList[55] + XMLMode + msgList[56]); } hideLayer("LoadData"); }

Modificar la funcin extractIt() de la siguiente manera: // Extract layers to download. function extractIt() { hideLayer("measureBox"); //alert(msgList[51]); if (checkIfActiveLayerAvailable()) { sendExtractRequest(); } } Aadir las siguientes lneas de cdigo al final del archivo aimsCustom.js: function sendExtractRequest(){ var extractAXL=""; //extractAXL += '<?xml version="1.0" encoding="UTF-8"?>\n'; extractAXL += '<ARCXML version="1.1">\n'; extractAXL += '<REQUEST>\n'; extractAXL += ' <GET_EXTRACT>\n'; extractAXL += ' <PROPERTIES>\n'; extractAXL += ' <ENVELOPE minx="' + forceComma(eLeft) + '" miny="' + forceComma(eBottom) + '" maxx="' + forceComma(eRight) + '" maxy="' + forceComma(eTop) + '" />\n'; extractAXL += ' <LAYERLIST>\n'; extractAXL += ' <LAYERDEF id="' + ActiveLayer + '" visible="true" />\n'; extractAXL += ' </LAYERLIST>\n'; extractAXL += ' </PROPERTIES>\n'; extractAXL += ' </GET_EXTRACT>\n'; extractAXL += '</REQUEST>\n'; extractAXL += '</ARCXML>\n';

BGR - PN 1999.2103.2

Pgina 78 de 83

Materiales curso prctico ArcIMS

mayo de 2005

sendToServer(imsExtractURL, extractAXL ,extractXMLMode); } function parseExtractResponse(theResponse){ var extractURL = getURL(theResponse); //alert(extractURL); if(extractURL!="") var Win1 = open(extractURL); }

BGR - PN 1999.2103.2

Pgina 79 de 83

Materiales curso prctico ArcIMS

mayo de 2005

Creacin e integracin de funciones personalizadas


3. Reutilizar funciones existentes La librera JavaScript del visor HTML de ArcIMS contiene una gran cantidad de funciones que generan peticiones ArcXML e interpretan las respuestas del servidor. El progamador puede utilizar y combinar estas funciones para crear funcionalidad especializada y automatizar procesos. Un ejemplo es la combinacin de las funciones select, zoomToReturnedRecords y displayAttributeData hacer un Zoom automtico a un elemento seleccionado y desplegar los atributos en el rea de despliegue de texto. El botn creado para la funcin deben ajustar la variable tooMode en un valor mayor a 1001 para invocar customMapTool. La funcin select puede ejecutarse desde customMapTool y las funciones displayAttributeData y zoomToReturnedRecords desde customFunction (displayAttributeData no llama a sendToServer)
Personalizacin avanzada del visor HTML 10

Ejemplo: Implementar una funcin que seleccione un elemento y que posteriormente aumente el Zoom a la extensin del elemento seleccionado.

Paso 1: Editar el archivo ArcIMSparam.js en el directorio del visor HTML que se quiere utilizar para este ejercicio y agregar una variable var useZoomSelect=true;.

Paso 2: Crear dos iconos GIF para el nuevo botn y modificar el cdigo en toolbar.htm para agregar el botn a la barra de herramientas. function revertToolPic() {//selecciona gif de botn deseleccionado // reset tool icons to non-set mode //alert(lastMode); if (parent.MapFrame.useZoomIn) document.zoomin.src="images/zoomin_1.gif"; . //Ejemplo Curso //nuevo botn deseleccionado para zoomToSelected if (parent.MapFrame.useZoomSelect) document.zoomselect.src="images/zoomselect_1.gif"; .

BGR - PN 1999.2103.2

Pgina 80 de 83

Materiales curso prctico ArcIMS

mayo de 2005

function setToolPic(functName) {//selecciona gif de botn seleccionado // set clicked button icon to set mode //if (functName!=parent.MapFrame.modeName) { revertToolPic(); parent.MapFrame.focus(); //alert(functName); if (functName=="Zoom In") { document.zoomin.src="images/zoomin_2.gif"; } else if (functName=="Zoom Out") { . //Ejemplo curso // } else if (functName=="Zoom Select") { document.zoomselect.src="images/zoomselect_2.gif"; } .

//Generacin de la barra en tabla con botones <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript1.2"> . if (parent.MapFrame.useZoomIn) { // Zoom In . . . requires aimsNavigation.js document.write('<td align="center" valign="middle">'); document.write('<img src="images/zoomin_1.gif" width=24 height=24 hspace=1 vspace=0 border=0 alt=" ' + t.buttonList[16] + '" name="zoomin" onmousedown="parent.MapFrame.clickFunction(\'zoomin\'); setToolPic(\'Zoom In\');" onmouseover="window.status=\' ' + t.buttonList[16] + '\'">'); isSecond = !isSecond; document.writeln('</td>'); //if (isSecond) document.write('</tr><tr>');

} . //Ejemplo curso // if (parent.MapFrame.useZoomSelect) { // Select y Zoom document.write('<td align="center" valign="middle">'); document.write('<img src="images/zoomselect_1.gif" width=24 height=24 hspace=1 vspace=1 border=0 alt=" ' + t.buttonList[60] + '" name="zoomselect" onmousedown="parent.MapFrame.clickFunction(\'zoomselect\'); setToolPic(\'Zoom Select\');" onmouseover="window.status=\' ' + t.buttonList[60] + '\'">');

BGR - PN 1999.2103.2

Pgina 81 de 83

Materiales curso prctico ArcIMS


isSecond = !isSecond; document.writeln('</td>'); //if (isSecond) document.write('</tr><tr>'); }

mayo de 2005

Paso 3: Incluir un bloque de cdigo para el botn creado en la funcin clickfunction() del archivo aimsclick.js. function clickFunction (toolName) { if (hasLayer("measureBox")) hideLayer("measureBox"); switch(toolName) { // Zooming functions case "zoomin": // zoom in mode toolMode = 1; panning=false; selectBox=false; setCursor("theTop", "crosshair"); modeBlurb = modeList[0]; break; . //Ejemplo curso // case "zoomselect": // zoom out mode toolMode = 1112; panning=false; selectBox=false; setCursor("theTop", "hand"); modeBlurb = modeList[60]; break; . Paso 4: Programar bloques en de cdigo en las funciones las customMapTool(e) funciones y

useCustomFunction(theReply)

aimsCustom.js

utilizando

select(e),

displayAttributedata(theReply) y zoomToReturnedRecords() de la librera de JavaScript. function customMapTool(e) { if (toolMode == 1001) { // insert code here return false;

BGR - PN 1999.2103.2

Pgina 82 de 83

Materiales curso prctico ArcIMS

mayo de 2005

} if (toolMode == 1002) { // insert code here } if (toolMode == 1112) { // Ejemplo del curso //utiliza funciones existente para seleccionar un elemento if (checkIfActiveLayerAvailable()) { var tmpXMLMode = selectXMLMode; //select(e) utiliza selectXMLMode selectXMLMode = 1112; //as que hay que cambiarlo temporalmente select(e); selectXMLMode = tmpXMLMode; //para que ejecute useCustomFunction } }

function useCustomFunction(theReply) { if (XMLMode==1001) { // insert code here } else if (XMLMode==1002) { // insert code here // funcin que interpreta la respuesta de Extract } else if (XMLMode==1111) { parseExtractResponse(theReply); //Ejemplo del curso Select y Zoom que utiliza funcion displayAttributeData y //de las libreras del HTML Viewer zoomToReturnedRecords } else if (XMLMode==1112) { //alert('Ahora estoy en useCustomFunction'); //alert(theReply); displayAttributeData(theReply); //no llama a sendToserver // as que no hay problemas llamar a //sendtoserver aqu okToSend = true; zoomToReturnedRecords(); //!!!!!!requiere el campo #SHAPE# en //selFieldList de ArcIMSparam.js si //swapSelectFields=true!!!!!!! } else { alert(msgList[55] + XMLMode + msgList[56]); } hideLayer("LoadData"); }

BGR - PN 1999.2103.2

Pgina 83 de 83

También podría gustarte