#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
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
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