SlideShare una empresa de Scribd logo
Del wms al vector tiles
2000
WMS
1.1.0
OGC
2001
WMS
1.0.0
OGC
2002
SLD
1.1.0
OGC
2005
SLD
1.0.0
OGC
WMS
1.1.1
OGC
2006 2007 2010 2014 2015 2016
WMS
1.3.0
OGC
TMS
1.0.0
OSGeo
WMTS
1.0.0
OGC
XYZ
1.0.0
Google
2000
WFS
1.0.0
OGC
2011 2012 2013
WFS
2.0.2
OGC
VT
1.0.0
Mapbox
2001 2005
WFS
1.1.0
OGC
WFS
2.0.0
OGC
20102006 2007 2014 2015 2016
UTFGrid
1.0.0
Mapbox
UTFGrid
1.2.0
Mapbox
UTFGrid
1.3.0
Mapbox
VT
2.0.0
Mapbox
VT
2.1.0
Mapbox
RASTER
VECTOR
2002
2011 2012 2013
20??
WFS
3.0.0
OGC
WMS aspectos prácticos GetCapabilities
Permite descubrir cuáles son las capacidades del servidor. Como respuesta
obtenemos un archivo en formato xml donde se puede saber cuáles son las
versiones de WMS soportadas por el servidor, cuál es el sistema de referencia, las
coordenadas, qué formato de imagen soporta y las capas de información que
contiene.
Los parámetros para lanzar la petición:
obligatorios:
● REQUEST = GetCapabilities
● SERVICE = WMS
opcionales:
● VERSION = 1.1.1 (versión del estándar
WMS)
● FORMATO = text/html
http://geoserveis.icgc.cat/icc_mapesbase/wms/service?REQUEST=GetCapabilities&SERVICE=WMS
WMS aspectos prácticos GetCapabilities
Tamaño máximo de imágen
<Service>
<Name>icc_bt5m</Name>
<Title>
ICC - Base topogràfica de Catalunya 1:5 000 (BT-5M) - Capes WMS 96dpi
(píxel 0,26458333 mm)
</Title>
...
<MaxWidth>2048</MaxWidth>
<MaxHeight>2048</MaxHeight>
</Service>
http://geoserveis.icgc.cat/icc_mapesbase/wms/service?REQUEST=GetCapabilities&SERVICE=WMS
WMS aspectos prácticos GetCapabilities
OnlineResource
<GetMap>
<Format>image/jp2;subtype="gmljp2"</Format>
<Format>image/gif</Format>
<Format>image/png</Format>
<Format>image/bmp</Format>
<Format>image/jpeg</Format>
<Format>image/tiff</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:href="http://shagrat.icc.cat/lizardtech/iserv/ows"
xlink:type="simple"/>
</Get>
</HTTP>
</DCPType>
</GetMap>
http://geoserveis.icgc.cat/icc_mapesbase/wms/service?REQUEST=GetCapabilities&SERVICE=WMS
WMS aspectos prácticos GetCapabilities
Layer
<Layer queryable="1">
<Name>02_ALTI_PA</Name>
<Title>[BT5M] (02) (x) ALTIMETRIA: talussos, marges (àrees)</Title>
<Abstract>02_ALTI_PA</Abstract>
<CRS>EPSG:25831</CRS>
<CRS>EPSG:4326</CRS>
<BoundingBox CRS="EPSG:25831" minx="254904.96" miny="4484796.89" maxx="530907.30" maxy="4749795.10"/>
...
<Style>
...
<LegendURL width="328" height="64">
<Format>image/png</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:href="http://geoserveis.icc.cat/icc_bt5m/wms/service?request=GetLegendGraphic%26version=1.3.0%26f
ormat=image/png%26layer=02_ALTI_PA" xlink:type="simple"/>
</LegendURL>
</Style>
<MinScaleDenominator>472.470238</MinScaleDenominator>
<MaxScaleDenominator>7087.053571</MaxScaleDenominator>
</Layer>
http://geoserveis.icgc.cat/icc_mapesbase/wms/service?REQUEST=GetCapabilities&SERVICE=WMS
WMS aspectos prácticos GetCapabilities
GetFeatureInfo
<GetFeatureInfo>
<Format>application/vnd.esri.wms_raw_xml</Format>
<Format>application/vnd.esri.wms_featureinfo_xml</Format>
<Format>application/vnd.ogc.wms_xml</Format>
<Format>text/xml</Format>
<Format>text/html</Format>
<Format>text/plain</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://geoserveis.icc.cat/icc_bt5m/wms/service?"/
>
</Get>
</HTTP>
</DCPType>
</GetFeatureInfo>
http://geoserveis.icgc.cat/icc_mapesbase/wms/service?REQUEST=GetCapabilities&SERVICE=WMS
WMS aspectos prácticos GetMap
Petición GetMap devolverá un mapa en formato imagen, ya sea un PNG, JPEG, GIF, etc.
Los parámetros para lanzar la petición:
obligatorios:
● REQUEST = GetMap
● SERVICE = WMS
● VERSION = 1.1.1 (version del estándar WMS)
● LAYERS = nombre de la(s) capa(s)
● STYLES = si no hay estilo se puede dejar en blanco
● SRS ó CRS = 23031 (código EPSG del sistema de referencia) En la version 1.3.0 es CRS
● BBOX = minx,miny,maxx,maxy (caja de coordenadas del mapa)
● WIDTH = número píxeles de ancho
● HEIGHT = número píxeles de altura
● FORMATO = image/png (formato de salida de la imagen)
opcionales:
● TRANSPARENT = indica si el fondo del mapa debe ser transparente. Los valores son verdadero (true) o falso (false).
● BGCOLOR = color de fondo para la imagen del mapa. El valor está en la formato RRGGBB hexadecimal
● SLD = una URL que hace referencia a un archivo XML StyledLayerDescriptor que controla el estilo de las capas de mapa
http://geoserveis.icc.cat/icc_bt5m/wms/service?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&LAYERS=03_POBL_PA,04_PO
BL_PA,07_POBL_PA,08_VEGE_PA,12_POBL_PA,13_HIDR_PA,40_TOPO_TX&STYLES=&FORMAT=image/png&BGCOLOR=0xFFF
FFF&TRANSPARENT=TRUE&SRS=EPSG:25831&BBOX=426253,4581008,426753,4581508&WIDTH=500&HEIGHT=500
WMS aspectos prácticos GetFeatureInfo
Petición GetFeatureInfo sirve para mostrar los atributos de los objetos del mapa, vuelve la información en formato de tabla
o XML. Si una capa está marcada como “consultable” (queryable), se puede solicitar datos sobre una coordenada de la
imagen del mapa.
Los parámetros para lanzar la petición:
obligatorios:
● REQUEST = GetFeatureInfo
● SERVICE = WMS
● VERSION = 1.1.1 (versión del estándar WMS)
● QUERY_LAYERS = nombre de la(s) capa(s)
● STYLES = si no hay estilo se puede dejar en blanco
● SRS ó CRS = 23031 (código EPSG del sistema de referencia)
● BBOX = minx,miny,maxx,maxy (caja de coordenadas del mapa)
● WIDTH = número píxeles de ancho
● HEIGHT = número píxeles de altura
● X ó I = valor del píxel a consultar. En la 1.3.0 es i
● Y ó J = valor del píxel a consultar. En la 1.3.0 es j
opcionales:
● INFO_FORMAT = text/html (formato de la respuesta)
● FEATURE_COUNT = número máximo de elementos a devolver
http://geoserveis.icc.cat/icgc_bm5m/wms/service?REQUEST=GetFeatureInfo&SERVICE=WMS&VERSION=1.1.1&LAYERS=10_MUNICI
PI_PC&QUERY_LAYERS=10_MUNICIPI_PC&INFO_FORMAT=text/html&STYLES=&SRS=EPSG:25831&BBOX=257904,4484796,6803
04,4907196&WIDTH=768&HEIGHT=768&X=295&Y=580
WMS aspectos prácticos GetLegendGraphic
Petición que devuelve una imagen de la imagen de la leyenda del mapa de una capa, proporcionando una guía visual de los
elementos del mapa.
Los parámetros para lanzar la petición:
obligatorios:
● REQUEST = GetLegendGraphic
● LAYER = nombre de la capa
● FORMAT = image/png (formato de la respuesta)
opcionales:
● WIDTH = número píxeles de ancho
● HEIGHT = número píxeles de altura
http://wms.guifi.net/cgi-bin/mapserv?map=/home/guifi/maps.guifi.net/guifimaps/GMap.map&version=1.3.0&service=WMS&request=
GetLegendGraphic&sld_version=1.1.0&layer=Nodes&format=image/png&STYLE=default
WMS aspectos prácticos
Principales diferencias entre las versiones 1.1.1 y 1.3.0
● En la operación GetMap, el parámetro SRS se llama CRS en 1.3.0
● En la operación GetFeatureInfo, los parámetros X e Y se llaman I y J en 1.3.0.
● En 1.1.1, los sistemas de coordenadas geográficas especificados con el espacio de nombres EPSG
se definen para tener un orden de ejes de longitud / latitud. En 1.3.0 el orden es la latitud / longitud.
Por ejemplo, considere la solicitud WMS 1.1 utilizando el SRS WGS84 (EPSG: 4326):
server/wms?VERSION=1.1.1&REQUEST=GetMap&SRS=epsg:4326&BBOX=-180,-90,180,90&.
..
La solicitud equivalente WMS 1.3.0 es:
server/wms?VERSION=1.3.0&REQUEST=GetMap& CRS=epsg:4326&BBOX=-90,-180,90,180&..
.
WMS aspectos prácticos
Problemas comunes
● Tamaño de la imagen (pantallas grandes y/o de mucha resolución)
● Capas no visibles por el control de escala
● Capas no consultables
● Formato de salida del GetFeatureInfo
● No están pensados para peticiones teseladas (velocidad)
● No tienen caché. Las imágenes se generan al vuelo
● Lista restringida de SRS soportados
● En software de escritorio el onlineResource (QGis tiene la opción de ignorar el onlineResource )
● Modificar el estilo (SLD poco soportado)
● SLD difícil de entender y hacer
Pirámides de teselas
En 2005 GoogleMaps introdujo una "nueva" (quadtree) forma de mostrar datos geográficos por la web, pregenerando el
mapa por niveles de zoom y tiles (teselas) de 256x256 pixeles.
También creó una nueva proyección basada en mercator, llamada pseudo-mercator o web mercator, cuyo código EPSG es
3857
Pirámides de teselas
Para cargar las teselas se utiliza una llamada HTTP rest dónde se especifica;
https://.../.../z/x/y.format
z= Nivel de zoom
x=coordenada X
y=coordenada Y
Formato
Raster: Imágen png o JPEG
Vector: (pbf o mvt)
Diferencias entre teselas raster y teselas vectoriales
Teselas vectoriales (Vector Tiles) Teselas raster
Estilo se define en el cliente Estilo se define en el servidor
Sólo se necesita teselar la información una sola vez y se
pueden tener múltiples estilos de mapas
Hay que teselar la información para cada estilo de mapa
Overzoom se mantiene resolución Overzoom pierde resolución (pixelado)
Menor tamaño (se recomienda máximo 500kb) Más fáciles de consumir
Caché ocupa mucho menos espacio. Factible el uso en
dispositivos móviles sin conexión
Caché ocupa mucho espacio. Uso en dispositivos móviles
requiere mucho espacio de disco
Acceso nativo a la información del objeto (atributos y
geometría), lo que permite un procesamiento muy
sofisticado
Se ven mejor en dispositivos de alta resolución
Teselas vectoriales (Vector Tiles)
Las teselas vectoriales han sido utilizadas por el cliente Android de Google Maps desde diciembre de 2010 y en el cliente de
escritorio desde 2013. La especificación de teselas vectoriales se propuso por primera vez en marzo de 2013 por Mapbox.
Las teselas vectoriales son un formato de datos liviano para almacenar datos vectoriales geoespaciales, como puntos,
líneas y polígonos. Las teselas vectoriales codifican información geográfica de acuerdo con la especificación de teselas
vector de Mapbox. La especificación de Mapbox es un estándar abierto bajo una licencia Creative Commons Attribution 3.0
US.
Una tesela vectorial (vector tiles) contiene datos vectoriales georreferenciados (puede contener múltiples capas), recortados
en teselas para facilitar su recuperación. Son equivalentes a las teselas raster tradicionales (WMTS, TMS) pero retornan
datos vectoriales en lugar de una imagen.
Cada conjunto de teselas vectoriales tiene su propio esquema. Un esquema consiste en nombres de capas, atributos,
selección de elementos, etc.
No existe un esquema que sirva para todo. Existen varios esquemas como por ejemplo: OpenMapTiles, Mapbox Streets, etc.
Warning Las teselas vectoriales no son un formato de datos vectoriales estilo Shapefile, GeoJSON, etc. pensado para trabajar (hacer
análisis, explotación de datos, etc.) sino que está pensado y enfocado principalmente en la visualización.
Teselas vectoriales - Cómo están hechas por dentro
Las geometrías y los atributos se codifican como datos binarios de
Google Protobuf (PBF).
Codificar geometrías
Para codificar información geográfica en una tesela vectorial, una
herramienta debe convertir las coordenadas geográficas, como la
latitud y la longitud, en coordenadas vectoriales de cuadrículas. Las
teselas de vectoriales no tienen ningún concepto de información
geográfica. Codifican puntos, líneas y polígonos como pares x/y
relativos a la esquina superior izquierda de la cuadrícula de forma
descendente.
Las geometrías son transformadas a una sola tesela, con un
sistema de coordenadas de píxel local, que por defecto va de la
esquina superior izquierda (0,0) a la esquina inferior derecha
(4096,4096).
Teselas vectoriales - Cómo están hechas por dentro
Codificar atributos
Los atributos se codifican como un conjunto único de claves (algo
así como un esquema de campos de capa) y la lista de sus
valores.
Los atributos están codificados en una serie de etiquetas que
existen dentro de un elemento en el vector que tienen valores
enteros que hacen referencia a las claves y los valores que
provienen de la geometría. Esto elimina la redundancia de los
atributos para geometrías que tienen las mismas claves y valores
similares.
Teselas vectoriales - Ejemplos
Terreno - https://openicgc.github.io/icgc-catmaps.html
Teselas vectoriales - Ejemplos
Luces LA
Teselas vectoriales - Ejemplos
Edificios con música - https://codepen.io/jwhazel/pen/NYzpWG
Teselas vectoriales - Ejemplos
Temático filtro
Teselas vectoriales - Ejemplos
Filtrado al vuelo (utilizando Turf.js)
Teselas vectoriales - Ejemplos
Mapa de calor
Teselas vectoriales - Como servirlas datos “estáticos”
.osm.pbf Tilemaker
Studio
Classic
(desktop)
Studio
(web)
2.3 +
http://xxxxxx/{z}/{x}/{y}.pbf
Teselas vectoriales - Como servirlas datos “dinámicos”
Tegola
T-Rex http://xxxxxx/{z}/{x}/{y}.pbf
Ex. proxy
Node js
ST_AsMVT
Martin
Teselas vectoriales - aspectos prácticos
● No existe un “getCapabilities” ó similar. Hay servidores que tienen una página donde se pueden ver
los datos. Ej. tileserver-gl
● Al ser un formato vectorial y estándar se puede procesar y obtener la información de las capas,
elementos, etc.
● Capas no visibles por el control de escala.
● No existe un esquema que sirva para todo por lo tanto es recomendable publicar el esquema de los
datos.
● Difícil conocer el esquema de los datos (si no está publicado) para poder hacer un “buen mapa”.
● Hay esquemas públicos (Ej. OpenMapTiles) que se pueden usar como referencia a la hora de
publicar los datos.
● Estilos complejos para hacer un “buen mapa”.
● Etiquetas desaparecen por colisiones de etiquetas. https://blog.mapbox.com/whoops-whered-my-label-go-9aa58db2996
Resumen
● El WMS es una tecnología de casi 20 años
● Es importante entender el getCapabilities
● WMS no fué pensado para servicios teselados
● En nuevos proyectos utilizar Vector Tiles (aplicaciones con WebGL)
● En aplicaciones WebGL se puede combinar Vector Tiles con WMS
● Las teselas vectoriales no son un formato de datos que está pensado y
enfocado principalmente en la visualización.
● El proceso de publicar datos en Vector Tiles es similar al de WMS
● Publicar datos en Vector Tiles cuesta lo mismo o menos que en WMS
● Vector Tiles ofrece mucha más libertad de uso en el lado cliente
Enlaces de interés
Tutorial rápido Vector Tiles https://geoinquiets.github.io/vt-hackato-atm/
Tutorial avanzado Vector Tiles https://geoinquiets.github.io/taller-vt/
Ejemplos, estilos y datos Vector Tiles https://openicgc.github.io/
Especificación de Vector Tiles (Mapbox) https://docs.mapbox.com/vector-tiles/specification/
Especificación de estilo de Vector Tiles (Mapbox) https://docs.mapbox.com/mapbox-gl-js/style-spec/
Librería para trabajar con Vector Tiles (Mapbox) https://docs.mapbox.com/mapbox-gl-js/api/
Herramientas y recursos https://github.com/mapbox/awesome-vector-tiles
Preguntas
@bolosig bolosig@gmail.com

Más contenido relacionado

PDF
Paper: Geoserver, más allá de un servidor WMS
PPT
Seminario ArcGIS Desktop 10: La Pieza Clave del SIG
PDF
Poniendo a drupal en el mapa
PPTX
Mariana corzo
PDF
Panorama SIG Libre 2014
PDF
Introducción a las librerías PyGame y PyOpenGL
PDF
Agilent technologies1670g.en.es
PDF
01 t introduccion_arc_gis
Paper: Geoserver, más allá de un servidor WMS
Seminario ArcGIS Desktop 10: La Pieza Clave del SIG
Poniendo a drupal en el mapa
Mariana corzo
Panorama SIG Libre 2014
Introducción a las librerías PyGame y PyOpenGL
Agilent technologies1670g.en.es
01 t introduccion_arc_gis

Similar a Del wms al vector tiles (20)

PDF
Conferencia ESRI 2014. Gestión de la componente geográfica del negocio median...
PDF
Guia de Programación básica OpenGL ES 2.0
PDF
Front-end Basics for Developers
PPTX
Visualizando Datos: la geolocalización como herramienta emergente de análisis...
PDF
2013 06 arc_gis_como_plataforma-canarias
PPTX
SESION 02 TIPOS DE GPS.pptx
PDF
Pathfinder manual1
DOCX
Tarjetas gráficas 2014
PDF
Avances y Desarrollo del Servicio Geológico Minero Argentino en Cartografía D...
PPTX
API REST de Geoservicios de Esri y los Servicios estándar OGC Clásicos - JIID...
PPTX
CURSO QGIS PARTE 2 DE 6 PARTES DEL AÑO 2016
PDF
S3_1.pdf
ODP
Integracion de layar con drupal
PDF
Poniendo a drupal en el mapa
PDF
ArcGIS_Nivel1.pdf
PDF
ArcGIS_Nivel1 interface e inicio del software
DOCX
Capitulo vi
PDF
Georreferenciacion T.P.
PPTX
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
PDF
Publicación de datos geográficos en Internet
Conferencia ESRI 2014. Gestión de la componente geográfica del negocio median...
Guia de Programación básica OpenGL ES 2.0
Front-end Basics for Developers
Visualizando Datos: la geolocalización como herramienta emergente de análisis...
2013 06 arc_gis_como_plataforma-canarias
SESION 02 TIPOS DE GPS.pptx
Pathfinder manual1
Tarjetas gráficas 2014
Avances y Desarrollo del Servicio Geológico Minero Argentino en Cartografía D...
API REST de Geoservicios de Esri y los Servicios estándar OGC Clásicos - JIID...
CURSO QGIS PARTE 2 DE 6 PARTES DEL AÑO 2016
S3_1.pdf
Integracion de layar con drupal
Poniendo a drupal en el mapa
ArcGIS_Nivel1.pdf
ArcGIS_Nivel1 interface e inicio del software
Capitulo vi
Georreferenciacion T.P.
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
Publicación de datos geográficos en Internet
Publicidad

Más de bolosig (9)

PPT
42a Geoinquiets, dijous 17 de març de 2016: El treball de camp en els mapes e...
PPT
És possible la innovació a l’administració?
ODP
37a Geoinquiets, 29 de gener de 2015: Geofreelancing
PPTX
Presentacio HistoriaDeBarcelona.org: Geolocalitzant la Història de la nostra ...
PDF
32a Geoinquiets - Integración de inteligencia colectiva y artificial en un si...
PDF
Geomarketing
PDF
Geoinquiets 27a - Mapes antics escanejats, georeferenciats i publicats a Inte...
PDF
Geoinquiets en las VII Jornadas SIG Libre Girona
PPT
Making of geolocal
42a Geoinquiets, dijous 17 de març de 2016: El treball de camp en els mapes e...
És possible la innovació a l’administració?
37a Geoinquiets, 29 de gener de 2015: Geofreelancing
Presentacio HistoriaDeBarcelona.org: Geolocalitzant la Història de la nostra ...
32a Geoinquiets - Integración de inteligencia colectiva y artificial en un si...
Geomarketing
Geoinquiets 27a - Mapes antics escanejats, georeferenciats i publicats a Inte...
Geoinquiets en las VII Jornadas SIG Libre Girona
Making of geolocal
Publicidad

Último (20)

PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
Maste clas de estructura metálica y arquitectura
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
MANUAL de recursos humanos para ODOO.pdf
PPTX
Presentación de Redes de Datos modelo osi
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
clase auditoria informatica 2025.........
PDF
CyberOps Associate - Cisco Networking Academy
PDF
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
SAP Transportation Management para LSP, TM140 Col18
historia_web de la creacion de un navegador_presentacion.pptx
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Maste clas de estructura metálica y arquitectura
Sesion 1 de microsoft power point - Clase 1
MANUAL de recursos humanos para ODOO.pdf
Presentación de Redes de Datos modelo osi
Presentacion de Alba Curso Auditores Internos ISO 19011
Influencia-del-uso-de-redes-sociales.pdf
Historia Inteligencia Artificial Ana Romero.pptx
Presentación PASANTIAS AuditorioOO..pptx
la-historia-de-la-medicina Edna Silva.pptx
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
clase auditoria informatica 2025.........
CyberOps Associate - Cisco Networking Academy
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Power Point Nicolás Carrasco (disertación Roblox).pptx
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx

Del wms al vector tiles

  • 2. 2000 WMS 1.1.0 OGC 2001 WMS 1.0.0 OGC 2002 SLD 1.1.0 OGC 2005 SLD 1.0.0 OGC WMS 1.1.1 OGC 2006 2007 2010 2014 2015 2016 WMS 1.3.0 OGC TMS 1.0.0 OSGeo WMTS 1.0.0 OGC XYZ 1.0.0 Google 2000 WFS 1.0.0 OGC 2011 2012 2013 WFS 2.0.2 OGC VT 1.0.0 Mapbox 2001 2005 WFS 1.1.0 OGC WFS 2.0.0 OGC 20102006 2007 2014 2015 2016 UTFGrid 1.0.0 Mapbox UTFGrid 1.2.0 Mapbox UTFGrid 1.3.0 Mapbox VT 2.0.0 Mapbox VT 2.1.0 Mapbox RASTER VECTOR 2002 2011 2012 2013 20?? WFS 3.0.0 OGC
  • 3. WMS aspectos prácticos GetCapabilities Permite descubrir cuáles son las capacidades del servidor. Como respuesta obtenemos un archivo en formato xml donde se puede saber cuáles son las versiones de WMS soportadas por el servidor, cuál es el sistema de referencia, las coordenadas, qué formato de imagen soporta y las capas de información que contiene. Los parámetros para lanzar la petición: obligatorios: ● REQUEST = GetCapabilities ● SERVICE = WMS opcionales: ● VERSION = 1.1.1 (versión del estándar WMS) ● FORMATO = text/html http://geoserveis.icgc.cat/icc_mapesbase/wms/service?REQUEST=GetCapabilities&SERVICE=WMS
  • 4. WMS aspectos prácticos GetCapabilities Tamaño máximo de imágen <Service> <Name>icc_bt5m</Name> <Title> ICC - Base topogràfica de Catalunya 1:5 000 (BT-5M) - Capes WMS 96dpi (píxel 0,26458333 mm) </Title> ... <MaxWidth>2048</MaxWidth> <MaxHeight>2048</MaxHeight> </Service> http://geoserveis.icgc.cat/icc_mapesbase/wms/service?REQUEST=GetCapabilities&SERVICE=WMS
  • 5. WMS aspectos prácticos GetCapabilities OnlineResource <GetMap> <Format>image/jp2;subtype="gmljp2"</Format> <Format>image/gif</Format> <Format>image/png</Format> <Format>image/bmp</Format> <Format>image/jpeg</Format> <Format>image/tiff</Format> <DCPType> <HTTP> <Get> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://shagrat.icc.cat/lizardtech/iserv/ows" xlink:type="simple"/> </Get> </HTTP> </DCPType> </GetMap> http://geoserveis.icgc.cat/icc_mapesbase/wms/service?REQUEST=GetCapabilities&SERVICE=WMS
  • 6. WMS aspectos prácticos GetCapabilities Layer <Layer queryable="1"> <Name>02_ALTI_PA</Name> <Title>[BT5M] (02) (x) ALTIMETRIA: talussos, marges (àrees)</Title> <Abstract>02_ALTI_PA</Abstract> <CRS>EPSG:25831</CRS> <CRS>EPSG:4326</CRS> <BoundingBox CRS="EPSG:25831" minx="254904.96" miny="4484796.89" maxx="530907.30" maxy="4749795.10"/> ... <Style> ... <LegendURL width="328" height="64"> <Format>image/png</Format> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://geoserveis.icc.cat/icc_bt5m/wms/service?request=GetLegendGraphic%26version=1.3.0%26f ormat=image/png%26layer=02_ALTI_PA" xlink:type="simple"/> </LegendURL> </Style> <MinScaleDenominator>472.470238</MinScaleDenominator> <MaxScaleDenominator>7087.053571</MaxScaleDenominator> </Layer> http://geoserveis.icgc.cat/icc_mapesbase/wms/service?REQUEST=GetCapabilities&SERVICE=WMS
  • 7. WMS aspectos prácticos GetCapabilities GetFeatureInfo <GetFeatureInfo> <Format>application/vnd.esri.wms_raw_xml</Format> <Format>application/vnd.esri.wms_featureinfo_xml</Format> <Format>application/vnd.ogc.wms_xml</Format> <Format>text/xml</Format> <Format>text/html</Format> <Format>text/plain</Format> <DCPType> <HTTP> <Get> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://geoserveis.icc.cat/icc_bt5m/wms/service?"/ > </Get> </HTTP> </DCPType> </GetFeatureInfo> http://geoserveis.icgc.cat/icc_mapesbase/wms/service?REQUEST=GetCapabilities&SERVICE=WMS
  • 8. WMS aspectos prácticos GetMap Petición GetMap devolverá un mapa en formato imagen, ya sea un PNG, JPEG, GIF, etc. Los parámetros para lanzar la petición: obligatorios: ● REQUEST = GetMap ● SERVICE = WMS ● VERSION = 1.1.1 (version del estándar WMS) ● LAYERS = nombre de la(s) capa(s) ● STYLES = si no hay estilo se puede dejar en blanco ● SRS ó CRS = 23031 (código EPSG del sistema de referencia) En la version 1.3.0 es CRS ● BBOX = minx,miny,maxx,maxy (caja de coordenadas del mapa) ● WIDTH = número píxeles de ancho ● HEIGHT = número píxeles de altura ● FORMATO = image/png (formato de salida de la imagen) opcionales: ● TRANSPARENT = indica si el fondo del mapa debe ser transparente. Los valores son verdadero (true) o falso (false). ● BGCOLOR = color de fondo para la imagen del mapa. El valor está en la formato RRGGBB hexadecimal ● SLD = una URL que hace referencia a un archivo XML StyledLayerDescriptor que controla el estilo de las capas de mapa http://geoserveis.icc.cat/icc_bt5m/wms/service?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&LAYERS=03_POBL_PA,04_PO BL_PA,07_POBL_PA,08_VEGE_PA,12_POBL_PA,13_HIDR_PA,40_TOPO_TX&STYLES=&FORMAT=image/png&BGCOLOR=0xFFF FFF&TRANSPARENT=TRUE&SRS=EPSG:25831&BBOX=426253,4581008,426753,4581508&WIDTH=500&HEIGHT=500
  • 9. WMS aspectos prácticos GetFeatureInfo Petición GetFeatureInfo sirve para mostrar los atributos de los objetos del mapa, vuelve la información en formato de tabla o XML. Si una capa está marcada como “consultable” (queryable), se puede solicitar datos sobre una coordenada de la imagen del mapa. Los parámetros para lanzar la petición: obligatorios: ● REQUEST = GetFeatureInfo ● SERVICE = WMS ● VERSION = 1.1.1 (versión del estándar WMS) ● QUERY_LAYERS = nombre de la(s) capa(s) ● STYLES = si no hay estilo se puede dejar en blanco ● SRS ó CRS = 23031 (código EPSG del sistema de referencia) ● BBOX = minx,miny,maxx,maxy (caja de coordenadas del mapa) ● WIDTH = número píxeles de ancho ● HEIGHT = número píxeles de altura ● X ó I = valor del píxel a consultar. En la 1.3.0 es i ● Y ó J = valor del píxel a consultar. En la 1.3.0 es j opcionales: ● INFO_FORMAT = text/html (formato de la respuesta) ● FEATURE_COUNT = número máximo de elementos a devolver http://geoserveis.icc.cat/icgc_bm5m/wms/service?REQUEST=GetFeatureInfo&SERVICE=WMS&VERSION=1.1.1&LAYERS=10_MUNICI PI_PC&QUERY_LAYERS=10_MUNICIPI_PC&INFO_FORMAT=text/html&STYLES=&SRS=EPSG:25831&BBOX=257904,4484796,6803 04,4907196&WIDTH=768&HEIGHT=768&X=295&Y=580
  • 10. WMS aspectos prácticos GetLegendGraphic Petición que devuelve una imagen de la imagen de la leyenda del mapa de una capa, proporcionando una guía visual de los elementos del mapa. Los parámetros para lanzar la petición: obligatorios: ● REQUEST = GetLegendGraphic ● LAYER = nombre de la capa ● FORMAT = image/png (formato de la respuesta) opcionales: ● WIDTH = número píxeles de ancho ● HEIGHT = número píxeles de altura http://wms.guifi.net/cgi-bin/mapserv?map=/home/guifi/maps.guifi.net/guifimaps/GMap.map&version=1.3.0&service=WMS&request= GetLegendGraphic&sld_version=1.1.0&layer=Nodes&format=image/png&STYLE=default
  • 11. WMS aspectos prácticos Principales diferencias entre las versiones 1.1.1 y 1.3.0 ● En la operación GetMap, el parámetro SRS se llama CRS en 1.3.0 ● En la operación GetFeatureInfo, los parámetros X e Y se llaman I y J en 1.3.0. ● En 1.1.1, los sistemas de coordenadas geográficas especificados con el espacio de nombres EPSG se definen para tener un orden de ejes de longitud / latitud. En 1.3.0 el orden es la latitud / longitud. Por ejemplo, considere la solicitud WMS 1.1 utilizando el SRS WGS84 (EPSG: 4326): server/wms?VERSION=1.1.1&REQUEST=GetMap&SRS=epsg:4326&BBOX=-180,-90,180,90&. .. La solicitud equivalente WMS 1.3.0 es: server/wms?VERSION=1.3.0&REQUEST=GetMap& CRS=epsg:4326&BBOX=-90,-180,90,180&.. .
  • 12. WMS aspectos prácticos Problemas comunes ● Tamaño de la imagen (pantallas grandes y/o de mucha resolución) ● Capas no visibles por el control de escala ● Capas no consultables ● Formato de salida del GetFeatureInfo ● No están pensados para peticiones teseladas (velocidad) ● No tienen caché. Las imágenes se generan al vuelo ● Lista restringida de SRS soportados ● En software de escritorio el onlineResource (QGis tiene la opción de ignorar el onlineResource ) ● Modificar el estilo (SLD poco soportado) ● SLD difícil de entender y hacer
  • 13. Pirámides de teselas En 2005 GoogleMaps introdujo una "nueva" (quadtree) forma de mostrar datos geográficos por la web, pregenerando el mapa por niveles de zoom y tiles (teselas) de 256x256 pixeles. También creó una nueva proyección basada en mercator, llamada pseudo-mercator o web mercator, cuyo código EPSG es 3857
  • 14. Pirámides de teselas Para cargar las teselas se utiliza una llamada HTTP rest dónde se especifica; https://.../.../z/x/y.format z= Nivel de zoom x=coordenada X y=coordenada Y Formato Raster: Imágen png o JPEG Vector: (pbf o mvt)
  • 15. Diferencias entre teselas raster y teselas vectoriales Teselas vectoriales (Vector Tiles) Teselas raster Estilo se define en el cliente Estilo se define en el servidor Sólo se necesita teselar la información una sola vez y se pueden tener múltiples estilos de mapas Hay que teselar la información para cada estilo de mapa Overzoom se mantiene resolución Overzoom pierde resolución (pixelado) Menor tamaño (se recomienda máximo 500kb) Más fáciles de consumir Caché ocupa mucho menos espacio. Factible el uso en dispositivos móviles sin conexión Caché ocupa mucho espacio. Uso en dispositivos móviles requiere mucho espacio de disco Acceso nativo a la información del objeto (atributos y geometría), lo que permite un procesamiento muy sofisticado Se ven mejor en dispositivos de alta resolución
  • 16. Teselas vectoriales (Vector Tiles) Las teselas vectoriales han sido utilizadas por el cliente Android de Google Maps desde diciembre de 2010 y en el cliente de escritorio desde 2013. La especificación de teselas vectoriales se propuso por primera vez en marzo de 2013 por Mapbox. Las teselas vectoriales son un formato de datos liviano para almacenar datos vectoriales geoespaciales, como puntos, líneas y polígonos. Las teselas vectoriales codifican información geográfica de acuerdo con la especificación de teselas vector de Mapbox. La especificación de Mapbox es un estándar abierto bajo una licencia Creative Commons Attribution 3.0 US. Una tesela vectorial (vector tiles) contiene datos vectoriales georreferenciados (puede contener múltiples capas), recortados en teselas para facilitar su recuperación. Son equivalentes a las teselas raster tradicionales (WMTS, TMS) pero retornan datos vectoriales en lugar de una imagen. Cada conjunto de teselas vectoriales tiene su propio esquema. Un esquema consiste en nombres de capas, atributos, selección de elementos, etc. No existe un esquema que sirva para todo. Existen varios esquemas como por ejemplo: OpenMapTiles, Mapbox Streets, etc. Warning Las teselas vectoriales no son un formato de datos vectoriales estilo Shapefile, GeoJSON, etc. pensado para trabajar (hacer análisis, explotación de datos, etc.) sino que está pensado y enfocado principalmente en la visualización.
  • 17. Teselas vectoriales - Cómo están hechas por dentro Las geometrías y los atributos se codifican como datos binarios de Google Protobuf (PBF). Codificar geometrías Para codificar información geográfica en una tesela vectorial, una herramienta debe convertir las coordenadas geográficas, como la latitud y la longitud, en coordenadas vectoriales de cuadrículas. Las teselas de vectoriales no tienen ningún concepto de información geográfica. Codifican puntos, líneas y polígonos como pares x/y relativos a la esquina superior izquierda de la cuadrícula de forma descendente. Las geometrías son transformadas a una sola tesela, con un sistema de coordenadas de píxel local, que por defecto va de la esquina superior izquierda (0,0) a la esquina inferior derecha (4096,4096).
  • 18. Teselas vectoriales - Cómo están hechas por dentro Codificar atributos Los atributos se codifican como un conjunto único de claves (algo así como un esquema de campos de capa) y la lista de sus valores. Los atributos están codificados en una serie de etiquetas que existen dentro de un elemento en el vector que tienen valores enteros que hacen referencia a las claves y los valores que provienen de la geometría. Esto elimina la redundancia de los atributos para geometrías que tienen las mismas claves y valores similares.
  • 19. Teselas vectoriales - Ejemplos Terreno - https://openicgc.github.io/icgc-catmaps.html
  • 20. Teselas vectoriales - Ejemplos Luces LA
  • 21. Teselas vectoriales - Ejemplos Edificios con música - https://codepen.io/jwhazel/pen/NYzpWG
  • 22. Teselas vectoriales - Ejemplos Temático filtro
  • 23. Teselas vectoriales - Ejemplos Filtrado al vuelo (utilizando Turf.js)
  • 24. Teselas vectoriales - Ejemplos Mapa de calor
  • 25. Teselas vectoriales - Como servirlas datos “estáticos” .osm.pbf Tilemaker Studio Classic (desktop) Studio (web) 2.3 + http://xxxxxx/{z}/{x}/{y}.pbf
  • 26. Teselas vectoriales - Como servirlas datos “dinámicos” Tegola T-Rex http://xxxxxx/{z}/{x}/{y}.pbf Ex. proxy Node js ST_AsMVT Martin
  • 27. Teselas vectoriales - aspectos prácticos ● No existe un “getCapabilities” ó similar. Hay servidores que tienen una página donde se pueden ver los datos. Ej. tileserver-gl ● Al ser un formato vectorial y estándar se puede procesar y obtener la información de las capas, elementos, etc. ● Capas no visibles por el control de escala. ● No existe un esquema que sirva para todo por lo tanto es recomendable publicar el esquema de los datos. ● Difícil conocer el esquema de los datos (si no está publicado) para poder hacer un “buen mapa”. ● Hay esquemas públicos (Ej. OpenMapTiles) que se pueden usar como referencia a la hora de publicar los datos. ● Estilos complejos para hacer un “buen mapa”. ● Etiquetas desaparecen por colisiones de etiquetas. https://blog.mapbox.com/whoops-whered-my-label-go-9aa58db2996
  • 28. Resumen ● El WMS es una tecnología de casi 20 años ● Es importante entender el getCapabilities ● WMS no fué pensado para servicios teselados ● En nuevos proyectos utilizar Vector Tiles (aplicaciones con WebGL) ● En aplicaciones WebGL se puede combinar Vector Tiles con WMS ● Las teselas vectoriales no son un formato de datos que está pensado y enfocado principalmente en la visualización. ● El proceso de publicar datos en Vector Tiles es similar al de WMS ● Publicar datos en Vector Tiles cuesta lo mismo o menos que en WMS ● Vector Tiles ofrece mucha más libertad de uso en el lado cliente
  • 29. Enlaces de interés Tutorial rápido Vector Tiles https://geoinquiets.github.io/vt-hackato-atm/ Tutorial avanzado Vector Tiles https://geoinquiets.github.io/taller-vt/ Ejemplos, estilos y datos Vector Tiles https://openicgc.github.io/ Especificación de Vector Tiles (Mapbox) https://docs.mapbox.com/vector-tiles/specification/ Especificación de estilo de Vector Tiles (Mapbox) https://docs.mapbox.com/mapbox-gl-js/style-spec/ Librería para trabajar con Vector Tiles (Mapbox) https://docs.mapbox.com/mapbox-gl-js/api/ Herramientas y recursos https://github.com/mapbox/awesome-vector-tiles