Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

State Of The Map 2024

#1 Wed 17 June 2009 19:04

BBarthur
Participant actif
Date d'inscription: 17 Jun 2009
Messages: 57

[OpenLayers] questions basiques

Bonjour à tous

Vous remarquerez que je débute... va falloir être patients wink

Ma question porte sur le principe, pas sur du concret.

J'ai lu à bien des endroits que pour afficher une image raster ou un shape avec OpenLayers, il fallait configurer mapserver pour servir ces données en WMS, pour pouvoir les reprendre avec OpenLayers. Cela me parait très compliqué. Comment se fait-il qu'on ne puisse pas directement lire ces données ? Par exemple, en utilisant uniquement mapserver dans un truc basique, il est possible d'afficher directement des rasters, des shapes et autres, si on configure le mapfile en conséquence. Pourquoi c'est pas possible avec OpenLayers ?

Merci d'avance pour vos éclaircissements.

Hors ligne

 

#2 Wed 17 June 2009 19:57

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9861
Site web

Re: [OpenLayers] questions basiques

Bonjour,

MapServer est un serveur Cartographique et se charge de renvoyer une image en partant d'une liste de couche et d'une zone géographique (pour faire simple). Il en existe d'autres : GeoServer, MapGuide OS, Mapnik, etc.

OpenLayers est une interface graphique, cliente. Comme tout client il lui faut interroger un serveur. OpenLayers se charge de traduire les actions de l'utilisateur (déplacement de la carte, activation, désactivation de couche, etc.) en requête vers le serveur.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Wed 17 June 2009 20:33

BBarthur
Participant actif
Date d'inscription: 17 Jun 2009
Messages: 57

Re: [OpenLayers] questions basiques

Merci pour votre réponse, mais concernant ces requêtes vers le serveur, elles ne peuvent pas se faire autrement que par WMS ou WFS ?
Openlayers utilise le javascript, qui est un langage client, donc comment peut-il faire des requêtes au serveur ? Avec PHP-mapscript, je comprends, mais en javascript, j'avoue que ça me dépasse.

Hors ligne

 

#4 Wed 17 June 2009 23:53

René-Luc D'Hont
Participant assidu
Date d'inscription: 7 Nov 2006
Messages: 328
Site web

Re: [OpenLayers] questions basiques

Tout d'abord, pour ce qui est des données type ShapeFile ou Raster, OpenLayers ne peut les interpréter car Openlayers est exécuté par un logiciel qui est un navigateur et qui n'a pas été développé pour interpréter ce genre de données, d'où l'utilisation d'un serveur cartographique.
Autre exemple du fait que les navigateurs sont des logiciels qui ne peuvent pas pour le moment interprété des données géographiques habituels (ShapeFile ou Raster), Internet Explorer ne sait pas directement lire les PNG avec de la transparence...

Ensuite pour ce qui est de la communication, OpenLayers est exploité par un navigateur qui communique avec des serveurs via HTTP. Donc pour faire des requêtes OpenLayers utilisent HTTP via le navigateur. Ensuite les paramètres pour obtenir une image, la carte, sont dans l'URL de la requête HTTP, ces paramètres seront interprétés par le serveur cartographique et renverra l'image.
Pourquoi utilisé le WMS, car c'est standard!

Hors ligne

 

#5 Tue 23 June 2009 09:44

BBarthur
Participant actif
Date d'inscription: 17 Jun 2009
Messages: 57

Re: [OpenLayers] questions basiques

Où pourrais-je trouver un bon tuto qui explique bien de A à Z la procédure sous linux pour afficher ses propres couches ? Jusqu'à présent je n'en ai pas trouvé, ou alors ils n'expliquent pas complètement la démarche, genre géotribu.

Hors ligne

 

#6 Tue 23 June 2009 09:58

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9861
Site web

Re: [OpenLayers] questions basiques

Bonjour,

Un tuto pour créer un serveur carto ou un sur la "configuration" d'un client OpenLayers ?

Étant données l'aspect fortement client-serveur, les deux sont indépendants au niveau de la configuration.

Pour OpenLayers : http://softlibre.gloobe.org/doku.php/openlayers/start
Pour MapServer : http://mapserver.org/ogc/wms_server.html

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#7 Tue 23 June 2009 10:17

BBarthur
Participant actif
Date d'inscription: 17 Jun 2009
Messages: 57

Re: [OpenLayers] questions basiques

Le mieux aurait été un seul tuto expliquant d'une part la mise en place du serveur wms sur mapserver puis la configuration d'openlayers pour le lire. Je commence à savoir comment afficher le wms d'openlayers, mais je dois dire que dans ma phase d'apprentissage, il me manque un tuto qui me permette de passer à la vitesse supérieure en affichant mes propres données.
Etant sous linux, je me demande si mes soucis ne sont pas dus aux permissions.

Hors ligne

 

#8 Tue 23 June 2009 10:21

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9861
Site web

Re: [OpenLayers] questions basiques

Dans ce cas lisez le tuto sur MapServer puis passez au tuto sur OpenLayers wink

De toute façon l'idée sera toujours la même : on configure un service WMS, on le teste, et quand il fonctionne on passe à la configuration du client.

Qu'est ce qui fonctionne et qu'est ce qui ne fonctionne pas sur votre application ?

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#9 Tue 23 June 2009 10:40

BBarthur
Participant actif
Date d'inscription: 17 Jun 2009
Messages: 57

Re: [OpenLayers] questions basiques

Ce qui marche: affichage d'un tif "bluemarble" (photo satellite du monde) depuis le wms de mon mapserver. (par contre il n'y a pas de géoréférencement du fichier tif par un tfw, donc je m'explique pas comment ça marche...)

Ce qui ne marche pas: j'ai un autre tif (avec le tfw, cette fois) que j'aimerais afficher. Donc je remplace le nom du layer dans mon code javascript par le nom de l'autre tif que je veux afficher (j'ai évidemment édité le mapfile) et là... gloubs... plus rien ne s'affiche dans mon cadre (tout blanc).

Un indice, peut-être: le 2e tif que j'essaie d'afficher est très petit par rapport au 1er, donc je soupçonne qu'il s'affiche, mais que je ne le voie pas du fait du zoom "planétaire". Est-ce qu'il y a moyen avec openlayers de zoomer automatiquement sur la couche ?

EDIT: après avoir enfin compris la syntaxe pour afficher plusieurs couches d'un même wms, j'ai pu afficher mes deux tifs en même temps et zoomer sur mon 2e tif à la main et il est effectivement visible.

Par contre, c'est très lent, tout ça... comment ça se fait ? même si je mets qu'une seule couche dans mon mapfile, (tif de moins de 500ko) ça reste lent.

Dernière modification par BBarthur (Tue 23 June 2009 10:52)

Hors ligne

 

#10 Tue 23 June 2009 10:50

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9861
Site web

Re: [OpenLayers] questions basiques

BBarthur a écrit:

Ce qui marche: affichage d'un tif "bluemarble" (photo satellite du monde) depuis le wms de mon mapserver. (par contre il n'y a pas de géoréférencement du fichier tif par un tfw, donc je m'explique pas comment ça marche...)


Soit il n'est pas référencé, soit le géoréférencement est inclut dans le fichier, on appelle ce type de fichier des GeoTiff wink

BBarthur a écrit:

Ce qui ne marche pas: j'ai un autre tif (avec le tfw, cette fois) que j'aimerais afficher. Donc je remplace le nom du layer dans mon code javascript par le nom de l'autre tif que je veux afficher (j'ai évidemment édité le mapfile) et là... gloubs... plus rien ne s'affiche dans mon cadre (tout blanc).


Alors à priori il est possible que mapserver ne prenne pas en compte le fichier de georeferencement, vérifie en lisant la fin de la page : http://mapserver.org/input/raster.html# … orld-files

BBarthur a écrit:

Un indice, peut-être: le 2e tif que j'essaie d'afficher est très petit par rapport au 1er, donc je soupçonne qu'il s'affiche, mais que je ne le voie pas du fait du zoom "planétaire". Est-ce qu'il y a moyen avec openlayers de zoomer automatiquement sur la couche ?


Oui en lui donnant l'extent de la couche, mais openlayers ne le récupérera pas automatiquement.

Code:

map.zoomToExtent(new OpenLayers.Bounds(x_min, y_min, x_max, y_max));

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#11 Tue 23 June 2009 10:57

BBarthur
Participant actif
Date d'inscription: 17 Jun 2009
Messages: 57

Re: [OpenLayers] questions basiques

Sorry, j'ai édité mon message pendant que vous postiez le votre...

Mon 2e tif est bien géoréférencé par rapport au premier, pas de problème (à part la projection qui m'aplatit l'image).

Hors ligne

 

#12 Tue 23 June 2009 11:23

BBarthur
Participant actif
Date d'inscription: 17 Jun 2009
Messages: 57

Re: [OpenLayers] questions basiques

Ok, merci pour le coup de main.

Maintenant, je peux voir mes deux tif sans devoir zoomer pendant 5 minutes.

La lenteur me fait un peu souci... même en n'affichant qu'un seul tif de moins de 500ko, le chargement dure près de 7 secondes. Et je ne fais pas de reprojection, je reste toujours en epsg 4326.

Hors ligne

 

Pied de page des forums

Powered by FluxBB