Anda di halaman 1dari 21

Introduccin a Avenue

Introduccin Qu es Avenue? Avenue es un lenguaje de programacin integrado a ArcView. Mediante Avenue podemos desarrollar entornos personalizados y aplicaciones concretas de ArcView:

Personalizar el entorno grfico de ArcView (quitar o aadir mens, etc) Modificar las herramientas estndar de ArcView Crear nuevas herramientas que respondan a nuestras necesidades Integrar ArcView con otros programas

Cmo trabaja Avenue? Avenue es un lenguaje de programacin orientado a OBJETOS. Entendemos por objeto un grupo, definido por una serie de caractersticas o propiedades. Por ejemplo, un coche es un objeto definido por su color, modelo, nmero de puertas, etc. Los coches pueden realizar toda una serie de acciones tales como correr, detenerse, girar a la izquierda y a la derecha, etc.; adems los coches se encuentran en un estado concreto de direccin, de velocidad, de consumo, etc. Los objetos pueden relacionarse ente ellos, pueden construirse entre ellos, y usar a los otros. El programa ArcView trabaja siempre con objetos. Cuando abrimos una vista estamos usando el 'objeto vista', cuando aadimos un tema a la vista estamos usando el 'objeto tema' etc. As pues, para trabajar con objetos implica que debemos saber cmo llamarlos, qu pueden hacer, y cmo decir lo que deben hacer. Cuando trabajamos con Avenue escribimos el cdigo fuente en un documento o SCRIPT, que es precisamente como se denomina el quinto mdulo de ArcView. Dentro de este mdulo abrimos una ventana para escribir el cdigo, luego lo compilamos y lo relacionamos a un botn o men a partir del cual se activar. Los scripts se guardan en archivos de texto con extensin AVE. Cmo aprender Avenue? Este curso pretende introducirte en uno de los mdulos de ArcView

menos utilizados por los usuarios medios y que tiene grandes aplicaciones. Los ejercicios que recoge este tutorial estn muy pautados ya que nuestro objetivo es que puedas seguir fcilmente el curso y que asimiles de forma progresiva toda la informacin que te ofrecemos. Es recomendable que no hagas los ejercicios de forma mecnica, deberas procurar tener en cuenta los objetivos que se han planteado y en qu paso te encuentras. Tambin es recomendable que para entender como trabaja Avenue intentes entrar en la lgica de este lenguaje, que procures esclarecer cual ser el prximo paso que debes dar. En este sentido la ayuda te ser de gran utilidad porque, a diferencia de lo que sucede habitualmente no contiene solamente texto. Otra forma muy eficaz de aprender Avenue es trabajar con scripts ya elaborados, porque nos permiten conocer cual es su propsito y consultar el cdigo fuente paso a paso para aprender como se han realizado. Tal y como ya hemos dicho anteriormente, ArcView trabaja con objetos, as pues podemos consultar el cdigo fuente de la orden 'zoom in' y estudiar como acta. Puedes encontrar muchos scripts en Internet, sobretodo en la pgina web de ESRI, http://arcscripts.esri.com. Adems tambin hay autodidactas que ofrecen sus scripts a todo el mundo. Por consiguiente, si haces este curso de introduccin a Avenue, adems de adquirir los conocimientos bsicos sobre este lenguaje de programacin, tambin podrs adquirir scripts de gran utilidad y que podrs implementar en tu puesto de trabajo.

Qu queremos hacer? Los casos prcticos Para facilitarte la comprensin de Avenue, a continuacin te ofrecemos un caso prctico : Nos han encargado que elaboremos una aplicacin a partir de ArcView 3.0 para gestionar toda la informacin referente a la ciudad de Sant Gabriel. Las principales tareas que el usuario debe llevar a cabo es consultar varias capas de informacin: los distritos de la ciudad , autopistas, carreteras y las localizaciones ptimas para situar una determinada actividad como por ejemplo una escuela. Ante esta demanda, y el hecho que los usuarios no saben utilizar ArcView, hemos optado por optimizar el programa ArcView y crear una aplicacin que le facilite su uso. Esta aplicacin se desarrolla en

los ejercicios 1, 2 y 3. Ejercicio 1. Pasos a seguir: 1.1.- Aadir una opcin en el men de texto que te simplifique el proceso de cargar los temas relativos al proyecto:

Distritos Distritos segn nombre (con una leyenda apropiada que diferencie cada distrito) Autovas Autovas segn nombre (con un color para cada autova) Calles Calles segn nombre Ubicaciones posibles de la escuela (con una leyenda que identifique a las ubicaciones ptimas)

1.2.- Desarrollar un script para cada opcin de men. Ejercicio 2. Pasos a seguir: 2.1.- Aada una segunda opcin de texto, con algunas utilidades, que tambin sirvan para simplificar algunos de los procesos que los usuarios pueden que utilicen:

Borrar un tema determinado Borrar todo Seleccionar un distrito

2.2.- Desarrollar un script para cada opcin de men. Estos ejercicios elaboran scripts muy similares pero introducen nuevas lneas de cdigo fuente de Avenue, por este motivo le recomendamos que los haga en el orden preestablecido. Ejercicio 3. Pasos a seguir: 3.1.- Todo lo que hemos realizado hasta ahora queremos reutilizarlo en diferentes aplicaciones. Para ello podemos realizar una EXTENSION. Entendemos por extensin el mdulo donde se guardan las funcionalidades o utilidades que sirven para facilitar la tarea en una aplicacin; sera el equivalente a un controlador de

Visual Basic.

Crea el Script que realice la extensin Crea el Script de instalacin Crea el Script de desinstalacin

3.2.- Ejecutar el Script que realiza la Extensin.

3. Ejercicios prcticos Ejercicio 1 - Setup Antes de empezar el ejercicio lee atentamente las instrucciones sobre cmo debes llevarlo a cabo:

Si no lo has hecho con anterioridad, crea un directorio en 'C:' con el nombre 'Curs_ArcView' Dentro de este directorio, crea una subcarpeta y nmbrala 'avenue1'. (Nota: nombra a las carpetas exactamente tal y como aparece aqu!)

Clica aqu para bajar la informacin que necesita para realizar el ejercicio y gurdala en la carpeta que has creado. Descomprime el archivo ZIP en esta misma carpeta.

Ejercicio 1 - Preparar el proyecto. Consulta de la informacin


Abre un nuevo proyecto de ArcView 3.0 Carga en una vista los temas que encontrars en'c:\curs_arcview\avenue1\': - autovas.shp - calles.shp - distric.shp - lugares.shp

Consulta toda la informacin que contienen estos temas para familiarizarte con ellos (no te preocupes ahora de los colores ni de la leyenda de los temas) Desde el men de texto superior, clica en View - Properties: en la casilla 'Name' escribe este ttulo para la vista Posibles ubicaciones de la escuela

Establece como unidades de mapa 'meters' Establece como unidades de medicin 'meters' Clica 'OK' Guarda el proyecto con el nombre de 'St_Gabriel.apr' en c:\curs_arcview\avenue1\'

Ejercicio 1 - Personalizar los mens de ArcView 1. Si haces doble click en la derecha de la lnea superior de botones (no encima de ellos) te aparecer una ventana que te permite personalizar los Mens 'Customize'. 2. Sita el recuadro negro sobre el men 'Theme'. 3. Clica sobre el botn 'New Menu'. 4. Clica dos veces sobre el campo 'Label' que est situado en la parte inferior de la ventana. 5. En la ventana que aparece, escribe 'CIUDAD DE ST GABRIEL'. 6. Ahora clica 'OK' . 7. Cierra la ventana para personalizar los Mens haciendo click sobre la 'x' de la parte superior derecha. Tal y como puedes observar, en el men de ArcView aparecen las opciones que has insertado 1. Vuelve a abrir la ventana para personalizar los Mens 2. Sita el recuadro negro sobre el men 'CIUDAD DE ST GABRIEL' 3. Clica sobre el botn 'New item' 4. Busca 'Label' en los campos inferiores de la ventana, y clica dos veces sobre l 5. En la ventana que aparece, escribe 'Distritos' y clica 'OK' 6. Para insertar los tems 'Distritos segun nombre', 'Autovias', 'Autovias segun codigo', 'Calles principales', 'Calles segun nombre', y 'Posibles ubicaciones de la escuela' repita los pasos desde el punto 3. Hasta ahora solo has modificado los Mens, pero stos no tienen utilidad ya que no hacen nada por si solos.

Ejercicio 1 - Escribir un script - 'Autovias' Objetivo del script A continuacin vamos a escribir un script que asociado al men 'Autovias'cargue directamente el tema 'Autovias.shp'de color azul claro en la vista. Proceso 1. Vuelve a la ventana del proyecto y clica sobre el mdulo SCRIPTS. 2. Abre un script pulsando el botn 'New'. 3. Escribe dentro de la ventana:

TheView=av.GetProject.FindDoc(Posibles Ubicaciones de la escuela) source=SrcName.Make(c:\curs_arcview\avenue1\autovias.shp") autov=theme.make(source) MyLegend=autov.GetLegend simbolo=MyLegend.GetSymbols.get(0).SetColor(Color.GetCyan) autov.SetLegendVisible(false) TheView.AddTheme(autov) autov.SetName(Autovias) autov.SetVisible(true) autov.SetActive(true)

Explicacin del script Aunque le resultar difcil porque es la primera vez que lo hace, intente observar como se programa con Avenue. Programar con Avenue se basa esencialmente en saber localizar un objeto, saber llamarlo y que ste realice una de sus posibles funciones. El script empieza creando una serie de variables que tan solo buscan e identifican a los objetos con los que queremos trabajar. Estas variables son muy tiles porque se pueden usar repetidamente. Los nombres de las variables son aleatorios, si bien no pueden coincidir con el nombre del objeto (por ejemplo: view, theme, legend, etc., por eso ponemos TheView, MyLegend, etc.) "TheView=av.GetProject.FindDoc(Posibles Ubicaciones de la escuela) Con esta primera lnea creamos la variable 'TheView'. Esta variable sirve para reconocer el proyecto en el que estamos trabajando, y dentro de ste busca el documento Posibles Ubicaciones de la

escuela. source=SrcName. Make(c:\curs_arcview\avenue1\autovias.shp) La variable 'source' especifica dnde se encuentra el tema que se quiere cargar autov=theme.make(source) La variable 'autov' crea un tema con la informacin que recoge de 'source'. Nota: Ahora solo faltara indicarle que cargue el tema 'autovias' en la ventana (TheView.AddTheme('autov')) que activar para visualizarlo (autov.SetVisible(true)) y que quedar seleccionado (autov.SetActive(true)). Hasta aqu, el script funciona correctamente. Pero el propsito de este script no es slo cargar el tema, sino que queremos que lo cargue de un color determinado. Para ello, debemos escribir: MyLegend=autov.GetLegend Con la variable 'MyLegend', recogemos (GetLegend) la leyenda del tema 'distric' y ahora ya podemos modificarla. simbolo=MyLegend.GetSymbols.get(0).SetColor(Color.GetCyan) La variable 'simbolo' nos permite acceder a los smbolos de 'MyLegend', indicarle que queremos modificar el color (SetColor) y especificarle (color.GetCyan) que lo queremos azul claro. autov.SetLegendVisible(false) Esta lnea de cdigo no es estrictamente necesaria. Tan slo permite que el smbolo no aparezca en la vista al lado del nombre del tema (pero este comando es muy til cuando tienes muchos temas con leyendas muy largas). TheView.AddTheme(autov) Llamamos a la variable 'TheView' para localizar la ventana donde debemos aadir ('AddTheme') el tema ('autov'). autov.SetName(Autovias) Cuando cargamos un tema en la lista de temas de la ventana aparece el nombre del archivo (con extensin SHP). Mediante esta lnea le especificamos que aparezca el tema 'Autovias'. autov.SetVisible(true) Cuando cargamos un tema este siempre aparece desactivado. Para poder visualizarlo debemos de activarlo (clicar sobre la cajita que

aparece a la izquierda del tema). Mediante esta lnea le estamos indicando que el tema 'autov' debe aparecer automticamente visible. autov.SetActive(true) Por ltimo mediante esta lnea estamos especificando que el tema 'autov' quede seleccionado. Ejercicio 1 - Compilar el script

Compila el script clicando en la herramienta

Ensaya pulsando la herramienta . Si funciona deber aparecer la ciudad de Sant Gabriel en la vista. Si no funciona intntalo de nuevo.

De todas formas este script tambin se puede ejecutar desde el men de vista en vez de como lo hemos hecho ahora.

3. Ejercicios prcticos Ejercicio 1 - Guardar el script dentro del proyecto


Volver a la ventana de script. Desde el men de texto vaya a 'Script - Properties' En la casilla 'name' escribe 'autov_1' Clica sobre 'OK' Guarda el proyecto para salvaguardar todo el trabajo que hemos hecho hasta ahora.

Ejercicio 1 - Asociar el script con una opcin del men


Vuelve a la ventana de la vista para visualizar el men relativo a las vistas. Haz doble click a la derecha de la lnea superior de botones (no encima de ellos) y te aparecer una ventana en la que podrs personalizar los Mens 'Customize'. Sita el recuadro negro sobre la opcin de men 'Autovias' que has creado anteriormente. Busca el comando 'Click' en los campos inferiores de la ventana, y clica sobre l dos veces. En la ventana 'Script Manager' busca el script 'autov_1' de la lista de scripts disponibles. Haz un click sobre l para seleccionarlo y a continuacin clica sobre 'OK'. Cierra la ventana de personalizar los Mens

Ejercicio 1 - Elaboracin del script para 'Autovas segn cdigo' Objetivo del sript Vamos a escribir un script que, asociado al men 'Autovias segun codigo' que hemos elaborado previamente, cargue directamente el tema 'Autovias.shp' en la vista pero con una leyenda que identifique cada autova (que se asign a cada autova). Si el usuario editara la leyenda y en la opcin 'Legend Type' (de la ventana de la edicin de la leyenda) escogiera la opcin 'Unique Value' (que permite elaborar una leyenda segn un campo de la tabla de atributos) obtendramos el mismo resultado, pero mediante este script nos ahorramos todo el proceso de la elaboracin de las leyendas, dndole al usuario final una mayor operatividad. Proceso

Vuelve a la ventana del proyecto y clica sobre el mdulo SCRIPTS. Abre un script pulsando sobre el botn 'New' Escribe dentro de la ventana:

TheView=av.GetProject.FindDoc(Posibles Ubicaciones de la escuela) source=SrcName.Make(c:\curs_arcview\avenue1\autovias.shp") autov=theme.make(source) MyLegend=autov.GetLegend MyLegend.unique(autov,Fwy_num) TheView.AddTheme(autov) autov.SetName(Autovias) autov.SetVisible(true) autov.SetActive(true)

Explicacin del script El script es casi idntico al primero, pero hay tres diferencias:

Hemos borrado la variable 'simbolo=MyLegend.GetSymbols' y tambin hemos eliminado la lnea de cdigo 'simbolo.get(0).SetColor(Color.GetCyan)' y que determina que las autovas aparezcan de color azul claro. Se ha aadido la lnea 'MyLegend.unique(autov, Fwy_num)'. La lnea 'autov.SetLegendVisible(false)' ha desaparecido.

Por qu hemos hecho estos cambios?

La lnea 'simbolo=MyLegend.GetSymbols' ya no nos hace falta porque no queremos modificar los smbolos sino que queremos crearlos desde un sistema para elaborar leyendas concreto del programa (en este caso, la lnea que nos importa es 'MyLegend=autov.GetLegend'. La lnea 'MyLegend.unique(autov,Fwy_num)' establece el sistema de elaborar leyendas que queremos, que en este caso es el 'unique'. Este sistema requiere que le especifiquemos con qu tema tiene que trabajar, y con que tem de su tabla de datos debe construir la leyenda. Usamos 'Fwy_num' para diferenciar cada autova segn su nmero. Borramos 'autov.SetLegendVisible(false)' para que aparezcan los smbolos en la leyenda del tema, porque ahora nos interesa saber a qu autova se refiere cada color.

Los siguientes pasos son los mismos que para el primer script, es decir:

Compilar el script. Guardarlo dentro del proyecto con el nombre 'autov_2'. Asociar el script al men 'CIUDAD DE ST GABRIEL Autovias segun codigo'.

Qu hemos conseguido? A partir de ahora, el usuario final no tendr que saber ni donde se encuentra la informacin referente a las autovas de su ciudad, qu tiene que hacer para cargar un tema, ni cmo modificar la leyenda, etc. Adems, hemos simplificado un proceso relativamente largo en una sola accin lo cual es una comodidad, inclusive para los usuarios con experiencia. Ahora esperemos que al clicar sobre 'Autovias' o bien en 'Autovia segun codigo' en el men de 'CIUDAD DE SANT GABRIEL' aparezca el tema autovias.shp sin o con la leyenda elaborada a partir del campo 'Fwy_num'. Si no es as, es que hay algn error en los scripts que has elaborado (ir a errores). 3. Ejercicios prcticos Ejercicio 1 - Errores Si haa escrito el cdigo errneamente, ArcView responder con un mensaje de error. Si el mensaje de error es este:

No se debe a un error de cdigo, lo que sucede es que el script hace referencia a una vista y no la encuentra. Haz clic sobre la ventana de la vista, vuelve a la ventana del script y actvalo de nuevo. Si no funciona y la causa es que hay un error de cdigo, el mensaje de error nos da una pista de dnde puede esta el problema; asimismo, dentro de la ventana del script el cursor intermitente se sita en donde el programa, al compilar, ha localizado el error. Una vez localizado donde est el error la ayuda del programa le ser de gran utilidad. Por ejemplo, si escribimos el mismo script pero le introducimos un error: (Error) TheView=av.GetProject.FindDoc("View1") source=SrcName.Make(c:\curs_arcview\avenue1\distric.shp") district=theme.make(source) MyLegend=district.GetLegend.unique(district,"city_name") TheView.AddTheme district.SetVisible(true) district.SetActive(true)

Aparece El mensaj e ya indica que 'Add Theme ' necesita 1 parmetro ms.

Clica dos veces sobre la palabra AddTheme

Clica sobre el icono

Aparece la ventana de ayuda, que te especifica como debe ser la sintaxis cuando se usa 'AddTheme'. Tal y como puedes apreciar, la sintaxis pide que le especifiques un tema (a Theme), por lo tanto debes escribir: 'The View.AddTheme(district)'. Sin lugar a duda, una de las cuestiones ms importantes es aprender a moverse por la ayuda. Ejercicio 1 - Elaboracin del script para 'Distritos' Objetivo del script Ahora vamos a escribir un script que, asociado al men 'Distritos' que hemos elaborado previamente, cargue directamente el tema 'distric.shp' en la vista con unos colores determinados. Proceso

Vuelve a la ventana del proyecto y clica sobre el mdulo SCRIPTS para abrir una ventana de script. Abre un script pulsando sobre el botn 'New' Escribe dentro de la ventana:

TheView=av.GetProject.FindDoc("Posibles Ubicaciones de la escuela") source=SrcName.Make("c:\curs_arcview\avenue1\distric.shp") distritos=theme.make(source) MyLegend=distritos.GetLegend simbolo=MyLegend.GetSymbols simbolo.get(0).SetColor(Color.Getgray) simbolo.get(0).SetOLColor(Color.GetYellow) distritos.SetLegendVisible(false) TheView.AddTheme(distritos) distritos.SetName("Distr.St Gabriel") distritos.SetVisible(true) distritos.SetActive(true)

Los siguientes pasos son los mismos que para el primer script, es decir:

Compilar el script Guardarlo dentro del proyecto con el nombre 'district_1' Asociar el script al men 'CIUDAD DE ST GABRIEL Distritos'

Explicacin del script Como puedes comprobar, este script es casi idntico al que hemos elaborado para (autov_1.ave), tan solo hay una diferencia entre ellos y es que hay una lnea nueva: 'simbolo.get(0).SetOLColor(Color.GetYellow)' En esta lnea introducimos un objeto nuevo: SetOLColor que nos permite modificar el color de la lnea de los polgonos.

Ejercicio 1 - Elaboracin del script para 'Distritos segn nombre' Ahora vamos a escribir un script que, asociado al men 'Distritos' que hemos elaborado anteriormente, cargue directamente el tema 'distric.shp' pero que adems tambin muestre cada distrito de un color diferente. El objetivo de este script es muy parecido al del men 'Autovias segun codigo' pero en este caso vamos a introducir una nueva condicin. Como habris podido comprobar, cuando se carga el tema autovias.shp el script asigna colores de forma aleatoria a cada autova. Ahora haremos un script en el que le indicaremos que queremos usar una paleta de colores de ArcView predeterminada que se llama "Cool Tones". Proceso

Vuelve a la ventana del proyecto y clica sobre el mdulo SCRIPTS para abrir una ventana de script. Abre un script pulsando sobre el botn 'New'. Escribe dentro de la ventana:

TheView=av.GetProject.FindDoc("Posibles Ubicaciones de la escuela") source=SrcName.Make("c:\curs_arcview\avenue1\distric.shp") district=theme.make(source) MyLegend=district.GetLegend MyLegend.unique(district,"city_name") Colores=SymbolList.GetPredefined(#SYMLIST_TYPE_COLORSCHEME) for each tonalidad in Colores if(tonalidad.GetName="Cool Tones") then Colores = tonalidad end

end MyLegend.GetSymbols.RandomSavedSymbols(Colores) TheView.AddTheme(district) district.SetName("Distritos segun nombre") district.SetVisible(true) district.SetActive(true)

Los siguientes pasos son los mismos que para el primer script:

Compilar el script Guardarlo dentro del proyecto con el nombre 'district_2' Asociar el script al men 'CIUDAD DE ST GABRIEL - Distrito segun nombre'

Explicacin del script Este script se diferencia del script que hemos realizado para el men 'Autovias segun numero' por las lneas de cdigo de color rojo. Estas lneas determinan que la leyenda del tipo 'unique' (que ya hemos usado en el script anterior) use una simbologa predeterminada de ArcView que se llama "Cool Tones".

Ejercicio 1 - Elaboracin del script para 'Calles' Objetivo del script Este script es idntico al que tiene como objetivo cargar el tema 'Calles.shp' desde el Men, pero en este caso, queremos que la lnea que representa las calles sea ms ancha que la que representa a las autovas. Para ello debes introducir una nueva lnea de cdigo. Proceso 1.- Si queremos modificar la simbologa de la leyenda de un tema que se encuentra en una vista, tal y como ya hemos hecho en otros scripts, primero se debe de identificar estos objetos. TheView=av.GetProject.FindDoc("Posibles Ubicaciones de la escuela") source=SrcName.Make("c:\curs_arcview\avenue1\calles.shp") calles=theme.make(source) MyLegend=calles.GetLegend simbolo=MyLegend.GetSymbols Te sitas en la vista adecuada, obtienes el tema, recoges la leyenda y llegas a los smbolos

2.- Una vez tenemos los smbolos, consultamos qu podemos hacer con ellos. Clica sobre la icona de ayuda 2.1.-Escribe 'symbol' en la ventana que aparece. La ayuda de Avenue encuentra automticamente la palabra 'symbol', y te indica que ya es un objeto. 2.2.-Si clicas sobre 'Mostrar' te ensear la informacin referente a 'symbol'. 2.3.- Como puedes ver, este objeto tiene una serie de atributos: BgColor, Color, etc., y uno de ellos es 'size', lo cual significa que Avenue te permitir modificar su grosor. 2.4.- En el apartado 'Getting and Setting attributes' podemos observar los atributos y las caractersticas que tienen los objetos. Buscamos algo parecido a 'size'. 2.5.- No, no,...con 'GetSize' no podrs modificar el grosor, tan solo lo obtendrs. Si miras un poco ms abajo encontrars 'Setsize' que es el cdigo con el que debes trabajar. 2.6.- Clica una vez sobre 'SetSize'. Te aparecer la ventana de sintaxis en la que te muestra como debes introducir la lnea de cdigos.

aSymbol.SetSize (aSize)

Te pide un smbolo, que en tu caso es 'simbolo' ya que es la variable que recoge los smbolos de 'MyLegend' de 'calles', y tambin requiere que le especifiques un nmero de grosor. Pon 2. 3.- Si escribes la lnea de cdigo 'simbol.Setsize(2)' no funcionar. Para que todo salga bien debes escribir 'simbolo.get(0).SetSize(2)' 4.- A continuacin escribiremos el resto del script: TheView=av.GetProject.FindDoc("Posibles Ubicaciones de la escuela") source=SrcName. Make("c:\curs_arcview\avenue1\calles.shp") roads=theme.make(source) MyLegend=roads.GetLegend

simbolo=MyLegend.GetSymbols simbolo.get(0).SetSize(2) simbolo.get(0).SetColor(Color.GetBlue) TheView.AddTheme(roads) roads.SetName("Calles Principales") roads.SetVisible(true) roads.SetActive(true)

Cuando hayas escrito el script debes: 5.-Compilar el script 6.-Guardarlo dentro del proyecto con el nombre 'road_2' 7.-Asociar el script al men 'CIUDAD DE ST GABRIEL Principales Calles'

Ejercicio 1 - Elaboracin del script para 'Distritos segn nombre' Ahora vamos a escribir un script que, asociado al men 'Distritos' que hemos elaborado anteriormente, cargue directamente el tema 'distric.shp' pero que adems tambin muestre cada distrito de un color diferente. El objetivo de este script es muy parecido al del men 'Autovias segun codigo' pero en este caso vamos a introducir una nueva condicin. Como habris podido comprobar, cuando se carga el tema autovias.shp el script asigna colores de forma aleatoria a cada autova. Ahora haremos un script en el que le indicaremos que queremos usar una paleta de colores de ArcView predeterminada que se llama "Cool Tones". Proceso

Vuelve a la ventana del proyecto y clica sobre el mdulo SCRIPTS para abrir una ventana de script. Abre un script pulsando sobre el botn 'New'. Escribe dentro de la ventana:

TheView=av.GetProject.FindDoc("Posibles Ubicaciones de la escuela") source=SrcName.Make("c:\curs_arcview\avenue1\distric.shp") district=theme.make(source) MyLegend=district.GetLegend MyLegend.unique(district,"city_name") Colores=SymbolList.GetPredefined(#SYMLIST_TYPE_COLORSCHEME) for each tonalidad in Colores if(tonalidad.GetName="Cool Tones") then Colores = tonalidad

end end MyLegend.GetSymbols.RandomSavedSymbols(Colores) TheView.AddTheme(district) district.SetName("Distritos segun nombre") district.SetVisible(true) district.SetActive(true)

Los siguientes pasos son los mismos que para el primer script:

Compilar el script Guardarlo dentro del proyecto con el nombre 'district_2' Asociar el script al men 'CIUDAD DE ST GABRIEL - Distrito segun nombre'

Explicacin del script Este script se diferencia del script que hemos realizado para el men 'Autovias segun numero' por las lneas de cdigo de color rojo. Estas lneas determinan que la leyenda del tipo 'unique' (que ya hemos usado en el script anterior) use una simbologa predeterminada de ArcView que se llama "Cool Tones".

Ejercicio 1 - Elaboracin del script para 'Calles' Objetivo del script Este script es idntico al que tiene como objetivo cargar el tema 'Calles.shp' desde el Men, pero en este caso, queremos que la lnea que representa las calles sea ms ancha que la que representa a las autovas. Para ello debes introducir una nueva lnea de cdigo. Proceso 1.- Si queremos modificar la simbologa de la leyenda de un tema que se encuentra en una vista, tal y como ya hemos hecho en otros scripts, primero se debe de identificar estos objetos. TheView=av.GetProject.FindDoc("Posibles Ubicaciones de la escuela") source=SrcName.Make("c:\curs_arcview\avenue1\calles.shp") calles=theme.make(source) MyLegend=calles.GetLegend simbolo=MyLegend.GetSymbols Te sitas en la vista adecuada, obtienes el tema, recoges la leyenda y llegas a los smbolos

2.- Una vez tenemos los smbolos, consultamos qu podemos hacer con ellos. Clica sobre la icona de ayuda 2.1.-Escribe 'symbol' en la ventana que aparece. La ayuda de Avenue encuentra automticamente la palabra 'symbol', y te indica que ya es un objeto. 2.2.-Si clicas sobre 'Mostrar' te ensear la informacin referente a 'symbol'. 2.3.- Como puedes ver, este objeto tiene una serie de atributos: BgColor, Color, etc., y uno de ellos es 'size', lo cual significa que Avenue te permitir modificar su grosor. 2.4.- En el apartado 'Getting and Setting attributes' podemos observar los atributos y las caractersticas que tienen los objetos. Buscamos algo parecido a 'size'. 2.5.- No, no,...con 'GetSize' no podrs modificar el grosor, tan solo lo obtendrs. Si miras un poco ms abajo encontrars 'Setsize' que es el cdigo con el que debes trabajar. 2.6.- Clica una vez sobre 'SetSize'. Te aparecer la ventana de sintaxis en la que te muestra como debes introducir la lnea de cdigos.

aSymbol.SetSize (aSize)

Te pide un smbolo, que en tu caso es 'simbolo' ya que es la variable que recoge los smbolos de 'MyLegend' de 'calles', y tambin requiere que le especifiques un nmero de grosor. Pon 2. 3.- Si escribes la lnea de cdigo 'simbol.Setsize(2)' no funcionar. Para que todo salga bien debes escribir 'simbolo.get(0).SetSize(2)' 4.- A continuacin escribiremos el resto del script: TheView=av.GetProject.FindDoc("Posibles Ubicaciones de la escuela") source=SrcName. Make("c:\curs_arcview\avenue1\calles.shp") roads=theme.make(source) MyLegend=roads.GetLegend

simbolo=MyLegend.GetSymbols simbolo.get(0).SetSize(2) simbolo.get(0).SetColor(Color.GetBlue) TheView.AddTheme(roads) roads.SetName("Calles Principales") roads.SetVisible(true) roads.SetActive(true)

Cuando hayas escrito el script debes: 5.-Compilar el script 6.-Guardarlo dentro del proyecto con el nombre 'road_2' 7.-Asociar el script al men 'CIUDAD DE ST GABRIEL Principales Calles' Ejercicio 1 - Elaboracin del script para 'Calles segun nombre' Objetivo del script El objetivo de este script es cargar en la vista el tema 'calles.shp' de modo que cada calle aparezca de un color predeterminado. Proceso Este script es idntico al script del men 'Autovias segun codigo' o al de 'Distrito segun nombre' . A diferencia de los casos anteriores, esta vez no escribirs todo el script sino que abrirs uno de los scripts que se han mencionado ( 'Autovias segun codigo' o 'Distrito segun nombre'). Haz las modificaciones que creas necesarias para que funcione. Suerte! Para abrir un script ya elaborado tan slo hace falta situarse en el mdulo de scripts. En la ventana del proyecto te aparecer una lista con todos los scripts que se han guardado con el proyecto. Si haces doble click sobre cualquiera de ellos, la ventana se abrir automticamente.

Ejercicio 1 - Elaboracin del script para 'Posibles ubicaciones de la escuela' Objetivo del script El objetivo de este script es el de cargar el tema 'lugares.shp' diferenciando las ubicaciones posibles de la escuela respecto de la ptima. Las ubicaciones ms idneas debern de aparecer en rojo mientras que las menos adecuadas

en gris. Proceso TheView=av.GetProject.FindDoc("Posibles Ubicaciones de la escuela") source=SrcName.Make(c:\curs_arcview\avenue1\lugares.shp") lugares=theme.make (source) lugares.GetLegend.unique(lugares,"Site_type") lugares.SetName("Posibles Ubicaciones de la escuela") lugares.GetLegend.GetSymbols.get(0).GetColor.setrgblist({255,0,0}) lugares.GetLegend.GetSymbols.get(1).GetColor.setrgblist({190,190,190}) lugares.SetName("Posibles Ubicaciones de la escuela") TheView.AddTheme(lugares) lugares.SetVisible(true)

Explicacin del script La mayora de las lneas de cdigo ya las conoces. El script va a buscar el tema 'lugares.shp' y elabora una leyenda para este tema con el mtodo 'unique' a partir del tem 'Site_type' (como ya has visto en scripts anteriores). Mediante el mtodo 'unique' se obtienen unos colores aleatorios, por lo tanto debers determinarle los colores que quieres. Con 'unique' se ha conseguido elaborar una leyenda con dos colores (ya que el tem "Site_type" tiene tan solo dos valores). Las siguientes lneas en rojo sirven para determinar el color que se quiere para cada smbolo.

Ejercicio 1 - Guardar el script como un archivo de texto ( extensin *.AVE ) Puedes guardar el cdigo fuente en un archivo con extensin AVE

Abre una ventana de Script con uno de los scripts que has elaborado. Desde el menu de texto, selecciona 'Script - Write Text File' Aparece una ventana donde se debe especificar el nombre del archivo y su ubicacin.

De esta forma, puedes grabar tu script en un disquete e implementarlo en cualquier otro ArcView.

Ejercicio 1 - Recuperar el cdigo fuente desde un archivo *.AVE


Abre una ventana de Script Desde el men de texto, selecciona 'Script - Load Text File' Aparece una ventana donde puedes especificar que archivo *AVE que quieres cargar

Posteriormente, slo tendrs que compilarlo y asociarlo a un botn o Men. Recuerda que estos scripts estn relacionados con unos nombres determinados que estn situados en una carpeta concreta. Debes modificar todos estos parmetros para que funcione en otra estructura y con otros shapes.

Anda mungkin juga menyukai