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


geoinf14:postgis0

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
geoinf14:postgis0 [2014/12/01 15:15]
oertz [Utilisation de la SQL API de CartoDB]
geoinf14:postgis0 [2018/05/16 10:05] (current)
Line 3: Line 3:
   * Installer PostGIS selon les instructions ici http://​postgis.net/​install. En résumé :   * Installer PostGIS selon les instructions ici http://​postgis.net/​install. En résumé :
     * pour Mac, préférer l'​approche "​tout-en-un"​ http://​postgresapp.com     * pour Mac, préférer l'​approche "​tout-en-un"​ http://​postgresapp.com
-    * pour Windows, installer d'​abord Postgresql par [[http://​www.enterprisedb.com/​products-services-training/​pgdownload|EnterpriseDB]],​ puis activer l'​add-on PostGIS+    * pour Windows, installer d'​abord Postgresql par [[http://​www.enterprisedb.com/​products-services-training/​pgdownload|EnterpriseDB]],​ puis activer l'​add-on PostGIS ​(veiller à cocher la case "​create spatial database"​ durant l'​installation)
     * si aucune ne fonctionne, explorer les autres approches pour réaliser cette installation     * si aucune ne fonctionne, explorer les autres approches pour réaliser cette installation
 +
 +  * Astuce pour WAMP et le problème //​pg_connect//,​ d'​après Daniel :
 +<​code>​
 +1. Copier C:​\wamp\bin\php\php5.xxx\libpq.dll
 +2. Dans C:​\wamp\bin\apache\apache2.xxx\bin
 +3. Restart Apache
 +</​code>​
  
   * Compléter l'​installation par la création d'une //​geodatabase//​ :    * Compléter l'​installation par la création d'une //​geodatabase//​ : 
Line 32: Line 39:
 <​code>​ <​code>​
 SELECT ST_AsEWKT(the_geom) FROM my4capitals;​ SELECT ST_AsEWKT(the_geom) FROM my4capitals;​
 +SELECT ST_AsText(the_geom) FROM my4capitals;​
 SELECT ST_AsGeoJSON(the_geom) FROM my4capitals;​ SELECT ST_AsGeoJSON(the_geom) FROM my4capitals;​
 </​code>​ </​code>​
   * Transformer des coordonnées d'une projection à une autre   * Transformer des coordonnées d'une projection à une autre
 <​code>​ <​code>​
-SELECT ST_AsEWKT(ST_Transform(the_geom,​ 21781)) FROM my4capitals;​+SELECT ST_AsEWKT(ST_Transform(the_geom,​ 21781)), ST_AsEWKT(the_geom) FROM my4capitals;​
 </​code>​ </​code>​
  
 ===== Géoservice Get4Capitals.php ===== ===== Géoservice Get4Capitals.php =====
-Cet exemple montre comment créer un service sur mesure qui va //publier// l'​information géographique de la géotable. Il est notamment ​faire usage du format GeoJSON pour transmettre ces données au client. OpenLayers saura par exemple l'​exploiter facilement.+Cet exemple montre comment créer un service sur mesure qui va //publier// l'​information géographique de la géotable. Il est notamment ​fait usage du format GeoJSON pour transmettre ces données au client. OpenLayers saura par exemple l'​exploiter facilement ​comme vu dans [[geoinf14:​oltuto#​ex5asource_de_donnees_openlayersformat|Ex5A]].
  
 <​code>​ <​code>​
Line 59: Line 67:
 </​code>​ </​code>​
  
-On a besoin d'un GeoManager (GeoManager.php) qui sait communiquer ​avec la geodatabase.+On a besoin d'un GeoManager (GeoManager.php) qui sait gérer les requêtes ​avec la geodatabase ​et encoder les résultats par un flux GeoJSON.
 <​code>​ <​code>​
 <?php <?php
Line 124: Line 132:
  
 __TODO__ __TODO__
-  - Tester ce géoservice et analyser les différentes étapes du processus+  - Tester ce géoservice et analyser les différentes étapes du processus ​(veiller à reconfigurer les paramètres de connexion)
   - Terminer l'​exemple en exploitant le géoservice dans OpenLayers avec une OpenLayers.Layer.Vector   - Terminer l'​exemple en exploitant le géoservice dans OpenLayers avec une OpenLayers.Layer.Vector
- 
-====== Spatial database :: CartoDB ====== 
-  * Créer un compte chez www.cartodb.com et s'y loguer 
- 
-===== Première "​CartoTable"​ ===== 
-  * Créer une //Empty table// 
-  * Renommer la table (Edit Metadata) //​my4capitals//​ 
-  * Exécuter dans le panneau SQL les insertions ci-dessous 
-<​code>​ 
-INSERT INTO my4capitals (cartodb_id,​ name, the_geom) VALUES ( 0, '​Paris',​ ST_GeometryFromText( '​POINT(2.333 48.867)',​ 4326)); ​ 
-INSERT INTO my4capitals (cartodb_id,​ name, the_geom) VALUES ( 1, '​Bern',​ ST_GeometryFromText( '​POINT(7.433 46.95)',​ 4326)); 
-INSERT INTO my4capitals (cartodb_id,​ name, the_geom) VALUES ( 2, '​Rome',​ ST_GeometryFromText( '​POINT(12.5 41.883)',​ 4326)); 
-INSERT INTO my4capitals (cartodb_id,​ name, the_geom) VALUES ( 3, '​Madrid',​ ST_GeometryFromText( '​POINT(-3.71 40.41)',​ 4326)); 
-</​code>​ 
-  * Executer dans le panneau SQL et comparer la colonne //​the_geom//​ et //​the_geom_webmercator//​ 
-<​code>​ 
-SELECT * from my4capitals 
-</​code>​ 
-  * Basculer en mode MAP VIEW 
-  * Editer la CartoCSS à votre goût (onglet CSS) 
- 
-==== Utilisation de la SQL API de CartoDB ==== 
-Le Geomanager précédent est maintenant remplacé par une API Web. On peut y lancer des requêtes GQL. Par exemple : 
-<​code>​ 
-<?php 
-$ch = curl_init();​ 
-curl_setopt($ch,​ CURLOPT_RETURNTRANSFER,​ 1); 
- 
-$api_key = "​2e957be5f1e9c0793ca1725aab08274a795f2c3f";​ 
-$q = "​select name, ST_AsGeoJSON(the_geom) as geom from my4capitals";​ 
- 
-$url = "​http://​oertz.cartodb.com/​api/​v2/​sql?​api_key="​ . $api_key. "&​q="​ . urlencode($q);​ 
-curl_setopt($ch,​ CURLOPT_URL,​ $url); 
- 
-$result = curl_exec($ch);​ 
- 
-header("​Content-type:​ application/​json"​);​ 
-echo $result; 
-?> 
-</​code>​ 
-__TODO__ 
-  - Adapter le géoservice Get4Capitals.php en utilisant l'API SQL de CartoDB pour afficher les 4 villes dans votre application OpenLayers. 
- 
geoinf14/postgis0.1417443329.txt.gz · Last modified: 2018/05/16 10:05 (external edit)