Personal tools
You are here: Home Development Documents gvSIG desktop 1.0 / 1.1 gvSIG El proyecto y sus documentos Vista MapOverview
Document Actions

MapOverview

by Pablo Piqueras last modified 2010-06-01 22:45

Componente de tipo MapControl diseñado para utilizarlo como vista en miniatura de otro.

Introducción
-------------

*MapOverview* es un componente Java de GUI de tipo MapControl_, que actúa como localizador de un objeto *MapControl* *(llamémoslo mc_as_obj)*.

Ambos contienen la información en la misma proyección.

El *extent ajustado* de *mc_as_obj* será dibujado como un rectángulo con el borde rojo, y semitransparente en *MapOverview*, utilizando para ello un *doble-buffer*.

*MapOverview* simula una sola herramienta, denominada *"zoomtopoint"*, con la que el usuario podrá seleccionar de distintos modos un área rectangular que servirá de *extent* al puerto de vista de *mc_as_obj*, *(el área final seleccionada será la dicho extent, ajustado)*.

El comportamiento simulado por *MapOverview* es una composición de 4 Behavior_, en combinación con 3 ToolListener_, más las operaciones *zoom in* y *zoom out* que simula *MapControl* :

+-----------------------------------+-----------------------------------+---------------------------------------------------------------------------------------+
| **Behavior**                      | **ToolListener**                  | **Herramienta simulada**                                                              |
|                                   |                                   |                                                                                       |
+===================================+===================================+=======================================================================================+
| *PointBehavior*                   | *MapOverviewListener*             | Centra el *adjusted extent* en el punto seleccionado con el 2º o 3º botón del ratón.  |
+-----------------------------------+-----------------------------------+---------------------------------------------------------------------------------------+
| *RectangleBehavior*               | *MapOverviewChangeZoomListener*   | Realiza un zoom ajustando el *extent* al área rectangular seleccionada con 1º botón   |
|                                   |                                   | del ratón.                                                                            |
+-----------------------------------+-----------------------------------+---------------------------------------------------------------------------------------+
| *DraggerBehavior*                 | *MapOverviewChangeZoomListener*   | Dibuja el área rectangular seleccionada según se arrastra el 1º botón del ratón.      |
+-----------------------------------+-----------------------------------+---------------------------------------------------------------------------------------+
| *DraggerBehavior*                 | *MapOverviewPanListener*          | Permite arrastrar el área rectangular seleccionada con el 3º botón del ratón.         |
+-----------------------------------+-----------------------------------+---------------------------------------------------------------------------------------+
|                                   |                                   | Aparte soporta las herramientas ofrecidas por *MapControl* nativamente, moviendo la   |
|                                   |                                   | rueda del ratón.                                                                      |
|                                   |                                   |                                                                                       |
|                                   |                                   | * *Zoom In* centrado en el punto que indica el cursor.                                |
|                                   |                                   | * *Zoom Out* centrado en el punto que indica el cursor.                               |
+-----------------------------------+-----------------------------------+---------------------------------------------------------------------------------------+


Utiliza como cursor el del *MapOverviewListener*


.. figure:: ../fmap/images/mapcontrol/toollistenericons/ictlcruxcursor.png
   :align: center

   Cursor de MapOverviewListener


Diagrama
---------

La *figura 1* muestra el diagrama de clases que resume la implementación de *MapOverview* según se ha explicado:

.. figure:: images/projectanddocuments/vista/mapoverview/dcmapoverview.png
   :height: 380
   :width: 893
   :align: center

   *Figura 1: diagrama de clases simplificado de MapOverview.*


Captura
--------

.. figure:: images/projectanddocuments/vista/mapoverview/ejmapoverview.png
   :height: 329
   :width: 509
   :align: center

   *Figura 2: se muestra una vista de gvSIG, en donde el usuario ha seleccionado en el localizador un área rectangular que abarca toda la Comunidad Valenciana. Una vez seleccionada, se actualiza la vista principal, (MapControl), con el extent seleccionado en el localizador, ajustado al área disponible para visualizarlo.*




.. _Behavior: ../../../fmap/dirmapcontrol/behavior
.. _MapControl: ../../../fmap/dirmapcontrol/mapcontrol
.. _ToolListener: ../../../fmap/dirmapcontrol/toollistener

View source document


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: