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 Wed 19 January 2011 15:49

domykaud
Participant occasionnel
Lieu: Grenoble
Date d'inscription: 10 Jun 2009
Messages: 12

Récupérer un polygone GeoExt

Partant de l'exemple Toobar de GeoExt ( http://api.geoext.org/1.0/examples/toolbar.html ), j'ai dessiné un polygone.
Je n'arrive pas à récupérer les coordonnées des points du polygone dans un submit.
J'aimerais, au submit, injecter une string Javascript contenant l'ensemble des coordonnées  dans un champ input.
Fichier toolbar2.html

Code:

<html>
<head>...librairies GeoExt...</head>
<body>
<h2>Récupérer les coordonnées d'un polygone</h2>

<form method="post" action="/carte/selection">
<div id="mappanel"></div>
<input type="text" id="coords" name="coords" value=""/>
<input type="submit" value="Valider"/>
</form>

</body>
</html>

Comment faire simplement ?
Merci par avance.

Hors ligne

 

#2 Wed 19 January 2011 16:43

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

Re: Récupérer un polygone GeoExt

Bonjour,

Je déplace le sujet sur Geolibre-web.

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 19 January 2011 17:28

Delu
Participant actif
Lieu: Briançon
Date d'inscription: 29 Apr 2008
Messages: 76

Re: Récupérer un polygone GeoExt

Dans le formulaire mettre un champ geometry en hidden (vide au départ) :

Code:

<input type="hidden" id="toto" name="geometry" value=""/>

Dans la création du bouton qui dessine le polygone on a ceci :

Code:

new OpenLayers.Control.DrawFeature(vector, OpenLayers.Handler.Polygon, {
                    title: 'Dessiner un polygone'
                })

la fonction javascript à ajouter au fichier javascript de l'appli :

Code:

var format = new OpenLayers.Format.WKT();
var updateGeometryField = function(geometry) {
        if (geometry == null) {wkt = '';}
        else {var wkt = format.write(geometry);}
        Ext.getCmp('edit-zp-form').getForm().findField('geometry').setValue(wkt);//ici avec extjs mais je ne sais plus comment on met à jour en javascript un champ hidden dans un formulaire html.
         alert (wkt); //à supprimer, c'est pour voir le résultat si tout fonctionne comme souhaité
    };
vector.events.on({
            featureadded: function(obj) {
                var feature = obj.feature;
                updateGeometryField(feature);
            }
            ,featuremodified: function(obj) {
                updateGeometryField(obj.feature);
            }
            ,featureremoved: function(obj) {
                updateGeometryField(null);
            }
        });

Ensuite tu postes ton formulaire et tu peux récupérer la géométrie du polygone en wkt.
Dis moi si ça fonctionne, j'ai recopié vite fait des bouts de code d'une appli.

Dernière modification par Delu (Wed 19 January 2011 17:38)

Hors ligne

 

#4 Thu 20 January 2011 12:38

domykaud
Participant occasionnel
Lieu: Grenoble
Date d'inscription: 10 Jun 2009
Messages: 12

Re: Récupérer un polygone GeoExt

Merci pour ces informations, avec lesquelles j'ai pu faire marcher l'exemple.
Dans la page (toolbar.html), j'ai corrigé la balise input ainsi :

Code:

<input type="hidden" id="geometry" value=""/>

Dans le Javascript (toolbar.js), j'ai mis :

Code:

    // Récupérer les coordonnées du polygone
    var format = new OpenLayers.Format.WKT();
    var updateGeometryField = function(geometry) {
        if (geometry == null) {var wkt = '';}
        else {var wkt = format.write(geometry);}
        var elt = document.getElementById('geometry');
        elt.value = wkt;
        alert(elt.value);// à supprimer
    };

Après, la récupération de la valeur du champ sur le serveur et son traitement se font de façon classique.
Avec tous mes remerciements pour cette réponse rapide !

Hors ligne

 

#5 Fri 21 January 2011 12:10

Delu
Participant actif
Lieu: Briançon
Date d'inscription: 29 Apr 2008
Messages: 76

Re: Récupérer un polygone GeoExt

super !
merci pour le suivi

Hors ligne

 

#6 Fri 21 January 2011 12:59

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

Re: Récupérer un polygone GeoExt

Bonjour,

Le featureStore de GeoExt ne fait il pas ce genre de chose ?

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 Fri 21 January 2011 17:28

Delu
Participant actif
Lieu: Briançon
Date d'inscription: 29 Apr 2008
Messages: 76

Re: Récupérer un polygone GeoExt

bonjour,

A ma connaissance non, mais je me trompe peut-être. Le featureStore stocke des géométries et leurs données attributaires mais il ne donne pas une solution pour transmettre au serveur une géométrie fraichement dessinée coté client à l'aide du control DrawFeature

Hors ligne

 

Pied de page des forums

Powered by FluxBB