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

Printemps des cartes 2024

#1 Fri 28 February 2014 15:29

TanaKevin
Juste Inscrit !
Date d'inscription: 28 Feb 2014
Messages: 2

Mapserver/OpenLayers:impossible afficher carte après choix de données

Bonjour à tous,

Je développe un webmapping dynamique: PostGreSQL/PostGIS/Mapserver/OpenLayers/(Langage Javascript(AJAX). Jusqu'à présent, j'arrive à afficher ma carte au chargement(avec des valeurs figées) sur le fond OSM. Cependant, dans mon fichier Template(HTML), j'ai des listes déroulantes et zones de texte (remplies avec les données).Je souhaiterais afficher ma carte en fonction des données choisies par l'utilisateur par un click sur un bouton.Quel choix dois-je faire entre POST et GET? Je n'ai qu'une page HTML actuellement. Quelles sont les démarches?

Merci d'avance pour d'éventuelles idées.

Hors ligne

 

#2 Fri 28 February 2014 17:42

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

Re: Mapserver/OpenLayers:impossible afficher carte après choix de données

Bonjour,

Ca dépend de ce que tu dois faire avec tes boutons. Si ton bouton est de zoomer sur une zone (par exemple une liste de département), tu peux tout faire un JS mais ta liste déroulante devra récupérer la localisation du département pour zoomer dessus. Dans ce cas là pas de POST ni de GET car pas d'envoi côté serveur.

Si tu penses que tu as besoin d'un retour du serveur, zoomer sur une zone après une recherche, le choix de la méthode est plus une questions de tailles des paramètres à envoyer aux serveurs. Si tu n'as pas trop d'information, la méthode GET est suffisante, si la taille est un peu importante la requête sera coupée (il y a une limitation de la longueur de l'URL dans les navigateurs), dans ce cas là la méthode POST est nécessaire.

Côté serveur tu as besoin de code écrit dans un langage dynamique pour qu'il puisse récupérer les paramètres, les traiter et renvoyer les informations après une mise en forme (JSON, GeoJSON, XML, autre). Le PHP est assez facile d'approche et bien supporté sur les serveurs. Python est un langage dynamique également et enfin JAVA. Le choix se fera sur des compétences propres, tes envies et des disponibilités des personnes qui peuvent t'aider.

Toujours côté serveur, tu as déjà probablement un serveur HTML (Apache ?), celui-ci gère sans soucis PHP (juste une extension à installer) et Python (idem). Reste le plus dur : développer tes services qui seront appelés par tes requêtes issus du formulaire smile

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 Sat 01 March 2014 11:21

TanaKevin
Juste Inscrit !
Date d'inscription: 28 Feb 2014
Messages: 2

Re: Mapserver/OpenLayers:impossible afficher carte après choix de données

Bonjour Yves,

Merci  pour les orientations. Au fait,  dans ma couche de base, j’ai des données attributaires telles les noms des régions, des préfectures et des sites (classés par type). J’ai fait un filtre paramétré dans mon mapfile sur le champ attributaire typesite. Ce filtre fonctionne bien au chargement de la page html car j’ai figé la valeur dans la déclaration ma couche WMS. Or, je veux quand un utilisateur sélectionne un type de site, en cliquant sur le bouton « rechercher », uniquement la couche de base (carte) ne doit afficher que ce type sélectionné.

Ci-dessous une partie du code où j'ai figé la valeur du champ type de site:

Code:

var wms=new OpenLayers.Layer.WMS("CARTE_SousPrefecture",
                            "http://localhost/cgi-bin/mapserv.exe?map=C:/ms4w/Apache/htdocs/sgdepid_map_test7.map&",
                             {
                              layers: 'CARTE_SousPrefecture,localite,site',
                              format: 'image/png',
                              width:'600',
                              height:'400',
                              styles:'default',
                              transparent:true,
                              srs:'EPSG:3857',
                              maxExtent:new OpenLayers.Bounds(-20037508,-20037508,20037508,20037508),
                              visibility:true,
                              units:'m',
                              isBaseLayer:false,
                              WrapDateLine:true,
                              projection:new OpenLayers.Projection("EPSG:4326"),
                              displayProjection:new OpenLayers.Projection("EPSG:3857"),
                              extractAttributes:true,
                              reaspect:false,
                              typesites:'ARV', // Valeur figée
                              zoom:9
                             }

Cordialement,

Hors ligne

 

#4 Sat 03 May 2014 12:58

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

Re: Mapserver/OpenLayers:impossible afficher carte après choix de données

Bonjour,

Il faut modifier cette valeur 'ARV' par une variable et/ou la modifier avec du code javascript (ie récupérer la valeur du formulaire, et mettre à jour l'objet wms en conséquence.

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