Cours GéoInf :: Edition 2017

Bienvenue sur le portail de cours GéoInformation & Open Webmapping

Enseignants : J. Cela Lopez, O. Ertz, S. Oulevay, D. Rappo

Salle de cours : HEIG-VD, St-Roch, T155

Horaire : http://www.comem.ch/horaire

Cours

Plan

Après une première partie découverte de la dimension géospatiale de l'information et conception cartographique (cartographic design) avec QGIS, une suite plus orientée au coeur de la technologie :

Outil desktop QGIS et son API avec Python

Base de données SQL géospatiale avec PostGIS

Services géographiques/cartographiques avec GeoServer/CartoDB

Interface cartographique avec OpenLayers

Découvertes :

NoSQL spatial avec MongoDB

Géoinformation et réalité augmenté avec Wikitude

Participez : vers une bibliographie partagée sur tous ces sujets ...

QGIS API & plugins

Tutoriel (auteure Sarah Composto / HEIG-VD / INSIT) - qgis_plugins.pdf

ça peut aider :

si la commande pyrcc4 n'est pas installlée, voici le fichier Python généré - resources.zip (à désarchiver)

si QtDesigner n'est pas installé, il s'installe avec QtCreator - https://www.qt.io/qt-features-libraries-apis-tools-and-ide/#tools

Spatial database

Mise en place de PostgreSQL/PostGIS avec le service de cloud PaaS Heroku :

Déployer une app Heroku avec PHP et PostgreSQL - Getting Started on Heroku with PHP https://devcenter.heroku.com/articles/getting-started-with-php#introduction

Accéder au tableau de bord Heroku Data - https://data.heroku.com

Choisir une interface PostreSQL

avec l'application pgAdmin3 - https://www.pgadmin.org/

avec psql dans un shell interactif (bash) :

dans le dossier local de votre app heroku, lancer

heroku run bash

après connexion, à l'invite de commande bash, lancer

psql -U #heroku_dbuser# -h #heroku_dbhost.amazonaws.com# -d #dbname#

à l'invite de commande psql, saisir une commande

select postgis_version(); # for informations about installed PostGIS
\h # for help with SQL commands
\? # for help with psql commands

Ajouter l'extension PostGIS à la base - https://devcenter.heroku.com/articles/heroku-postgres-extensions-postgis-full-text-search#postgis

exécuter simplement la commande SQL ci-dessous

create extension postgis

voyez l'apparition de nouvelles tables et vues (commande psql \d)

Exercices pratiques :

Premières commandes SQL avec PostGIS

Quelques questions plus intéressantes

Sous forme d'un service de géodonnées

Et bien d'autres opérateurs ...

Avec un “cloud cartographique” :

SQL Spatial avec CartoDB

Geospatial web

A convergence story (Intro slides) - Hacker Cartography: Crowdsourced Geography, OpenStreetMap, and the Hacker Political Imaginary (McConchie 2015)

Publier des géodonnées avec des services standardisés grâce à GeoServer

Installation sur Heroku en 20 minutes :

Télécharger/désarchiver geoserver-2.12.0-war.zip (au choix depuis sourceforge.net, drive.switch.ch)

Ouvrir une invite de commande dans le dossier contenant le fichier geoserver.war

Se connecter à heroku, créer une nouvelle app heroku, puis y déployer GeoServer (inspiré de cette documentation)

heroku login
heroku create
heroku plugins:install heroku-cli-deploy
heroku war:deploy geoserver.war --app <appName>

Naviguer sur votre app et se connecter à GeoServer (admin/geoserver)

https://young-springs-76494.herokuapp.com/web/

Publier la géotable my4capitals

Add new workspace: geoinf / http://mediamaps.ch/geoinf

Stores -> Add new store: fournir les credentials d'accès à la BD PostGIS

(new layer) -> Publish: sur my4capitals

configurer les “bounding boxes”

Layer Preview: prévisualisation du géoservice (avec le géoservice standardisé OGC WFS - Web Feature Service)

Ci-dessous les 3 indispensables opérations d'un géoservice de données (utiliser un Query String Splitter pour y voir plus clair)

WFS:GetCapabilities	service=WFS&version=1.0.0&request=GetCapabilities
WFS:DescribeFeatureType	service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=geoinfo:cities
WFS:GetFeature	service=WFS&version=1.0.0&request=GetFeature&typeName=geoinfo:cities&maxFeatures=50&outputFormat=application/json

En résumé :

Geoserver est “conçu pour l'interopérabilité, il publie les données de toutes les sources principales de données spatiales utilisant des normes ouvertes” (wikipedia) ... de l'OGC (Open Geospatial Consortium)

What is (not) interoperability? - https://drive.switch.ch/index.php/s/3s1as53UkjJJyn3 (CCG 2017)

QGIS MapRenderer

Utilisation du moteur de rendu cartographique QgsMapRenderer et compréhension du “portrayal model” ogo13:portrayalogc.png

Vers un langage cartographique commun avec les standards OGC SLD/SE ?

A redesign of OGC Symbology Encoding standard for sharing cartography - https://peerj.com/preprints/2415/

Open Webmapping

Des géoservices standardisés pour la cartographie en ligne OGC (Open Geospatial Consortium)

Ci-dessous les 3 indispensables opérations d'un géoservice de cartographie (utiliser un Query String Splitter pour y voir plus clair)

WMS:GetCapabilities	service=WMS&version=1.1.0&request=GetCapabilities
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: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)

“Sharing cartography” - les 4 niveaux d'utilisation qui nécessitent une intéropérabilité des représentations cartographiques

Avec GeoServer ... publier la couche world_simple à partir d'une géotable dans la base PostGIS (utiliser ce script SQL - https://drive.switch.ch/index.php/s/23PlCBsdRrgkigd).

Analyser les paramètres WMS au regard du “portrayal model”

Simuler “à la main” une navigation cartographique (zoom sur l'Europe, la Suisse au centre, Lat: 47 / Lon: 10)

OpenLayers

Workshop OpenLayers v3 (part 1) : navigation, composition, style image, couche vector, style vector

Workshop OpenLayers v3 (part 2) : interrogation de couche et autres interactions

Geospatial AR Lab

Before we start the lesson (07.12.2017), we ask you to arrive with all the requirements ready:

follow these instructions

test it's ready by running the below instruction in the working directory of your Cordova-based project

cordova platforms ls
Result should look like:
Available platforms:
blackberry10 ~3.8.0 (deprecated)
browser ~5.0.0
ios ~4.5.1
osx ~4.0.1
ubuntu ~4.3.4 (deprecated)
webos ~3.7.0
windows ~5.0.0
www ^3.12.0

Evaluation

Exercice individuel

Exercice/projet en binôme

Opportunité CCG

Certificat Complémentaire en Géomatique, University of Geneva - Institute for Environmental Sciences/EnviroSPACE Lab :

se libérer du 12 au 15 février 2018 -> semaine 7 (= interruption de cours)

s'inscrire comme auditeur libre (droits d'entrée 50CHF)

recevoir une attestation de suivi du cours (mais pas d'équivalence de crédit)

un syllabus de la même veine que l'année passée, cf programme 2017