Este proyecto se dividio en 2 areas de desarrollo importantes. Estas areas fueron:
-. Mapa.
-. Interfaz Grafica.
El Area de desarrollo mapa se encargo de todas las operaciones relacionadas con mapa. Las
Clases resultantes de esta area deben ser capases de entregar un mapa, en el cual deben estar
indicadas las direcciones que el usuario le entregue.
El Area de desarrolo Interfaz Grafica se encargo de generar las clases necesarias para el manejo
grafico de la aplicacion
A continuacion se mostraran las tarjetas crc utilizadas para el desarrollo:
A continuacion se muestran lso resultados finales del desarrollo y como se llegaron a estos.
Mapa:
En esta area se crearon 3 clases map,GoogleMapsTileProvider y GGcoder. La clase map es la encargada
realizar todas las operaciones necesarias para el correcto uso de un mapa y es ayudada por GoogleMapsTileProvider
y GGcoder las cuales se encargan de formatear el encabezado http y convertir las direcciones en coordenas
respectivamente.
Para la obtencion del mapa se intalo el paquete swingx el cual contiene la clases de tipo JXMAPKIT. La cual
para obtener el mapa engana al servidor enviando un encabezado http, genereado por GoogleMapsTileProvider,
al cual el servidor de google responde con el mapa. Luego convertimos las direcciones con GGcoder en coordenadas.
GGcoder toma un string que contenga una direccion valida y se la envia al servidor de geogoogle el cual responde con coordenadas geograficas respectivas.
Interfaz Grafica:
Inicialmente el programa se diseña para que como requisito básico muestre un mapa, en el sector derecho de un frame, y en el sector izquierdo de el mismo muestre una lista de direcciones, para ello se crea la clase SplitFrame, cada dirección al ser accesada con un doble click debe centrar el mapa a la dirección que indica la lista. Para ello se crea un panel dividido mediante un objeto SplitPanel, luego se crea un objeto Map y se ingresa al lado derecho del panel. Luego de este paso es necesario crear la lista de direcciones que se ingresara en el lado izquierdo del panel, para ello se usa un arreglo de strings que luego llama al objeto Sort para ordenarlos de menor a mayor distancia de un centro elegido previamente, y se crea una lista con un objeto JList que se inicializa con el nombre del arreglo, de esta forma, se crea una JList con los nombres ingresados, finalmente se ingresa la Lista al lado izquierdo del Panel. Además se desea que el programa contenga una pantalla inicial que muestre a que zona se desea acceder, por lo tanto el Panel dividido debe contener un boton para volver atrás, por ello, se crea un nuevo panel dividido, pero ahora con orientación vertical, de esta forma, se agrega el panel dividido original, en la parte superior y panel con un botón para volver atras en la parte inferior de la pantalla.
La creación de la pantalla inicial es realizada mediante la clase Principal, esta ventana consta de dos botones, uno que crea el SplitFrame en el centro de Valparaíso y el otro que crea el SplitFrame en el centro de Vina del Mar, además posee una imagen de las zonas a las que corresponde cada sector.
Diagrama UML:
|