====== Geoserver et l'API Web Map Service ====== **Objectif** : comprendre les paramètres d'un service cartographique et savoir l'utiliser * Publier une couche de données sur votre instance GeoServer (Heroku ou autre) * A défaut, utiliser https://demo.boundlessgeo.com/geoserver ===== OGC Web Map Service (WMS) ===== * Des géoservices standardisés pour la cartographie en ligne [[http://www.opengeospatial.org/docs/is|OGC]] (Open Geospatial Consortium) * Ci-dessous les 3 indispensables opérations d'un **géoservice de cartographie** (utiliser un [[https://www.freeformatter.com/url-parser-query-string-splitter.html|Query String Splitter]] pour y voir plus clair) | WMS sait s'auto-décrire : [[http://demo.boundlessgeo.com/geoserver/wms?service=WMS&version=1.1.0&request=GetCapabilities|WMS:GetCapabilities]] | ''service=WMS&version=1.1.0&request=GetCapabilities'' | | WMS sait produire des visualisations : [[http://demo.boundlessgeo.com/geoserver/wms? service=WMS&version=1.1.0&request=GetMap&layers=ne_10m_admin_0_countries&styles=&bbox=-180,-90,180,90&width=800&height=400&srs=EPSG:4326&format=image/png|WMS:GetMap]] | ''service=WMS&version=1.1.0&request=GetMap&layers=ne_10m_admin_0_countries&styles=&bbox=-180,-90,180,90&width=800&height=400&srs=EPSG:4326&format=image/png'' | | WMS sait interroger une visualisation : [[http://demo.boundlessgeo.com/geoserver/wms?service=WMS&version=1.1.0&request=GetFeatureInfo&bbox=-22.5,28.75,22.5,51.25&srs=EPSG:4326&height=400&width=800&layers=ne_10m_admin_0_countries&format=image/png&styles=&query_layers=ne_10m_admin_0_countries&x=517&y=80&feature_count=50&info_format=application/json|WMS:GetFeatureInfo]] | ''service=WMS&version=1.1.0&request=GetFeatureInfo&bbox=-22.5,28.75,22.5,51.25&srs=EPSG:4326&height=400&width=800&layers=ne_10m_admin_0_countries&format=image/png&styles=&query_layers=ne_10m_admin_0_countries&x=517&y=80&feature_count=50&info_format=application/json'' | * Sharing cartography: Open standards for cartographic portrayal interoperability * https://drive.switch.ch/index.php/s/3s1as53UkjJJyn3 (CCG 2017) ===== Le b.a.-ba de la navigation ===== * En se basant sur l'opération GetMap ci-dessus (avec la couche //ne_10m_admin_0_countries//), adapter les valeurs de paramètres (utiliser la Web Console pour éditer/renvoyer la requête) - pour zoomer dans la carte - pour centrer la carte sur la Suisse (~ Lat: 47 / Lon: 10) **Autrement dit, quels sont les paramètres à manipuler ?** {{:geoinf18:screenshot_from_2018-11-13_18-39-41.png?nolink|}} * Ecrire une première application web qui interagit avec l'opération GetMap offerte par ce service cartographique avec : * 4 éléments d'interaction permettant la navigation, çad déplaçant (pan) la carte au Nord, au Sud, à l'Est, à l'Ouest * 2 éléments d'interaction peremttant de zoomer (zoom in) et dézoomer (zoom out) par rapport au centre courant de la carte {{:geoinf18:screenshot_from_2018-11-13_18-48-16.png?nolink|}} **Une solution :** https://www.mediamaps.ch/oltuto/Ex0a_navmap.html * Ajouter à l'application la possibilité de contrôler la superposition de la couche //ne_10m_lakes// offerte par le même service cartographique {{:geoinf18:screenshot_from_2018-11-13_18-53-53.png?nolink|}} **Une solution :** https://www.mediamaps.ch/oltuto/Ex0b_navmap.html