10
22 aoû 2008

- Introduction -


Nous apprendrons içi comment ajouter des données de type SHP (esri) dans GeoServer. Il est nécéssaire que vous ayez auparavant GeoServer d'installé et que vous l'ayez démarré.

Ce tutorial s'inspire en grande partie de celui proposé sur le site de GeoServer intitulé User Tutorial ShapeFile. Pour les personnes désireuses d'approfondir leurs connaissance, je ne saurais que vous conseiller d'aller y jeter un oeil.

Voici les grandes étapes qui composent ce tutorial. Elles seront ensuite expliquées plus en détails et accompagnées de captures d'écran.

1. Copiez vos shapefiles dans le répertoire /data_dir/data/ situé dans le répertoire d'installation de GeoServer
2. Créez un nouvel Entrepôt dont la source pointe vers vos donnés file:data/myShapefile.shp
3. Créez un nouveau type de données qui pointe sur votre entrepôt
4. Définissez la valeur SRS de votre shp (soyez sûr que votre shp dispose d'un .prj)
5. Définissez l'emprise de votre couche
6. Validez
7. Visualisez votre couche en vous rendant dans la partie prévisualisation des cartes de la page de démonstration
8. Visualisez vos données dans GoogleEarth en copiant une url de ce type (mais en changeant myFeatureType), le port 8080 étant le port par défaut pour GéoServer :
http ://localhost:8080/geoserver/wms/kml_reflect?layers=myFeatureType

- Préparation des données -


Dans un premier temps vous allez devoir copier vos donné dans le répertoire /data_dir/data/ du répertoire d'installation de GeoServer. Vous pouvez, si vous le souhaitez, changer le chemin par défaut des data.

Windows

Ordinateur->Propriété->Paramètres Systèmes Avancés->Variables d'environnement
Ajoutez ou modifiez la variable GEOSERVER_DATA_DIR pour qu'elle pointe vers votre entrepôt de donné

Linux

Pour un changement temporaire il faut exporter la variable d'environnement DATA DIR :
(dans un shell) export GEOSERVER_DATA_DIR=/home/path_to_myData/
Pour que ce changement soit permanent modifier le fichier .bashrc en conséquence.

- Ajout des données à GeoServer -


Les premières étapes sont assez simples, elles sont résumées par les 4 images ci-dessous. Nous allons spécifier à GéoServer que nous allons ajouter une nouvelle donnée

1 /

2 /

3 /

4 /

Nous allons spécifier le type de données que nous allons utiliser (dans notre cas du Shp) :

5 /

Nous allons, pour finir, decrire la donnée. Pour cela il faut lui assigner un style :

6 /

Et enfin définir son système de projection (Rechercher un SRS) ainsi que son emprise spatiale (Générer) :

7 /

8 /

Vous devez enfin appliquer puis sauvegarder les modifications

9 /

- Visualisez ses données -


La visulation de vos données pourra se faire sous différents formats (pdf, KML, SVG, OpenLayers....). Pour cela vous devez vous rendre dans la partie démonstration puis prévisualisation des cartes :

10 /

11 /

A propos de l'auteur: 
Arnaud Vandecasteele

Fervent défenseur de l'Open Source, Arnaud s'est spécialisé dans le développement d'application cartographiques web. OpenLayers, PostGIS ou encore Django sont autant d'outils qu'il manipule au quotidien.
S'il n'est pas en face de son ordinateur, vous le retrouverez un GPS à la main en train de cartographier pour OpenStreetMap, de faire voler son drone ou sur un tatami !

Commentaires

Mais pourquoi c'est si dur de servir un simple raster géo-référencé en wms ? J'ai réussi à me faire un joli raster complet de ma commune, en geotiff. Mais quelle galère pour arriver à monter un serveur wms. Que c'est compliqué !

Mince alors, pas un seul logiciel, tu télécharges, tu installes. Tu te connectes à l'interface (geoserv) tu dis "je veux servir un raster, je sélectionne mon raster et hop il le télécharge et le sers. Ou bien tu installes un mapserver et tu as un répertoire raster, tu y glisses le raster et hop il est servi. Pfiou, c'était mon coup de gueule :)

;)

Geoserver est clairement le meilleur outil pour servir rapidement un raster (sous Mac ou Windows). Je m'y suis perdu car je ne trouvais pas la projection de mon raster (Lambert III). Au final j'ai recrée mon raster en WGS84 ;)

Du coté des shapefiles je galère un poil. Lorsque je clique sur kml, google earth se lance et j'ai bien mon shp, mais lorsque je clique sur openlayers là il cherche à me faire enregistrer un fichier wms de type application/vnd.ogc.se_xml bref pas glop ;) Je pensai arriver sur une carte osm avec mon shapefile en surimpression.

Normalement pour OpenLayers, c'est le cas. Pas de fond OSM mais affichage de la couche.
Enregistre le fichier WMS et ouvre le avec un éditeur de texte.
La cause de l'erreur est inscrite dedans.

Arnaud

"The request bounding box has zero area"

Je n'arrive pas à trouver la réponse à ce problème sur la liste de geoserver. Pourtant mon shp s'ouvre bien sous qgis, ou en kml servi par geoserver…

Arf j'ai trouvé. Mes données de test étant tellement proches que la bounding box auto-générée par geoserver est nulle (coin supérieur gauche égale au coin inférieur droit). Pas gênant pour un fichier gml/kml mais très gênant pour openlayers :p

Pour servir un geoTiff en WMS il suffit de déclarer cette ressource dans l'interface d'administration de GeoServer :
>http://docs.geoserver.org/trunk/en/user/data/geotiff.html

De plus, la nouvelle version de GeoServer permet d'ajouter et d'agréger des services WMS (WMS Cascading), voir mon post :
> http://geotribu.net/node/321

Impossible de voir les images de ce site (j'ai essayé sur différent navigateurs et différentes connexion internet)

Le problème devrait être réglé. Merci pour l'info :)

En effet merci =)