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

 

Pied de page des forums

Powered by FluxBB