Skip to content

Guía de desarrollo de visualizadores con React

Jesús Guillen Encinas edited this page Feb 26, 2026 · 1 revision

Guía de desarrollo de visualizadores con React

La API-IDEE no obliga a utilizar ningún framework o librería para desarrollar proyectos, para su utilización se tendrá que importar los CDN necesarios para su utilización.

Requisitos e instalación de dependencias: Node.js (version 14.18+, 16+.)

Los visualizadores que realiza el CNIG con la API-IDEE utilizan esta librería "React". Es una librería open source para crear interfaces de usuarios.

Se recomienda utilizar una herramienta de construcción ("Build Tools") para generar el proyecto de React. La documentación de React recomienda utilizar Vite.

Pasos para desarrollar una Aplicación de React de cero con la API-IDEE
En este caso se utilizará Vite como "build tools", pero este ejemplo se extiende para cualquier otro tipo de "build tools", por ejemplo npx (npx create-next-app).

  1. Usar el comando npm create vite@latest (existen otras alternativas a npm, como yarm o pnpm).
  2. Posteriormente instalar Vite, npm i vite o npm install -g vite.
  3. Incluir los CDN de la API-IDEE en el archivo index.html.
  <!-- fichero estilos -->
   <link href="https://componentes.idee.es/api-idee/assets/css/apiidee.ol.min.css" rel="stylesheet" />

   <!-- ficheros javascript -->
   <script type="text/javascript" src="https://componentes.idee.es/api-idee/js/apiidee.ol.min.js"></script>
   <script type="text/javascript" src="https://componentes.idee.es/api-idee/js/configuration.js"></script>
  1. Incluir los estilos básicos en el archivo index.html
<!-- estilo básico -->
<style>
 html,
 body, 
 #root {
     margin: 0;
     padding: 0;
     height: 100%;
     width: 100%;
  }

.map {
    border: 0;
    width: 100%;
    height: 100%;
}
</style>
  1. Modificar main.jsx en desarrollo
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App.jsx'
import './index.css'


ReactDOM.createRoot(document.getElementById('root')).render(

  // StrictMode renders components twice (on dev but not production) in order to detect any problems with 
  // your code and warn you about them (which can be quite useful).
  // <React.StrictMode>
  //   <App />
  // </React.StrictMode>,

  <App />

)
  1. Crear el mapa, en este ejemplo se creará en App.jsx
import { useEffect } from 'react'

function App() {
  useEffect(() => {
    const mapajs = window.IDEE.map({
      container: "map"
    });
    console.log(mapajs)
  }, [])

  return (
    <>
      <div className='map' id='map'></div>
    </>
  )
}

export default App

En el caso de Vite para levantar el proyecto se utiliza npm run dev, es lo mismo que hacer npm start o npm run start.

*** Para poder ver el resultado en una máquina distinta a la que se levanta el proyecto, habrá que modificar el archivo vite.config.js de la siguiente manera

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
  server: {
    host: true,
    port:3000 // o el puerto que se quiera
  },
})

Remarcar la necesidad de importar los CDN en el archivo index.html que se encuentra en la carpeta public para poder utilizar la API-IDEE dentro de la carpeta src.

Para los visualizadores creados con npx create-next-app, para el desarrollo en local se utilizará el comando npm start o npm run start, este comando levanta un servidor de desarrollo.

Para compilar el proyecto se utilizará npm run build, en el caso de utilizar Maven se usará mvn clean package.

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

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
     + WMC
     + WMTS
     + TMS
     + XYZ
     + OSM
     + MBTiles
     + GenericRaster
     + GeoTIFF
     + GeoPackageTile
   • 2.1.1.3. Capas 3D
     + Terreno
     + 3DTiles
       + info 3DTiles
   • 2.1.1.4. Capas rápidas
   • 2.1.1.5. Grupo de capas
   • 2.1.1.6. Secciones
   • 2.1.1.7. GeoPackage
   • 2.1.1.8. Capas externas

 ■ 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
 5.6. Parametrización API-REST plugins externos

6. PARAMETRIZACIÓN VISUALIZADORES

7. SOLUCIÓN DE PROBLEMAS

8. PROCESO DE VERSIONADO

9. GUÍA DE DESARROLLO
  > Guía para colaborar en el repositorio
  > Guía para el desarrollo de API-IDEE
  > Guía de test de API-IDEE
  » Tutorial desarrollo del núcleo de API-IDEE - (Cliente)
  > Guía de desarrollo de componentes
  » Tutorial desarrollo del núcleo de API-IDEE - (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-IDEE

Clone this wiki locally