GIS and Media fusion

"The explosive growth of the GeoWeb and geographic information has made GIS powerful media for the general public to communicate, but perhaps more importantly, GIS have also become media for constructive dialogs and interactions about social issues." - Sui & Goodchild

User Tools

Site Tools


geoinf17:exa1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
geoinf17:exa1 [2017/12/14 08:16]
oertz [1) Initialisation de vue cartographique]
geoinf17:exa1 [2018/05/16 10:05] (current)
Line 6: Line 6:
   * expliquer la différence pour l'​utilisateur final.   * expliquer la différence pour l'​utilisateur final.
  
-**(B)** Ci-après le code d'une application de cartographie en ligne dont la vue n'est pas initialisée explicitement. Il présente le tableau ''​possibleViews''​ qui offre plusieurs paramètres* pour initialiser ​la vue : compléter la fonction ''​initRandom''​ pour définir une initialisation ​de la vue qui soit aléatoire parmi les 3 possibilités offertes par ce tableau.+---- 
 + 
 +2 approches en effet : 
 +  * approche se basant sur une enveloppe géographique dont l'​étendue est défini par un tableau [minx, miny, maxx, maxy] (par exemple [-18, 37, 38, 57]) 
 +    * méthodes utilisées : ol.View.fit,​ ol.Map.setView 
 +    * quelque-soit la taille et le ratio de la fenêtre d'​exécution de l'​application,​ cette approche garantie que cette étendue est complètement rendue visible à l'​utilisateur. Mais l'​effet de bord est que l'​échelle peut varier. 
 +  * approche se basant sur un point de centrage de la carte (par exemple [10, 47]) et un niveau de zoom 
 +    * méthodes utilisées : ol.View.setCenter,​ ol.View.setZoom 
 +    * c'est en quelque-sorte l'​inverse de la première approche - quelque-soit la taille et le ratio de la fenêtre d'​exécution de l'​application,​ cette approche garantie que l'​échelle de visualisation est toujours la même, pour tous les utilisateurs. L'​effet de bord est l'​étendue de ce qui est visible peut varier. 
 + 
 +La première approche est utile quand il s'agit de toujours montrer à l'​utilisateur un ensemble d'​éléments cartographiques dispersés dans une enveloppe géographique. La seconde est utile quand cette dispersion n'​existe pas, et que par exemple il s'agit de centrer la carte sur un point précis (ex. la localisation de l'​utilisateur),​ souvent au plus près (grande échelle). 
 + 
 +---- 
 + 
 +**(B)** Ci-après le code d'une application de cartographie en ligne dont la vue n'est pas initialisée explicitement. Il présente le tableau ''​possibleViews''​ qui offre plusieurs paramètres* pour initialiser ​cette vue : compléter la fonction ''​initRandom''​ pour définir une initialisation qui soit aléatoire parmi les 3 possibilités offertes par ce tableau.
  
 (*) longitude/​latitude en EPSG:4326 ! (*) longitude/​latitude en EPSG:4326 !
Line 66: Line 80:
 </​html>​ </​html>​
 </​code>​ </​code>​
 +
 +----
 +http://​www.mediamaps.ch/​oltuto/​Exa1B.html
 +
 +----
 +
  
  
 ===== 2) Ordonnancement de couches ===== ===== 2) Ordonnancement de couches =====
-L'​application ci-dessous n'est pas terminée. ​Son développeur ​a été affecté ​à un autre projet et c'est à vous de prendre le relais. ​+L'​application ci-dessous n'est pas terminée. ​La personne qui était en charge du développement ​a été affectée ​à un autre projet et c'est à vous de prendre le relais. ​
 <​code>​ <​code>​
 <​html>​ <​html>​
Line 153: Line 173:
  
 {{ :​geoinf17:​lyrswitch.png?​nolink|}} {{ :​geoinf17:​lyrswitch.png?​nolink|}}
-Ce même développeur ​vous laisse la sympatique "liste à faire" suivante : +Néanmoins, cette personne ​vous laisse la sympatique "liste à faire" suivante : 
  
 **(A)** Il faudrait mettre un peu d'​ordre dans toutes ces couches (certaines sont cachées en l'​état actuel) et définir lesquelles sont des couches de base (baselayer) ou de superposition (overlay). Note bien que j'​utilise le layerswitcher très pratique de l'​exemple [[geoinf17:​ol3tuto#​ex4dun_controle_layerswitcher_plus_souple|Ex4D]]. En effet, j'ai activé ce layerswitcher (cf balises script et link css) pour facilité la distinction baselayer/​overlay,​ et en plus il insère un menu de contrôle dans l'IHM. Il s'​utilise comme suit :  **(A)** Il faudrait mettre un peu d'​ordre dans toutes ces couches (certaines sont cachées en l'​état actuel) et définir lesquelles sont des couches de base (baselayer) ou de superposition (overlay). Note bien que j'​utilise le layerswitcher très pratique de l'​exemple [[geoinf17:​ol3tuto#​ex4dun_controle_layerswitcher_plus_souple|Ex4D]]. En effet, j'ai activé ce layerswitcher (cf balises script et link css) pour facilité la distinction baselayer/​overlay,​ et en plus il insère un menu de contrôle dans l'IHM. Il s'​utilise comme suit : 
Line 162: Line 182:
  
 **(C)** Il faudrait encore améliorer l'​affichage de la couche Wildruhezonen de sorte que les zones soient transparentes à 50% (on verrait alors les courbes de niveau en transparence). Mais comment faire ? **(C)** Il faudrait encore améliorer l'​affichage de la couche Wildruhezonen de sorte que les zones soient transparentes à 50% (on verrait alors les courbes de niveau en transparence). Mais comment faire ?
 +
 +----
 +http://​www.mediamaps.ch/​oltuto/​Exa2A-B-C.html
 +
 +----
 +
 ===== 3) Cartographie avec CartoCSS ===== ===== 3) Cartographie avec CartoCSS =====
 On part du résultat [[http://​www.mediamaps.ch/​oltuto/​Ex4E_2.html|Ex4E_2.html]] de l'​exemple [[geoinf17:​ol3tuto#​ex4epilotage_de_style_par_le_client_cartocss|Ex4E]] qui personnalise une représentation des districts de Suisse avec les instructions cartographiques CartoCSS définies dans ce fichier http://​www.mediamaps.ch/​oltuto/​sld/​g4districts.mss. Pour rappel :  On part du résultat [[http://​www.mediamaps.ch/​oltuto/​Ex4E_2.html|Ex4E_2.html]] de l'​exemple [[geoinf17:​ol3tuto#​ex4epilotage_de_style_par_le_client_cartocss|Ex4E]] qui personnalise une représentation des districts de Suisse avec les instructions cartographiques CartoCSS définies dans ce fichier http://​www.mediamaps.ch/​oltuto/​sld/​g4districts.mss. Pour rappel : 
Line 171: Line 197:
  
 {{:​geoinf17:​districts1.png?​nolink&​200|}} {{:​geoinf17:​districts1.png?​nolink&​200|}}
 +
 +----
 +<​code>​
 +#​g4districts98 { 
 +    polygon-fill:​ green; ​
 +    [uemars2001 > 75] {
 +    polygon-fill:​ red; 
 +    }
 +}
 +</​code>​
 +----
  
 **(B)** Adapter les instructions CartoCSS pour distinguer en plus, les districts qui ont répondu NON à plus de 80%, puis les districts qui ont répondu NON à plus de 85% **(B)** Adapter les instructions CartoCSS pour distinguer en plus, les districts qui ont répondu NON à plus de 80%, puis les districts qui ont répondu NON à plus de 85%
 {{:​geoinf17:​districts2.png?​nolink&​200|}} {{:​geoinf17:​districts2.png?​nolink&​200|}}
 +
 +----
 +<​code>​
 +#​g4districts98 { 
 +    polygon-fill:​ green; ​
 +    [uemars2001 > 75] {
 +    polygon-fill:​ yellow; ​
 +    }
 +    [uemars2001 > 80] {
 +    polygon-fill:​ orange; ​
 +    }
 +    [uemars2001 > 85] {
 +    polygon-fill:​ red; 
 +    }
 +}
 +</​code>​
 +----
 ===== 4) Un peu de Spatial SQL ===== ===== 4) Un peu de Spatial SQL =====
 ==== Préparation ==== ==== Préparation ====
Line 197: Line 251:
  
 **(A)** Quelle est la longueur de chaque entité de type ''​ST_LineString''​ de la table ? - ''​ST_Length''​ **(A)** Quelle est la longueur de chaque entité de type ''​ST_LineString''​ de la table ? - ''​ST_Length''​
 +
 +----
 +<​code>​
 +select ST_Length(the_geom),​ description from montest where ST_GeometryType(the_geom) = '​ST_LineString'​
 +</​code>​
 +----
  
 **(B)** Quelles sont les coordonnées du point d'​intersection entre la route1 et la route2 ? - ''​ST_Intersection''​ **(B)** Quelles sont les coordonnées du point d'​intersection entre la route1 et la route2 ? - ''​ST_Intersection''​
 +
 +----
 +<​code>​
 +select ST_AsText(ST_Intersection(the_geom,​ (select the_geom from montest where name = '​route2'​))) from montest where name = '​route1'​
 +</​code>​
 +----
  
 **(C)** A quelle distance sont les deux piétons les plus proches ? - ''​ST_Distance''​ **(C)** A quelle distance sont les deux piétons les plus proches ? - ''​ST_Distance''​
 +
 +----
 +<​code>​
 +select A.name as aname, B.name as bname, ST_Distance(A.the_geom,​ B.the_geom) as dist from montest A, montest B where A.name <> B.name and A.name like '​pieton%'​ and B.name like '​pieton%'​ order by dist limit 1
 +</​code>​
 +----
  
 {{:​geoinf17:​cartosql.png?​nolink|}} {{:​geoinf17:​cartosql.png?​nolink|}}
geoinf17/exa1.1513235808.txt.gz · Last modified: 2018/05/16 10:05 (external edit)