Skip to content

GeoTIFF

Álvaro Ramírez edited this page Nov 21, 2024 · 12 revisions

GeoTIFF formato ráster que aprovecha un formato de archivo independiente de plataforma (TIFF) maduro añadiendo los metadatos necesarios para describir y utilizar datos de imágenes geográficas.

1.- En el constructor del mapa:

// En modo cadena 
const map = M.map({
  container: 'map',
  bbox: [268339.6976254622, 5219913.662610877, 347031.6182450511, 5241774.652700437],
  layers: ["OSM", "GeoTIFF*Capa*https://ftpcdd.cnig.es/Vuelos_2021/Vuelos_2021/catalunya_2021/Costa/01.VF/01.08_PNOA_2021_CAT_COSTA_22cm_VF_img8c_rgb_hu31/h50_0219_fot_002-0001_cog.tif"],
  projection: 'EPSG:3857*m',
});

// Instanciando la capa
const map2 = M.map({
  container: 'map',
  bbox: [268339.6976254622, 5219913.662610877, 347031.6182450511, 5241774.652700437],
  layers: [ 'OSM', 
    new M.layer.GeoTIFF({
      url: 'https://ftpcdd.cnig.es/Vuelos_2021/Vuelos_2021/catalunya_2021/Costa/01.VF/01.08_PNOA_2021_CAT_COSTA_22cm_VF_img8c_rgb_hu31/h50_0219_fot_002-0001_cog.tif',
      name: 'Nombre geotiff',
      legend: 'Leyenda geotiff',
  }, { 
    nodata: 0,
  })
],
  projection: 'EPSG:3857*m',
});

2.- Mediante los métodos addGeoTIFF/addLayers:

// Instanciamos el mapa
const map = M.map({
  bbox: [268339.6976254622, 5219913.662610877, 347031.6182450511, 5241774.652700437],
  container: 'map',
  projection: 'EPSG:3857*m',
});

// Instanciamos la capa GeoTIFF
const layer = new M.layer.GeoTIFF({
  url: 'https://ftpcdd.cnig.es/Vuelos_2021/Vuelos_2021/catalunya_2021/Costa/01.VF/01.08_PNOA_2021_CAT_COSTA_22cm_VF_img8c_rgb_hu31/h50_0219_fot_002-0001_cog.tif',
  name: 'Nombre geotiff',
  legend: 'Leyenda geotiff',
}, { 
  nodata: 0,
});

// La añadimos al mapa
map.addLayers(layer);
// También puede usarse map.addGeoTIFF(layer)
// En caso de que tuvieramos layer1, layer2 podríamos hacer
// map.addLayers([layer1, layer2]) o map.addGeoTIFF([layer1, layer2])

Parámetros:

  • name: nombre de la capa.

  • url: url del servicio.

  • legend: Nombre asociado en el árbol de contenidos, si usamos uno.

  • transparent: 'false' si es una capa base, 'true' en caso contrario. Parámetro obsoleto, se recomienda usar el parámetro isBase

  • isBase: 'true' si se quiere definir la capa como capa base, 'false' en caso contrario.

  • blob: url al servicio que devuelva el geotiff como blob.

  • attribution: Atribución de la capa.

    • name. Nombre de la atribución
    • description. Descripción de la atribución.
    • url. URL de la atribución.
    • contentAttributions. Atribuciones por objetos geográficos, por defecto vacío.
    • contentType. Tipo de url de “contentAttributions” (KML o GeoJSON).
  • visibility: 'true' si la capa es visible, 'false' si queremos que no lo sea. En este caso la capa sería detectado por los plugins de tablas de contenidos y aparecería como no visible.

  • maxExtent: Restringe la visibilidad de la capa a una extensión.

  • projection: Proyección de fuente.

  • displayInLayerSwitcher: Indica si la capa se muestra en el selector de capas.

  • options: Estas opciones se mandarán a la implementación de la capa.

    • minZoom: Zoom mínimo aplicable a la capa.
    • maxZoom: Zoom máximo aplicable a la capa.
    • minScale: Escala mínima.
    • maxScale: Escala máxima.
    • minResolution: Resolución mínima.
    • maxResolution: Resolución máxima.
    • convertToRGB: Al leer archivos GeoTIFF con el fin de mostrarlos como imágenes RGB, si se configura esta opción como "true", se convertirán otros espacios de color (YCbCr, CMYK) a RGB. Si se configura la opción como "auto", las imágenes CMYK, YCbCr, CIELab e ICCLab se convertirán automáticamente a RGB.
    • nodata: Sobreescribe el parametro nodata del dato original.
    • bands: Bandas a mostrar en forma de array y como numero, si el array esta vacio muestra todas.
    • opacity: Opacidad de capa, por defecto 1.
    • styles: Estilos de la capa.
  • vendorOptions: Opciones para la biblioteca base (el código se envía directamente a la librería base para ejecutar la funcionalidad).

Ejemplo vendorOptions:

new M.layer.GeoTIFF(
  {},
  {
    convertToRGB: false,
    nodata: 99,
  },
  {
    source: new ol.source.GeoTIFF({
      sources: [
        {
          url: 'https://ftpcdd.cnig.es/Vuelos_2021/Vuelos_2021/catalunya_2021/Costa/01.VF/01.08_PNOA_2021_CAT_COSTA_22cm_VF_img8c_rgb_hu31/h50_0219_fot_002-0001_cog.tif',
          nodata: 0,
        },
      ],
      convertToRGB: true,
      projection: 'EPSG:25831',
      normalize: true,
    }),
  },
);

Ejemplo:

const layer = new M.layer.GeoTIFF({
  url: 'https://ftpcdd.cnig.es/Vuelos_2021/Vuelos_2021/catalunya_2021/Costa/01.VF/01.08_PNOA_2021_CAT_COSTA_22cm_VF_img8c_rgb_hu31/h50_0219_fot_002-0001_cog.tif',
  name: 'Nombre geotiff',
  legend: 'Leyenda geotiff',
  isBase: false,
  visibility: true,
  maxExtent: [299487.4297775584, 5224273.407288137, 317192.1564541124, 5228878.738242318],
}, {
  minZoom: 11,
  maxZoom: 13,
  convertToRGB: false,
  nodata: 0,
  styles: {
    gamma: 0.5,
  },
}, {
  opacity: 0.3
});

1.INICIO
   1.1. Componentes de la API-CNIG
   1.2. Documentación y Puntos de acceso
   1.3. Primeros pasos
   1.4. Diagrama API CNIG

2. MAPA
2.1. Capas

 ■ 2.1.1. Fuentes
   • 2.1.1.1. Capas vectoriales
     + Vector
     + WFS
     + GeoJSON
     + KML
     + MVT
     + OGCAPIFeatures
     + MBTilesVector
     + GenericVector
     + MapLibre
   • 2.1.1.2. Capas ráster
     + WMS
     + WMTS
     + TMS
     + XYZ
     + OSM
     + MBTiles
     + GenericRaster
     + GeoTIFF
   • 2.1.1.3. Capas rápidas
   • 2.1.1.4. Grupo de capas

 ■ 2.1.2. Simbolización
   • 2.1.2.1. Genérica
     + Puntos
     + Líneas
     + Polígonos
   • 2.1.2.2. Básica
     + Puntos
     + Líneas
     + Polígonos
   • 2.1.2.3. Avanzada
     + Coropletas
     + Proporcional
     + Categorías
     + Estadísticos
     + Mapas de Calor
     + Cluster
     + Línea de flujo
     + Composición

 ■ 2.1.3. Filtros

2.3.-Plugins

  > Creación de plugin en cliente

  » Tutorial de creación de un plugin

2.4. Paneles

  » Creación de panel desde cero sin controles

  » Tutorial Panel de un único control

  » Tutorial Panel de un único control con más de un botón

  » Tutorial Panel con más de un control

2.5. Eventos

  » Gestión de eventos
  » Gestión de eventos en controles personalizados

    2.6. Internacionalización

    2.7. Configuración

    2.8. Acceso librerías base

3. UTILIDADES

4. PROXY

5. API REST
 5.1. Parametrización API-REST
 5.2. Base de Datos API-REST
 5.3. API REST Actions
 5.4. Servicio de correos electrónicos
 5.5. Capas rápidas

6. PARAMETRIZACIÓN VISUALIZADORES

7. SOLUCIÓN DE PROBLEMAS

8. PROCESO DE VERSIONADO

9. GUÍA DE DESARROLLO
  > Guía para el desarrollo de API-CNIG
  » Tutorial desarrollo del núcleo de API-CNIG - (Cliente)
  > Guía de desarrollo de componentes
  » Tutorial desarrollo del núcleo de API-CNIG - (Servidor)
  > Guía de desarrollo de plugins
  » Tutorial desarrollo de plugins ya creados
  » Tutorial desarrollo de nuevos plugins
  > Guía de desarrollo de visualizadores con React

  > Compilación proyecto API-CNIG

Clone this wiki locally