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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 15 June 2009 09:57

Remi01
Participant actif
Date d'inscription: 18 Jan 2007
Messages: 75

[Openlayers/Mapserver] Emprise/couches disponibles suivant login

Bonjour à tous,

Je me demande quelles sont les possibilités de restreindre l'emprise de la carte et les couches visualisables en fonction d'un login utilisateur. J'utilise Openlayers/Mapfish/Mapserver et PostgreSql.

J'ai identifié quelques pistes/début de solution mais j'aimerais des compléments :

- Générer un Mapfile pour chaque cas d'utilisation, et en stocker plusieurs sur le serveur. Créer également un fichier client (openlayers) adapté à chaque cas
Solution assez lourde si les utilisateurs sont nombreux, mais qui permet de gérer finement les "droits".

- Construire uniquement un fichier client Openlayers adapté à chaque compte utilisateur (définir le maxExtent, et l'ajout des couches et des fonctionnalités suivant le cas) et se baser sur les mêmes services web (même Mapfile).

- Le plugin Mapfish d'authentification, dont je ne connais pas encore grand chose pour le moment ...

Il y'a sans doute d'autres façons de faire ... Je suis intéressé par vos retours d'expérience et vos remarques.

Bon début de semaine !

Rémi

Dernière modification par Remi01 (Mon 15 June 2009 09:57)

Hors ligne

 

#2 Mon 15 June 2009 10:21

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

Re: [Openlayers/Mapserver] Emprise/couches disponibles suivant login

bonjour,

Il y a plus simple. Rapidement. Il est possible d'envoyer une liste de couche dans une fonction constructeur genre init(listerLayer,extentLimit) qui sera utilisé comme liste de couche et limite des extents.

L'identification de l'utilisateur permettra de récupérer ces deux variables stocké en base comme variable utilisateur (au même titre qu'un login, etc.).

Au niveau des couches : une boucle permet de parser listLayer qui devra être un tableau contenant toutes les informations nécessaires pour créer les objets Layers.

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 Mon 15 June 2009 14:14

Remi01
Participant actif
Date d'inscription: 18 Jan 2007
Messages: 75

Re: [Openlayers/Mapserver] Emprise/couches disponibles suivant login

Merci pour cette réponse Yves !

Si d'autres on des retours d'expérience n'hésitez pas !

Rémi

Hors ligne

 

#4 Tue 16 June 2009 12:41

Remi01
Participant actif
Date d'inscription: 18 Jan 2007
Messages: 75

Re: [Openlayers/Mapserver] Emprise/couches disponibles suivant login

Bonjour,

Je suis en train de potasser la question et je m'interroge sur la façon de faire.

Disons que si la solution proposée permet de paramétrer l'ajout des couches et l'extent, comment restreindre une couche (WFS par exemple) à l'emprise administrative dont l'extent est passé en paramètre et sur laquelle la carte est centrée ?

Je ne vois pour qu'une requête spatiale entre la géométrie de l'entité administrative et les différentes couches vectorielles.
Y'a t'il une solution de filtrage autre que de la réaliser depuis le Mapfile en paramétrant la requête ? (ce qui m'obligerais à construire le Mapfile de façon dynamique, ce qui n'est pas le cas pour le moment)  Puis-je filtrer directement grâce à l'API OpenLayers ?

Enfin, j'aimerai savoir comment optimiser au mieux les flux WFS ? parce que c'est relativement lent pour le moment.

Voila, ça fait beaucoup de questions, merci de m'avoir lu !

Rémi

Hors ligne

 

#5 Tue 16 June 2009 13:22

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

Re: [Openlayers/Mapserver] Emprise/couches disponibles suivant login

Bonjour,

Pour restreindre la zone de visibilité dans OpenLayers il faut utiliser :

Code:

restrictedExtent: new OpenLayers.Bounds(restrictBbox.minX, restrictBbox.minY,restrictBbox.maxX, restrictBbox.maxY),

dans les options de ton objet map.

Pour optimiser un WFS il n'y a pas beaucoup de solutions (en supposant que tu ne peux/veux pas limiter le nombre de réponse), l'une d'entre elle serait d'utiliser la compression des données par Apache http://httpd.apache.org/docs/2.0/mod/mod_deflate.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

 

Pied de page des forums

Powered by FluxBB