GeoServer es un servidor de alto rendimiento compatible con la certificación Web Map Service (WMS), y de hecho es la implementación de referencia de las normas OGC Web Feature Service (WFS) y Web Coverage Service (WCS). GeoServer implementa pues, los protocolos estándares open web que establece el Open Geospatial Consortium (OGC).
¿Qué es un WMS?
En Europa y España, para facilitar el acceso, manipulación e intercambio de información geográfica en la web, se siguen las especificaciones de interoperabilidad del Open Geospatial Consortium. El Open Geospatial Consortium (OGC) busca la definición de estándares abiertos e interoperables dentro de los Sistemas de Información Geográfica (SIG) y de la World Wide Web (WWW), todo ello con el objetivo de facilitar el intercambio de información geográfica.
Un servicio web de mapas o Web Map Service (WMS) es un protocolo estándar definido por el OGC que sirve imágenes de mapas a partir de información geográfica.
En este caso, un mapa no consiste en los propios datos, sino en una imagen de los mismos.
Las operaciones WMS se invocan utilizando un navegador estándar (p. ej. Firefox) o mediante aplicaciones de escritorio (p. ej. QGIS) y realizando peticiones en la forma de URL. El contenido de la URL depende de la operación solicitada.
Ejemplo de solicitud HTTP GET WMS
El siguiente ejemplo es una petición WMS, representada como una petición HTTP GET a una instancia alojada en GeoServer:
http://www.mirame.chduero.es:8080/geoserver/mirame/wms? SERVICE=WMS& VERSION=1.3.0& REQUEST=GetMap& LAYERS=mirame:Limites_Demarcacion,mirame:Masas_Agua_Rio& SRS=EPSG:4326& BBOX=-7.7,40.1,-1.7,43.2& FORMAT=image/png& WIDTH=600&HEIGHT=255
La operación GetMap solicita que el servidor genere un mapa. Los parámetros básicos (sin entrar en detalles de parámetros obligatorios y opcionales) especifican:
- Nombre de servidor y número de puerto.
- Nombre del servicio.
- Versión.
- Tipo de petición.
- Capa o capas para representar en el mapa.
- Sistema de referencia espacial de destino.
- Cuadro delimitador para la extensión del mapa.
- Formato para la salida.
- Ancho y alto.
La información necesaria para especificar los valores de parámetros tales como capas, estilos y srs se pueden obtener a partir del documento de Capacidades (operación GetCapabilities).
Ejemplo de solicitud HTTP GetCapabilities
Operación que proporciona toda la información necesaria sobre el servicio y describe todas sus capacidades: características del servicio, operaciones que soporta y metadatos de las capas.
Componentes | Obligatoriedad | Descripción |
VERSION | Opcional | Versión de la especificación OGC |
SERVICE=WMS | Obligatorio | Tipo de Servicio al que va dirigida la petición |
REQUEST=GetCapabilities | Obligatorio | Nombre de la operación |
Language=code | Opcional | Se obtiene el fichero de salida en el idioma solicitado, por defecto text/xml |
FORMAT | Opcional | Formato de salida del metadato del servicio. Debe soportar por defecto text/xml |
Solicitud de las características del servicio IGN-Base del Sistema Cartográfico Nacional:
http://www.ign.es/wms-inspire/ign-base?VERSION=1.3.0&REQUEST=GetCapabilities&SERVICE=WMS
La respuesta a la operación GetCapabilities es el documento de capacidades en XML con una estructura determinada que informa del contenido del servicio de visualización: Service y Capability.
En nuestro curso online desarrollo de aplicaciones webmapping te explicamos cómo crear reglas de solicitud WMS, crear operaciones GetCapabilities, GetMap, GetFeatureInfo, DescribeLayer y GetLegendGraphic; Web Feature Service (WFS): sus operaciones y reglas de solicitud; Web Coverage Service (WCS) y sus operaciones; el Servicio de Procesamiento Web (WPS) y el perfil Styled Layer Descriptor (SLD).
Creación de un servicio WMS / WFS
GeoServer incluye una interfaz de administración Web a través de la que podemos acceder a la mayor parte de la configuración de los datos y de los servicios. Esta interfaz reduce la necesidad de editar los archivos de configuración a mano.
Para acceder a GeoServer, en primer lugar debemos iniciar el servicio.
La url por defecto de la interfaz de administración de GeoServer es: https://localhost:8080/geoserver
Para crear un servicio WMS con GeoServer es necesario identificarse. Por defecto, las credenciales de administración de GeoServer son admin y geoserver.
Publicación de un archivo vectorial
Para poder servir las capas y crear el servicio WMS (o WFS), el primer paso es importar los archivos a GeoServer.
Desde la versión 2.13 de GeoServer, el rendimiento en cuanto a la lectura y representación de GeoPackage ha mejorado de forma significativa. Es hasta dos veces más rápido en extracciones completas de grandes conjuntos de datos y un 50% más rápido en búsquedas de recuadros delimitadores pequeños, lo que equipara a GeoPackage con PostGIS. Hoja de cálculo de Google con más detalles.
La lectura de archivos de GeoPackage es parte de la funcionalidad principal de GeoServer y no requiere ninguna extensión.
Importar un GeoPackage a GeoServer
Podemos utilizar GeoPackage tanto como almacén de datos vectoriales, como almacén de datos raster.
Simplemente en la columna izquierda de la página de administración de GeoServer, en el apartado Datos → Almacenes de datos → Agregar nuevo almacén:
y bajo Origenes de datos vectoriales, escogemos la opción GeoPackage:
A continuación, debemos configurar el nuevo origen de datos de GeoPackage.
Debemos seleccionar el espacio de trabajo, darle un nombre (apartado «Nombre del origen de datos») y la ubicación de archivo (apartado «database»). Podemos dejar el resto de campos con los valores predeterminados:
Después de configurar el origen de datos, hacemos clic en «Publicar».
Una vez que haya configurado y publicado su capa, podemos usar la herramienta GeoServer «Layer Preview» para verificarlo. Podemos utilizar la opción OpenLayers para ver e interactuar con los datos.
Ya podemos trabajar como si de una layer más se tratase. En este momento ya tenemos la capa publicada como servicio WMS y WFS. Por lo que podemos conectarnos de forma remota a este servicio desde un SIG de escritorio como QGIS o desde una aplicación webmapping como OpenLayers o Leaflet.
Conectarnos al servicio WMS desde QGIS
Para añadir un servicio WMS en QGIS podemos emplear tanto el Administrador de fuentes de datos de QGIS como su Navegador.
En QGIS haz clic en el menú Capa > Añadir Capa > Añadir capa WMS/WMTS
Otra opción es hacer clic en el botón Añadir Capa WMS/WMTS y aparecerá el cuadro de diálogo correspondiente.
Hacemos clic en el botón Nuevo para crear una nueva conexión WMS, en la interfaz aparecerá una nueva ventana en la que se nos requieren los parámetros de conexión. Introducimos los siguientes:
- Nombre: GeoServer local
- URL: Ruta para el acceso al servicio WMS: http://localhost:8080/geoserver/wms
Presionamos sobre el botón Aceptar y la nueva conexión WMS quedará guardada automáticamente, apareciendo disponible en el desplegable de conexión. Hacemos clic sobre el botón Conectar, tras seleccionar la conexión recién creada aparecerá en la ventana la información disponible para su visualización.
Para cargar en la interfaz cualquiera de las capas, simplemente selecciona la misma entre las disponibles y presiona el botón Añadir. Tras unos segundos aparecerá en la Tabla de Contenidos (ToC) la capa seleccionada.
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, gracias por tu publicación.
Te consulto sobre como dimensionar geoserver. Trabajo en una empresa de drones, y las imágenes de estos aparatos + otras imgs de alta resolución me pueden llegar a ocupar 1TByte al mes. Como se hace para saber cuantos servidores tengo que usar?
Muchas gracias!
Hola colega quiero empezar en las aplicaciones web SIG, necesito saber si el GeoServer ademas de usar shape files y base de datos puede construir un mapa a partir de imágenes (jpg o png) como las generadas por GoogleMaps y Openstreet Map. De ser así donde encuentro los links para estudiar esto. Y así decidirme si emplear este servidor o elegir otro (Acepto recomendaciones).
Gracias por todo. Muy buen sitio.
Hola David, GeoServer puede servir imágenes raster y de esta forma servir mapas base. En la documentación de GeoServer tienes toda información: http://docs.geoserver.org/latest/en/user/data/raster/index.html Creemos que este es el servidor de software libre más potente que existe. Saludos!
Hola Aurelio, estoy tratando de hacer una web que muestre mapas formato tiff y darle formato a la información , todo lo tengo en mi ordenador como local, pero tengo unos problemas…
1. Estoy logeada con mi usuario en geoserver pero no me aparece Import Data.
2. Tienes algún tutorial para este tipo de ejercicio sobre publicacion de mapas y administración de datos.
Gracias y te felicito por este estupendo trabajo
Hola, buenos días Aurelio. Me gustaría añadir capas raster al geoserver y más tarde citarlas en Openlayers. He visto ejemplos por la web y solo me quería asegurar.
var raster = new ol.layer.Tile({
source: ‘http://localhost:8080/geoserver/tiff’,
{layers: ‘Nombre del raster’,
}
});
Gracias
Saludos
Hola Basilio,
La clase ol.layer.Tile necesita una fuente TileWMS:
source: new ol.source.TileWMS
y esta fuente debe incluir una url y unos parámetros. Dentro de los parámetros se debe incluir al menos las capas de GeoServer (LAYERS) y el formato (FORMAT). Saludos!
Buenos dias Aurelio,
a ver si puedes echarme una mano para solventar esto,
queria incluir en una base de datos accés un campo con un link a un mapa.
Cada registro de la base de datos és una parcela i contiene sus coordenadas. Con un formulario de consulta obtengo un informe con los datos de dicha parcela, pero quiero además que aparezca una imagen centrada de la parcela.
Habia pensado tener una capa en geoserver.
Supongo que el enlace hay que hacerlo al localhost donde tenga la capa del geoserver, pero tendria que indicar las coordenadas.
En resumen, que no se por donde coger el tema.
gracias por este fantastico blog
Hola Jose,
Gracias por seguirnos!
Pues este tema se puede solventar de varias formas. Se me ocurre como forma más o menos sencilla crear un mapa con Leaflet que muestre las parcelas con un mapa de fondo e ir creando enlaces permanentes para cada una de las parcelas (hay un plugin de Leaflet que crea enlaces permanentes) por lo que tendrías una url para cada parcela. Creo que meterse en GeoServer puede ser demasiado complicado, ya que tendrías que pasar las coordenadas que tienes en Access como un parámetro en una petición GetMap y me parece algo complicado… Saludos!
Hola soy nueva utilizando geoserver, estoy generando una vista para publicar, pero debo asignar un alias para que los usuarios que consulten los datos de la capa puedan ver el significado de cada campo y no el que trae de la BBDD…como puedo definir el alias?
Saludos
Hola Ana,
Para crear un alias debes escribir AS después del nombre de la columna. Ejemplo:
SELECT name as nombre,
FROM countries;
Un saludo!
Hola. tengo un inconveniente, al momento de viasualizar la capa me sale en blanco no se presenta el mapa, a q se debe esto?
Hola Gilly, ¿Has verificado que la capa tiene bien asignado el SRID? También puede ser que la capa esté dañada y sea necesario repararla. Saludos
Hola Aurelio,
Interesante artículo publicado. Yo tengo una pequeña duda de, literalmente, novato:
¿El uso de Geoserver es solamente útil, por decirlo de una forma, para todo aquel que tenga un servidor? Porque yo, por ejemplo, tengo sólo mi portatil. Si me instalase Geoserver usando mi PC como cliente-servidor al mismo tiempo, ¿que beneficio obtendría de esta herramienta?
Saludos.
Hola Víctor,
GeoSErver es un servidor GIS para crear servicios siguiendo los estándares de la OGC. SE puede instalar en local para hacer pruebas y aprender, sin necesidad de tener un servidor, y en este caso nuestro equipo actúa como localhost. Con GeoServer (parte servidor) creas servicios web para después incluirlos en tus visores web como OpenLayers o Leaflet (parte cliente). Saludos!
Buenas, no me sale Import data, previamente he creado el espacio de trabajo y un almacén de datos, depues he ido a Capas > Agregar nuevo recurso y he seleccionado el espacio de trabajo en el que se encuentra las capas a importar, pero aun asi no me sale import data
Hola Aurelio,
Soy Yina. No me aparece el enlace Import Data en el lado izquierdo, debajo de Datos, desde la página de administración de GeoServer, estoy logueada como admin
¿Por qué puede ser?
Gracias.
Hola Yina, ¿Qué subsecciones ves debajo de Datos?
Previsualizacion de capas
Espacios de trabajo
Almacenes de datos
Capas
Grupos de capas
Estilos
Hola Yina,
En tu caso debes crear un nuevo espacio de trabajo y un almacen de datos. A continuación ve a Capas > Agregar nuevo recurso y selecciona el espacio de trabajo en el que se encuentren las capas a importar. Saludos!
Hola Estoy tratando de hacer lo que has dicho para importar pero no me aparece, con que version de Geoserver estas trabajando el ejemplo?
Hola Mariela,
La versión utilizada es GeoServer 2.8, pero se trata de la versión de GeoServer que incluye OpenGeo Suite. Saludos!
Hola Aurelio,
Soy Ana. No me aparece el enlace Import Data en el lado izquierdo, debajo de Datos, desde la página de administración de GeoServer. ¿A que puede ser debido?
Gracias.
Hola Ana, El enlace aparece si estás identificada en GeoServer. Un saludo!
hola necesito visualizar un .shp de tipo texto en geoserver pero me lo muestra como un poligono no se como hacer para que me aparesca el texto agradeceria una ayuda gracias
Hol Jennifer, ¿Un .shp de tipo texto? un shp solo puede ser de tipo punto, línea o polígono. Si es de tipo polígono tendrás que modificar el estilo SLD para que muestre las etiquetas del polígono. Esta entrada puede ayudarte: http://mappinggis.com/2014/01/estilos-css-en-geoserver/ Saludos!
Estimado:
Junto con saludar y agradecer por la excelente guía, tengo la siguiente duda:
Al momento de visualizar un grupo de capas con open layers, al momento que veo mi mapa con todas las capas, ¿como puedo desmarcar las capas que no quiero ver, en tiempo real (ejemplo: tengo un grupo capas de una cuidad, con sus limites administrativos, calles y puntos de interés, pero al estar visualizando quiero desmarcar la capa de puntos)? porque hasta ahora para poder hacer eso utilizo un programa llamado uDig que lo conecto con geoserver, pero la idea es poder hacer eso dentro del mismo geoserver.
Saludos.
Hola Luis,
Creo que necesitas crear una aplicación web mapping e incorporarla un control de capas para poder activarlas y desactivarlas. Ya que dentro del mismo GeoServer no es posible. Saludos
Tendría que utilizar Open Layers 3 para eso cierto (si es así, me podrías dejar algunos tutoriales porfavor).
Saludos!
Encontré otro tutorial tuyo donde explica esto, muchas gracias, excelente pagina.
Saludos
Hola Luis,
¿Podrías poner el link de ese manual?
Saludos
Hola, es posible subir ‘feature class’ de ‘geodatabases’ creadas en ArcGIS 10 a GeoServer?
Hola Juan, Sí es posible. Necesitarás instalar la extension para ArcSDE: http://sourceforge.net/projects/geoserver/files/GeoServer/2.8.2/extensions/geoserver-2.8.2-arcsde-plugin.zip/download Saludos
Hola Aurelio.
Soy informático pero novato en el uso de GeoServer y no encuentro la forma de subir ficheros .shp directamente desde mi equipo al servidor.
Saludos
Hola Guillermo,
En el apartado Construcción de un servicio WMS a partir de un shapefile está explicado el proceso en detalle.
Un saludo!
Hay alguna forma de subir ficheros «.shp» desde cualquier pc al servidor de GeoServer?
Hola Guillermo,
Sí, debes acceder a GeoServer a través de la url correspondiente y con el usuario y contraseña realizas el loguin. Una vez dentro de la interfaz web de GeoServer ya puedes acceder a la sección Datos > Importar datos.
Saludos
Muy buen tutorial, tengo una inquietud se puede editar una capa es decir cambiar los límites y que se actuelicen esos datos en la base de datos hasta donde tengo entendido tengo que utilizar el WFS ya que el wMS es una imágen.
Hola Giovanny,
Efectivamente, debes utilizar WFS- Transacional, para poder editar contra el servidor y en la base de datos si las capas están en un base de datos espacial.
Un saludo,
Aurelio
Como asigno un mapa especifico a un usuario en especifico en GeoServer, que solo el usuario lo pueda ver…es posible?
Hola Luis,
Sí es posible. GeoServer dispone de un apartado muy completo sobre Seguridad. Puedes crear reglas de acceso a servicios y asignar estos servicios a determinados Roles (usuarios). En este post se explica cómo evitar la descarga de datos geográficos a determinados usuarios: http://mappinggis.com/2015/07/seguridad-en-geoserver-evitar-la-descarga-de-datos/
Saludos!
Buenas tardes:
Te hago una consulta, con este software puede pasar de WMS a shapefile?
Desde ya, muchas gracias.
Saludos cordiales.
Hola Mariana,
No es posible pasar de un WMS a shapefile. Debes utilizar un servicio WFS.
Para pasar de un servicio WFS a shapefile puedes ver este post: http://mappinggis.com/2015/09/como-conectar-con-servicios-wms-y-wfs-con-arcgis-qgis-y-gvsig/ Saludos!
Hola.
Una pregunta. Al subir un archivo shp a geoserver y crear un servicio wms a partir de él. La dirección es a nivel local. Es decir, como puedo crear un servicio wms a traves de la red, para que pueda consultarlo desde cualquier lugar u ordenador?
Perdón soy nuevo en esto.
Hola Carlos,
Esa es una pregunta muy frecuente. Para eso debes realizar la instalación de GeoServer sobre una servidor con una IP estática y pública. 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 tu amigo informático, 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.
En esta entrada tienes más opciones: http://mappinggis.com/2014/08/crear-web-gis-en-un-servidor/ Un saludo!
Buenos tardes, tengo un mac y donde he instalado el geoserver , pero tengo problemas con los estilos CSS., no se en que directorio debo instalar para que se visualice en geoserver.
muchas gracias de antemano
leo
Buenos días Leo,
Puedes descarar el complemento (http://sourceforge.net/projects/geoserver/files/GeoServer/2.8.0/extensions/geoserver-2.8.0-css-plugin.zip) y colocar los archivos jar en el directorio geoserver/WEB-INF/lib. Saludos!
Estimado Aurelio:
Muchas gracias por el articulo, solo tengo una duda, cuando utilizo la URL: http://localhost:8080/geoserver no funciona, ¿Qué estoy haciendo mal?
Agradeceré tu respuesta.
Salludos.
Hola José Luis, ¿Cómo has instalado GeoServer? ¿con OpenGeo Suite o de forma independiente? ¿Tienes el servidor Tomcat/Jetty en ejecución? Saludos!
El mismo problema he tenido yo al instalarlo para todos los usuarios (Windows). Sin embargo lo he reinstalado para el usuario actual, y en ese caso si que se activa el servicio (manualmente) y se puede acceder al servidor local de geoserver.