#1 Wed 07 April 2010 20:01
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
[Openlayer] Zone tampon
Bonjour
Je cherche à créer un control pour faire un tampon de 500 mètres (polygon et point) sur l'ensemble des features de ma couche vector.
J'ai regardé du coté d'openlayer et je n'ai pas vu de fonction pour créer un buffer. Enfin je souhaiterai changer mettre une couleur différente.
Merci pour les renseignements sur les fonction à utiliser.
Tio
Hors ligne
#2 Fri 09 April 2010 14:27
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
Re: [Openlayer] Zone tampon
Bonjour
Dans un premier temps, j'ai essayé déjà de créer un point en changeant de couleur
Code:
var style_star_red = { fillColor: "red" }; var point = new OpenLayers.Geometry.Point(263800,2498700); var pointFeature = new OpenLayers.Feature.Vector(point, null, style_star_red); outline.addFeatures([pointFeature]); outline.redraw();
Le point n'est pas rouge.
Je ne vois pas le problème, pouvez-vous m'aider?
Merci
Tio.
Hors ligne
#3 Fri 09 April 2010 15:50
- Laurent Jégou
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 5 Sep 2005
- Messages: 447
- Site web
Re: [Openlayer] Zone tampon
La doc indique que la valeur de fillColor doit être une couleur en hexadécimal, pas sur que cela fonctionnne avec le nom de la couleur.
Les buffers ne sont en effet pas possibles pour l'instant côté client avec OpenLayers. C'est en prévision apparemment (Google Summer of Code). Il faut donc en attendant les générer côté serveur si possible.
Enseignant-Chercheur en Géomatique
UT2J - Dept Géo / CNRS UMR LISST-Cieu / Master Sigma - Revue Mappemonde
Hors ligne
#4 Fri 09 April 2010 16:42
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
Re: [Openlayer] Zone tampon
Merci pour l'information sur les tampon. Je vais regarder de ce coté (calculé la géométrie avec postgis peut-être).
Pour la couleur, j'ai essayé
Code:
var style_star_red = { fillColor: '#9999FF' };
Je n'ai pas plus de succès.
Merci de votre aide
Tio.
Edit:
Pour le tampon
Voici un exemple de requête postgis :
select AsText(buffer(ST_GeometryFromText('POINT(453337 2502550)',27572),500))
Pour créer le openlayers.geometry.polygon j'ai opté pour le code proposé à cette adresse http://www.forumsig.org/showthread.php?t=25124 Merci à son auteur
Et enfin
Code:
var polygonFeature = new OpenLayers.Feature.Vector(GeomFromWKT("POLYGON((453837 2502550,453827.392640202 2502452.45483899,453798.939766256 2502358.65828382,453752.734806151 2502272.21488349,453690.553390593 2502196.44660941,453614.78511651 2502134.26519385,453528.341716183 2502088.06023374,453434.545161008 2502059.6073598,453337 2502050,453239.454838992 2502059.6073598,453145.658283817 2502088.06023374,453059.21488349 2502134.26519385,452983.446609407 2502196.44660941,452921.265193849 2502272.21488349,452875.060233744 2502358.65828382,452846.607359798 2502452.45483899,452837 2502550,452846.607359798 2502647.54516101,452875.060233744 2502741.34171618,452921.265193849 2502827.78511651,452983.446609407 2502903.55339059,453059.21488349 2502965.73480615,453145.658283817 2503011.93976626,453239.454838992 2503040.3926402,453337 2503050,453434.545161008 2503040.3926402,453528.341716183 2503011.93976626,453614.78511651 2502965.73480615,453690.553390593 2502903.55339059,453752.734806151 2502827.78511651,453798.939766256 2502741.34171618,453827.392640202 2502647.54516101,453837 2502550))"), null);
Pour la couleur, je n'ai toujours pas la solution.
Dernière modification par tiolebucheron (Fri 09 April 2010 19:14)
Hors ligne
#5 Mon 19 April 2010 16:53
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
Re: [Openlayer] Zone tampon
Bonjour
J'ai avancé pour mon problème de couleur.
J'ai créé un bouton pour changer le style pour l'instant
Code:
function test (){ alert ("coucou"); style.context.getColor = "green" }; topbarItems.push("-"); action = new Ext.Action({ tooltip: "sfsdfsdfsdfs", handler : test, iconCls: "test"}); topbarItems.push(action);
Voici la configuration de ma couche
Code:
colors = "red" var context = {getColor: colors}; var template = {fillColor: "${getColor}"}; style = new OpenLayers.Style(template, {context: context}); outline = new OpenLayers.Layer.Vector( "outline", {styleMap: new OpenLayers.StyleMap(style)} ); map.addLayer(outline);
Je rencontre une dernière difficulté. Sur ma couche vecteur, je dessine à la fois des points et des polygones. Quand je veux dessiner un point cela ne fonctionne pas. Le changement de style doit être incomplet.
Merci de votre aide.
Tio
EDIT : Erreur Je viens de constater qu'il changer mon premier polygone de rouge en vert.
Solution PAS ENCORE TROUVE.
Je ne comprend pas, pourtant ce que je cherche à faire ressemble à cet exemple http://openlayers.org/dev/examples/styles-context.html
Dernière modification par tiolebucheron (Mon 19 April 2010 16:58)
Hors ligne