Gestión de la extensión máxima - sigcorporativo-ja/Mapea4 GitHub Wiki

👉 Esta entrada está redactada para versiones iguales o superiores a la v5.0.1 de Mapea 👈

Qué es la extensión máxima

Respecto a un elemento, entenderemos por extensión máxima al rectángulo fuera del cual no se dibuja información sobre dicho elemento.

  • Las capas de datos OGC WMS suelen definir su propia extensión máxima a través del tag 'BoundingBox' de su información de Capacidades.
  • Las capas de datos vectoriales tienen una extensión máxima inherente a los elementos que contengan, y que sería el rectángulo mínimo que los engloba a todos.
  • En un mapa, la extensión máxima sería inicialmente el rectángulo fuera de la cual no se dibujan ninguna de las capas que contiene, aunque esto, como veremos más adelante, puede cambiar según el escenario.

La extensión máxima se define mediante dos coordenadas (x,y), correspondientes a las esquinas inferior izquierda y superior derecha del rectángulo que la representa: [ xmin, ymin, xmax, ymax ]

Mapea gestiona automáticamente las extensiones máximas de las capas y del mapa, de modo que esta última coincida con el menor nivel de zoom por defecto. Pero también ofrece métodos y herramientas para trabajar con ellas y configurarlas, en caso de que se desee otro comportamiento.

Cálculo de la extensión máxima

Veremos a continuación la lógica que se aplica a la hora de calcular la extensión máxima o maxExtent de los elementos en Mapea según su tipo, comenzando por los casos más sencillos.

> Extensión Máxima de un WMC

  1. El especificado en el tag "maxExtent".

> Extensión Máxima de una capa vectorial (WFS, GeoJSON, KML)

  1. La menor extensión que englobe a todos sus features.

Por lo tanto, en las capas vectoriales, getMaxExtent() = getFeaturesExtent().

Si se quiere simular un cambio en la extensión máxima de una capa vectorial, y que no se dibujen los features que estén fuera de un bbox determinado, se puede hacer uso de un filtro espacial.

> Extensión Máxima de una capa WMS

  1. Parámetro maxExtent de la capa, si el usuario ha establecido alguno.
  2. Si la capa proviene de un WMC, comprueba si la capa tiene maxExtent propio en dicho WMC.
  3. El maxExtent del mapa (userMaxExtent).
  4. Establece el maxExtent al del WMC global.
  5. Establece el maxExtent del getCapabilities de la capa.
  6. Establece el maxExtent del crs del mapa.

> Extensión Máxima del mapa

  1. Parámetro maxExtent para el mapa (userMaxExtent), si se ha especificado alguno.
  2. Si hay WMC, su maxExtent.
  3. Si hay capa base, su maxExtent.
  4. Calcula la envolvente de los maxExtent de las capas.
⚠️ **GitHub.com Fallback** ⚠️