-
Notifications
You must be signed in to change notification settings - Fork 15
Guía de desarrollo de visualizadores con React
La API-CNIG 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-CORE 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-CNIG
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
).
- Usar el comando
npm create vite@latest
(existen otras alternativas a npm, como yarm o pnpm). - Posteriormente instalar Vite,
npm i vite
onpm install -g vite
. - Incluir los CDN de la API-CNIG en el archivo index.html.
<!-- fichero estilos -->
<link href="https://componentes.cnig.es/api-core/assets/css/apiign.ol.min.css" rel="stylesheet" />
<!-- ficheros javascript -->
<script type="text/javascript" src="https://componentes.cnig.es/api-core/js/apiign.ol.min.js"></script>
<script type="text/javascript" src="https://componentes.cnig.es/api-core/js/configuration.js"></script>
- 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>
- 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 />
)
- Crear el mapa, en este ejemplo se creará en App.jsx
import { useEffect } from 'react'
function App() {
useEffect(() => {
const mapajs = window.M.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-CORE 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-CNIG
1.2. Documentación y Puntos de acceso
1.3. Primeros pasos
1.4. Diagrama API CNIG
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.4. Paneles
» Creación de panel desde cero sin controles
» Tutorial Panel de un único control
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
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