Una de las preguntas que se plantea un técnico GIS cuando quiere crear una aplicación WEB GIS, es cómo crear una arquitectura en un servidor para que sea accesible por todo el público en Internet. En esta entrada nos vamos a centrar en arquitecturas WEB GIS basadas en software libre.
Porque instalar una base de datos y un servidor GIS en local (localhost) es relativamente sencillo, pero trasladar esa arquitectura a la web es algo más complicado. Opciones hay muchas y dependiendo del tipo de complejidad de la arquitectura, volumen de datos, etc. será más conveniente utilizar una u otra opción.
Índice
1. Un servidor especializado en WEB GIS
Tienes que buscar un servidor que soporte el software GIS, algunos son AcuGIS.
AcuGIS
En el caso de AcuGIS trabaja con la base de datos espacial libre más potente: PostGIS y con el servidor de datos espaciales GeoServer, uno de los más populares. Además, también nos permite desplegar Lizmap y herramientas open source como GeoHelm, OpenTileServer o OpenNameSearch.
AcuGIS nos da la opción de instalar solamente PostGIS desde $19 / mes con 10 Gb de almacenamiento, un panel de control basado en cPanel (muy intuitivo), dominios y cuentas de email ilimitados y una banda ancha de 1 TB y una memoria dedicada de 128 MB.
Si también queremos disponer de un hosting de GeoServer, y así disponer de un WEB GIS completo, tenemos un primer plan desde $25 / mes que nos ofrece:
- Última versión de GeoServer.
- PostgreSQL 10, 11, 12, o 13.
- Última versión de PostGIS.
- Última versión de PgRouting.
Hosting Lizmap
El hosting Lizmap incluye todo lo que necesitas para desplegar este cliente web de QGIS Server: Lizmap, PostgreSQL, la versión más reciente de PostGIS, un panel de control, web, dominios y correos electrónicos ilimitados, copia de seguridad y restauración, y mucho más. Escala bajo demanda en cualquier momento.
El precio arranca en $35 /mes y nos ofrece más concretamente:
- SSD Disk 25 GB.
- Monthly Bandwidth 2 TB.
- RAM 2 GB.
- Lizmap Latest.
- PostgreSQL 10, 11, 12, or 13
- PostGIS Latest.
- PgRouting Latest.
- Control Panel.
- Remote Access.
- Unlimited Domains.
- Unlimited Email Accounts.
MapServerPro
MapServerPro es un servicio de hosting GIS que nos proporciona alojamiento para las aplicaciones GIS más populares:
- MapServer.
- GeoServer.
- QGIS Server.
- GeoNetwork.
- GeoNode.
2. Amazon Web Services
Con motivos suficientes para crear tu arquitectura GIS en la nube, Amazon nos ofrece la posibilidad de crear una arquitectura WEB GIS open source.
La instalación de PostGIS y/o GeoServer en una instancia de Amazon EC2 (Elastic Compute Cloud) tiene un coste de algunos pocos céntimos de euro por hora o incluso gratis puede servir para hacer alguna prueba.
Aquí tienes un excelente tutorial para configurar CentOS, PostgreSQL, PostGIS, Apache HTTP Server, Apache Tomcat y GeoServer en una microinstancia de Amazon:
AWS: Configuring a Geo-spatial stack in Amazon Linux.
3. Crear tu propio servidor web
Puedes crear un servidor web para poder publicar mapas en internet. Debes configurar la red para modificar localhost por la IP interna del servidor web y poner esa IP pública para que sea accesible desde una red externa.
Deberás redireccionar las peticiones que lleguen a la IP pública a la IP de tu servidor. Probablemente necesites la ayuda de un informático especializado en redes, pagar a tu proveedor de internet un extra y revisar la factura de la luz (piensa que para poder servir tus mapas en internet el servidor debe estar encendido las 24 horas del día). Aunque a priori te parezca una opción económica puede salir caro.
4. Utilizar un servidor compartido o un VPS
Un servidor barato con un plan compartido (hostgator, 1&1 o bluehost, etc) no te permitirá instalar otra cosa que no sea Apache/PHP/MySQL. No vas a poder instalar una base de datos como PostgreSQL, tampoco GeoServer o MapServer.
Lo que si puedes hacer en un servidor compartido es subir todos los archivos necesarios para crear una aplicación web mapping y crear un mapa web a partir de un shapefile sin crear una gran arquitectura GIS.
Por lo tanto, si lo que quieres es un visor sencillo, puedes desarrollar tu aplicación con HTML/JavaScript.
En esencia se trata de colgar en nuestro servidor los archivos geoJSON o json que contienen la información espacial y un archivo html que contenga el código necesario para mostrar un sencillo visor.
Esta opción es la que utilizamos en el visor de ejemplo de la web del curso desarrollo de aplicaciones webmapping. Además, también podrás subir a tu servidor los complementos que necesites.
Esta es la opción más barata, ya que por tan solo unos 5 $ al mes lo tienes solucionado.
Una opción válida para pocos datos espaciales y de poco tamaño.
Si dispones de un VPS o de un servidor dedicado sí podrás instalar tus propios programas. Hay cientos de proveedores (linode, dinahosting, etc).
Necesitarás un servidor dedicado no administrado, de tal forma que seas tu quien lo administra con privilegios de root, configurando y utilizando el software que prefieras. La arquitectura para crear tu WEB GIS la eliges tú.
Antes de elegir un servidor, necesitarás saber qué tipo de software vas a utilizar y revisar tanto los requerimientos de hardware del servidor como de sistema operativo. De esta forma tienes la capacidad de desplegar la arquitectura GIS teniendo el control sobre qué software has instalado.
GitHub
GitHub es una plataforma de desarrollo colaborativo de software para alojar proyectos utilizando el sistema de control de versiones Git.
El código se almacena de forma pública, aunque también se puede hacer de forma privada, creando una cuenta de pago.
GitHub es gratuito. Solamente necesitamos crear un usuario para subir los datos, es completamente gratuito.
Aquí tienes más información.
5. Node.js + PostGIS
Al contrario que la mayoría del código JavaScript, Node.js no se ejecuta en un navegador, sino en el servidor. Para visualizar los datos (como geoJSON) podemos utilizar Google Maps, OpenLayers o Leaflet.
Cheap Hosting, PostGIS goodness, JavaScript simplicity
ONLINE GIS MAPPING WITHOUT GIS SERVERS
6. Utilizar un servicio para crear y publicar mapas online
Bueno esta no es realmente una opción porque la arquitectura ya viene definida por la propia aplicación. No podemos elegir ni el sistema gestor de bases de datos. La plataforma se encarga de mantener nuestros mapas disponibles las 24 horas del día los 365 días del año.
Hay numerosas aplicaciones GIS que nos permiten publicar mapas online. En esta entrada hemos visto todas las ventajas e inconvenientes de utilizar un servicio para publicar mapas online, en lugar de crear una arquitectura propia.
Son gratuitas para un uso esporádico.
Como ves hay muchas opciones, incluso alguna más, que serán más aconsejables dependiendo de la envergadura del proyecto.
Licenciado en Geografía. Máster en Sistemas de Información Geográfica. Consultor GIS desde el año 2004. En MappingGIS desde el año 2012 para ayudarte a impulsar tu perfil GIS y diferenciarte de la competencia. Echa un vistazo a todos nuestros cursos de SIG online.
Hola Aurelio consulto, Cual de estos 3 software es mejor en cuanto funcionalidad y facidad de uso: Geoexplorer, Geonode o Geoshape?
Gracias
Saludos
Hola Juan,
Me lo apunto para un post. Conozco GeoExplorer pero no las otras dos opciones, tendría que analizarlas bien.
GeoExplorer es una aplicación que se bas en openLayers 2 + GeoExt con GeoServer como servidor GIS por detrás. Es basatnte completa, pero su desrrollo se ha detenido hace tiempo y solo esta disponible con OpenGeo Suite. Su uso es muy sencillo.
Leo (http://geonode.org/user_features/) que Geonode incluye: GeoExplorer GIS client.
Según la web de GeoSHAPE «GeoSHAPE is the integration of a geospatial portal (GeoNode), a web mapping client (MapLoom), and a mobile application (Arbiter). Y como componentes centrales GeoServer, GeoGit, GeoNode, OpenLayers 3.
Por lo tanto tenemos a Geonode por detrás de GeoSHAPE, que a su vez incluye GeoExplorer.. no se, esto hay que verlo con detenimiento… ¿Y la opción de OpenGeo Suite qué te parece?
Saludos!
Hola Aurelio gracias por la respuesta. Si estoy comenzando con este tema, para inplemenar un websig.
La opcion GeoServer+GeoExplorer+posgis es interesante, pero me comentaron que en GeoExplorer no se podria configurar para que se pueda tener acceso a varios usuarios y cada usuario visualice su grupo de capas. Pero si lo podria hacer con Geonode o GeoSHAPE.
Por eso estoy investigando cuales son las principales diferencias entre estos.
Saludos
Hola Juan,
En Geoserver puedes crear roles de acceso a determinados espacios de trabajo (lugares donde se almacenan las capas) y asignar esos roles a usuarios (con sus credenciales). De este modo cada usuario accede a través de GeoExplorer con su cuenta de usuario y visualiza determinadas capas. Un saludo
Hola Aurelio, ahora estoy confundido. Se puede tener entonces acceso por usuarios a través de GeoExplorer. Donde podria profundizar el tema.
Con GeoExplorer se puede dibujar poligonos?
Muchas Gracias
Saludos
Hola Juan,
En nuestro curso online de webmapping te enseñamos a trabajar con GeoExplorer y crear roles, usuarios, etc con GeoServer: http://mappinggis.com/cursos/aplicaciones-web-mapping/
Saludos!
Hola Aurelio,
Muy útil tu web, estoy haciendo un trabajo para la universidad y quiero hacer una encuesta con respuesta espacial, es decir le preguntaré algo puntual a los encuestados y su respuesta la tienen que espacializar. He visto que con el API de Google maps se pudiera hacer. Tendrias algún tutorial específico para esto o curso que me pudiera servir. Gracias
Saludos,
Amalia,
Hola Amalia,
Esto también lo podrías hacer con GeoExplorer (OpenLayers + GeoExt), pero para permitir que usuarios puedan editar tendrás que crear usuarios con roles de edición. Esto lo puedes hacer con GeoServer, aunque montar una arquitectura de este tipo quizá sea demasiado complejo y vas a necesitar un servidor que lo soporte, como AcuGIS.
Otra opción es utilizar cartoDB y utilizar su opción multiusuario: http://docs.cartodb.com/faqs.html#has-cartodb-multi-user-functionalities
Saludos
Hola Aurelio!
Gracias por el artículo! Sigo tu blog con interés y hoy he aprendido algunos servicios que no conocía.
Me parece interesante incluir plataformas que soportan la instalación de node.js+postgis. Permiten montar de una forma fácil un servidor web GIS para el manejo de datos vectoriales y suponen alternativas muy baratas (incluso gratuitas). Eso por no hablar de la velocidad a la que se está imponiendo nodeJS como arquitectura web y de que ya existe una versión adaptada de mapserver para node.
Para ello está muy bien heroku y open shift.
Un saludo
Hola Yannick,
Muchas gracias por tu comentario. Pues mira yo también he aprendido una cosa nueva, no conocía ni heroku ni openshift, he estado mirando un poco y son buenas soluciones y además como comentas, son gratuitas para testear o pequeños proyectos. Es cierto que nodeJS tiene muy buena integración tanto con PostGIS como con mongoDB y con GeoServer también.
Saludos!
Me ha gustado el artículo. No conocía acugis y me ha parecido una referencia muy interesante.
Gran trabajo con tu blog!
Saludos
Hola Víctor. Muchas gracias.
Me alegro de que te haya gustado, hay muy poca información sobre este tema y siempre es interesante conocer qué opciones hay. En cuanto a AcuGIS es la mejor relación calidad-precio, y además con todo en cPanel para que sea más sencillo.
Saludos!