BLOQUE 1: instalación, configuración y publicación en Geoserver
Instalación de Geoserver
Publicación de shapefiles
Simbolización básica con SLD
Publicación de PostGIS
Publicación de datos raster
BLOQUE 2: PostGIS y gestión de datos
Instalación y configuración
Uso de PostgreSQL/PostGIS
BLOQUE 3: rendimiento y caché en Geoserver
Caché de teselas con GeoWebCache
Estándares OGC para teselas raster: WFS, WMTS
Containerización, despliegue, escalado
BLOQUE 4: visualización avanzada con teselas vectoriales
Publicación y uso de teselas vectoriales
Rendimiento de VT
1.1 Introducción
Instalación de Geoserver
Estado del servidor
Estructura de GEOSERVER_DATA_DIR
1.2 Publicación de shapefiles
Subiendo los archivos para publicar
Workspaces, data stores, layers
1.3. Simbolización básica con SLD
Simbolización de una capa de puntos
Simbolización de una capa de líneas
Simbolización de una capa de polígonos
Filtrado y etiquetas con SLD
Generación de SLD con QGIS
Documentación on-line sobre SLD
1.4 Publicación de PostGIS
Como subir capas a PostGIS desde QGIS
Creación de un almacén PostGIS
Beneficios de PostGIS
1.5 Publicación de datos raster
Preparación de los ficheros raster
Simbolización raster: rampas de color
Publicación de rasters pesados
Geoserver
PostgreSQL/PostGIS
Un servidor de mapas de Internet proporciona mapas a través de Internet, generalmente como imágenes (???). Una especificación estándar para dicho servidor es la OGC Web Map Service.
Wikipedia, 2006
Un servidor de cartografía digital (en inglés IMS: Internet Map Server) provee cartografía a través de la red tanto en modo vectorial como con imágenes. La especificación estándar para estos servidores es la OGC Web Map Service, (Open Geospatial Consortium Web Map Service).
Wikipedia actual
Think free as in free speech, not free beer
R.Stallman
Free / Open source software
Al ser un proyecto impulsado por la comunidad, GeoServer es desarrollado, probado y respaldado por un grupo diverso de individuos y organizaciones de todo el mundo.
Diseñado para la interoperabilidad, publica datos de diversas fuentes utilizando estándares abiertos.
GeoServer serves data using standard protocols established by the Open Geospatial Consortium:
WFS
Vectores
WMS
Imágenes
WCS
Análisis raster
{"type":"FeatureCollection","features":[{"type":"Feature","id":"fondo_lineas.1","geometry":{"type":"MultiLineString","coordinates":[[[182058.3406,4370370.6027,0],[182059.5583,4370393
Conectarse a un servicio WMS (con QGIS):
http://www.ign.es/wms-inspire/ign-base?
Ver las capabilities en un navegador:
http://www.ign.es/wms-inspire/ign-base?VERSION=1.3.0&REQUEST=GetCapabilities&SERVICE=WMS
La tecnología XML busca dar solución al problema de expresar información estructurada de la manera más abstracta y reutilizable posible.
Que la información sea estructurada quiere decir que se compone de partes bien definidas, y que esas partes se componen a su vez de otras partes. De esta manera se tiene un árbol de trozos de información
Diseñado para la interoperabilidad, publica datos de diversas fuentes utilizando estándares abiertos.
WFS
Vectores
WMS
Imágenes
WCS
Raster
{"type":"FeatureCollection","features":[{"type":"Feature","id":"fondo_lineas.1","geometry":{"type":"MultiLineString","coordinates":[[[182058.3406,4370370.6027,0],[182059.5583,4370393
Paradigma: cada capa de información puede ser mantenida y publicada por su productor y consumida por múltiples clientes utilizando los Estándares OGC.
WMS REQUEST1
CLIENTE:
QGIS, ArcGIS, página web/ mashup (OpenLayers, LeafletJS)
SERVIDOR1
WFS REQUEST2
SERVIDOR2
WMS REQUEST3
SERVIDOR3
WMS proporciona una interfaz estándar para solicitar una imagen de mapa geoespacial. El beneficio de esto es que los clientes WMS pueden solicitar imágenes de múltiples servidores WMS y luego combinarlas en una sola vista para el usuario. El estándar garantiza que todas estas imágenes pueden superponerse entre sí como se verían en la realidad.
CQL_FILTER
https://docs.geoserver.org/latest/en/user/tutorials/cql/cql_tutorial.html
Prevsualización de datos: CQL_FILTER
Metadatos importantes para interoperabilidad!
Metadatos importantes para interoperabilidad!
Java 17 - GeoServer 2.22.x and above (OpenJDK tested, experimental only)
Java 11 - GeoServer 2.15.x and above (OpenJDK tested)
Java 8 - GeoServer 2.9.x to GeoServer 2.22.x (OpenJDK and Oracle JRE tested)
Java 7 - GeoServer 2.6.x to GeoServer 2.8.x (OpenJDK and Oracle JRE tested)
Java 6 - GeoServer 2.3.x to GeoServer 2.5.x (Oracle JRE tested)
Java 5 - GeoServer 2.2.x and earlier (Sun JRE tested)
Running in a production environment:
https://docs.geoserver.org/latest/en/user/production/index.html#production
docker pull oscarfonts/geoserver
docker run -d -p 8080:8080 -v /path/to/local/data_dir:/var/local/geoserver
oscarfonts/geoserverBalanceo de carga
N1
N2
N3
N4
GEOSERVER_DATA_DIR/logging.xml
logs/geoserver.log
User Administration Interface
Standalone platform Default/typical location
| Windows | C:\Program Files (x86)\GeoServer\data_dir |
| Mac OS X | /Applications/GeoServer.app/Contents/Resources/Java/data_dir |
| Linux (Tomcat) | /var/lib/tomcat7/webapps/geoserver/data |
Todo se almacena en el data directory. Si:
=> PORTABILIDAD!
Workspace 1
Data Store A
Data Store B
Layer A1
Layer A2
Layer A3
Layer B1
Layer B2
Espacio de trabajo 1
Almacén A
Almacén B
Capa A1
Capa A2
Capa A3
Capa B1
Capa B2
Ir a Previsualización de capas y comprobar los siguientes formatos (Otros formatos) de la capa seleccionada:
Qué proyecciones estaran disponibles para las capas que hemos subido?
1) crear espacio de trabajo 'tu_nombre'
2) Publicar un shapefile en el espacio de trabajo
https://amb.geomatico.es/geoserver
User: admin
Pwd: ---
Publicar una carpeta de shapefile en el Espacio de trabajo 'formacion'
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
xmlns="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- a named layer is the basic building block of an sld document -->
<NamedLayer>
<Name>Default Point</Name>
<UserStyle>
<!-- they have names, titles and abstracts -->
<Title>Red Square point</Title>
<Abstract>A sample style that just prints out a red square</Abstract>
<!-- FeatureTypeStyles describe how to render different features -->
<!-- a feature type for points -->
<FeatureTypeStyle>
<Rule>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>circle</WellKnownName>
<Fill>
<CssParameter name="fill">#FF0000</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
</Stroke>
</Mark>
<Size>6</Size>
</Graphic>
</PointSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
xmlns="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- a named layer is the basic building block of an sld document -->
<NamedLayer>
<Name>Default Line</Name>
<UserStyle>
<!-- they have names, titles and abstracts -->
<Title>BRed Line</Title>
<Abstract>A sample style that just prints out a blue line</Abstract>
<!-- FeatureTypeStyles describe how to render different features -->
<!-- a feature type for lines -->
<FeatureTypeStyle>
<Rule>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#FF0000</CssParameter>
<CssParameter name="stroke-width">3</CssParameter>
<CssParameter name="stroke-dasharray">5 2</CssParameter>
</Stroke>
</LineSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor> <FeatureTypeStyle>
<Rule>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#000080</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#FFFFFF</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
</FeatureTypeStyle>A partir de estilos genéricos o de SLD Cookbook:
Style:
A spatial database is a database that is optimized for storing and querying data that represents objects defined in a geometric space. Most spatial databases allow the representation of simple geometric objects such as points, lines and polygons. Some spatial databases handle more complex structures such as 3D objects, topological coverages, linear networks, and TINs. While typical databases have developed to manage various numeric and character types of data, such databases require additional functionality to process spatial data types efficiently, and developers have often added geometry or feature data types.
# TYPE DATABASE USER ADDRESS METHOD
local all postgres ident
local all all md5
#only localhost
host all all 127.0.0.1/32 md5
#everything open
host all all 0.0.0.0/32 md5
#open for a specific BD
host bd_abierta all 0.0.0.0/32 md5CREATE DATABASE nyc;
CREATE EXTENSION postgis;cd C:\Program Files\PostgreSQL \9.5\bin
shp2pgsql -I -s 26918 C:\Documents\postgis-workshop\data\roads.shp
roads | psql -U postgres -d <DBNAME>Que cada uno importe a PostGIS una capa SHP
PostgreSQL trigger can be specified to fire
PostgreSQL Triggers are database callback functions, which are automatically performed/invoked when a specified database event occurs.
GDAL is a translator library for raster and vector geospatial data formats that is released under an X/MIT style Open Source License by the Open Source Geospatial Foundation.
cd /var/lib/tomcat8/webapps/geoserver/WEB-INF/lib/
sudo wget https://sourceforge.net/projects/geoserver/files/GeoServer/2.14.2/extensions/geoserver-2.14.2-gdal-plugin.zip
sudo unzip geoserver-2.14.2-gdal-plugin.zip
rm *.txt *.TXT *.zip
chown tomcat8:tomcat8 *.jarcd /usr/local/geoserver/
mkdir gdal
cd gdal
wget http://demo.geo-solutions.it/share/github/imageio-ext/releases/1.1.X/1.1.8/gdal/gdal-data.zip
unzip gdal-data.zip
mkdir lib
cd lib
wget https://demo.geo-solutions.it/share/github/imageio-ext/releases/native/gdal/1.9.2/linux/gdal192-Ubuntu12-gcc4.6.3-x86_64.tar.gz
tar -xvf gdal192-Ubuntu12-gcc4.6.3-x86_64.tar.gz1. Subir archivo .tiff
2. Crear almacén de datos en Geoserver
3. Publicar capa
1. Subir archivo rgb.tiff
2. Crear almacén de datos en Geoserver
3. Simbolizar (SLD o vía QGIS)
4. Publicar capa
Índice de vegetación de diferencia normalizada
Ejemplo capa: irrilleida
Crear overviews (pyramids)
Ex: gdaladdo -r average abc.tif 2 4 8 16
Si es posible, crear cache con GeoWebCache!