Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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 Fri 04 May 2012 13:21

rboussant
Juste Inscrit !
Date d'inscription: 20 Apr 2012
Messages: 4

Zoom sur un extent de features

Bonjour,

Je travaille sur OpenLayers en JavaScript et je suis confronté à un problème. J'ai la possibilité de dessiner sur une même couche des features de couleur différente que je peux trier grâce à une liste déroulante (j'applique un filter pour cela).

Lorsque je sélectionne une couleur dans ma liste déroulante, j'aimerai pouvoir zoomer automatiquement sur l'extent de toutes les features de la couleur sélectionnée.

Le problème est que je fais un refresh de toutes mes couches pour pouvoir appliquer le filtre (layer.refresh({force:true})wink et que le code javascript continue de s'exécuter alors pour calculer les extents alors que le refresh n'est pas encore terminé.

Je ne sais pas si j'ai été bien clair mais en tout cas, si vous savez comment on peut récupérer l'état du refresh des couches, cela m'aiderait beaucoup !

Hors ligne

 

#2 Sat 05 May 2012 11:54

sigdu80
Participant actif
Date d'inscription: 2 Sep 2010
Messages: 112

Re: Zoom sur un extent de features

Bonjour,


je n'ai pas la solution, mais je cherche déjà à cerner ce que tu souhaites.

Tu choisis une couleur dans la liste déroulante.
Cela applique le filtre qui colorise les features correspondant au choix de ta liste déroulante. Suite à cela, tu fais un layer.refresh.
Tu voudrais avoir un callback sur la terminaison du layer.refresh.
Dans ce callback, tu voudrais déclencher un zoom sur les features de la couleur sélectionnée.

C'est bien çà ?

Tu sais zoomer sur des features en particulier ? zoomToExtent()
avoir un callback sur la terminaison du layer.refresh ? là, je me demande si je n'avais pas cherché cela, sans succès.

Dernière modification par sigdu80 (Sat 05 May 2012 11:54)

Hors ligne

 

#3 Wed 09 May 2012 08:59

rboussant
Juste Inscrit !
Date d'inscription: 20 Apr 2012
Messages: 4

Re: Zoom sur un extent de features

Bonjour,

C'est bien ça.
Du coup, le code est censé créer le filtre, l'appliquer sur les différentes couches, rafraichir les couches (seules les features de la couleur sélectionnée doivent être affichées), pour enfin faire un extent sur les features affichées.

Le problème étant que le serveur qui stocke mon fond de carte est situé à l'autre bout de la France et le réseau n'est pas très rapide.
L'allé/retour entre le poste client et le serveur pour rafraichir les couches mettant du temps, le code javascript continue à s'exécuter et le calcul des extents est déjà lancé alors que que le refresh n'est pas terminé. Du coup, ça m'affiche l'extent des features qui étaient affichées avant que j'applique le filtre.

Je ne sais pas si j'ai été clair, mais en résumé, je veux juste pouvoir lancer le calcul de mes extens seulement une fois que mon layer.refresh({force:true}); est terminé.

Merci !

Hors ligne

 

#4 Wed 09 May 2012 10:44

sigdu80
Participant actif
Date d'inscription: 2 Sep 2010
Messages: 112

Re: Zoom sur un extent de features

Bonjour,

oui, tu cherches à avoir un callback déclenché sur la fin de chargement d'un layer.
Dans l'API d'OpenLayers, je n'arrive pas à trouver la méthode refresh de layer.

Peux-tu la mettre en lien ici si tu la retrouves ?

Hors ligne

 

#5 Wed 09 May 2012 10:47

rboussant
Juste Inscrit !
Date d'inscription: 20 Apr 2012
Messages: 4

Re: Zoom sur un extent de features

Je mettrai une solution en ligne dès que je la trouve !

Hors ligne

 

#6 Wed 09 May 2012 11:09

sigdu80
Participant actif
Date d'inscription: 2 Sep 2010
Messages: 112

Re: Zoom sur un extent de features

On parle bien d'un lien sur la doc de la méthode refresh de Layer ?
Dès que tu trouves, oui, met là.

Hors ligne

 

Pied de page des forums

Powered by FluxBB