Acceso libreria base - sigcorporativo-ja/Mapea4 GitHub Wiki
Mapea es una capa en forma de API que se coloca sobre una librería de mapas base, como pueden ser Open Layers o Leaflet, con el fin, entre otros, de independizar el uso directo de las mismas. Esto facilita por ejemplo la migración o actualización de las librerías de mapas subyacientes de una manera transparente al usuario, que si usa únicamente el api de Mapea, ve como actualizar su código a esas nuevas versiones se convierte en una tarea trivial, beneficiándose de las mejoras que ello conlleva.
Para ello, Mapea ofrece en su API las operaciones de construcción y manipulación de mapas y orígenes de datos más comunes en los visualizadores web. Sin embargo, para que esto no suponga una limitación, el programador siempre podrá acceder a los objetos mapa y layer de la librería que use, y manipularlos directamente.
Esta práctica no es recomendable porque estará generando una dependencia directa de nuestro código con la librería base, pero en caso de ser necesario, puede hacerse tal como muestra el siguiente ejemplo:
// Construimos un mapa de Mapea
mapajs = M.map({
container:"map",
controls:['scale','location','layerswitcher','mouse']
});
// Accedemos al OL
var mapaOL = mapajs.getMapImpl();
// Puede hacerse lo mismo con los objetos de tipo Layer
// En este caso, estamos usando la implementación de OL de Mapea
var layerOL = layerMapea.getImpl().getOLLayer();
⚠️ En las versiones ≤ v6.0.0, el método de acceso es .getOL3Layer()
En el desarrollo de una página web que accede y manipula directamente los objetos de la librería de mapas base, se recomienda que el código que lo hace se encuentre claramente independizado del resto, aplicando un enfoque fachada/implementación, de manera que sea fácil identificarlo en el caso de que se tenga que tratar. Es por ejemplo lo que se hace en los plugins de Mapea.
El acceso directo a la librería base explicado anteriormente puede tener implicaciones si Mapea actualiza la versión de dicha librería a una que no sea retrocompatible consigo misma. Para evitarlo, se fija una versión x.y.z específica de Mapea en el nombre de los recursos que importamos. Por ejemplo, para usar la versión 4.0.3:
<!-- fichero estilos -->
<link href="https://mapea4-sigc.juntadeandalucia.es/assets/css/mapea-4.0.3.ol.min.css" rel="stylesheet" />
<!-- ficheros javascript -->
<script type="text/javascript" src="https://mapea4-sigc.juntadeandalucia.es/js/mapea-4.0.3.ol.min.js"></script>
<script type="text/javascript" src="https://mapea4-sigc.juntadeandalucia.es/js/configuration-4.0.3.js"></script>
La siguiente tabla muestra las versiones de la librería base asociadas a versiones de Mapea. Solo se incluyen las versiones de Mapea que implican cambio en la versión de la librería base, de modo que una versión de Mapea que no se encuentre en la tabla tendrá asociada la misma librería base que la primera versión inferior de Mapea que sí se encuentre:
Mapea | Open Layers |
---|---|
4.0.3 | 3.11.2 |
4.0.4 | 4.0.1 |
5.0.0 | 5.2.0 |
6.0.0 | 6.3.1 |
6.1.0 | 6.9.0 |
6.2.0 | 6.14.1 |
6.3.0 | 6.15.1 |
6.4.0 | 7.2.2 |
6.5.0, 6.6.0 | 8.1.0 |
6.7.0 | 9.1.0 |
Se puede obtener un json con todas las versiones existentes de Mapea y las rutas relativas de los recursos de cada una a través de la siguiente llamada:
https://mapea4-sigc.juntadeandalucia.es/mapea/api/actions/versions