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

Printemps des cartes 2024

#1 Mon 19 January 2015 20:52

lafayette
Juste Inscrit !
Date d'inscription: 19 Jan 2015
Messages: 5

Openlayers 3 - WFS - Affichage en fonction du niveau de zoom

Bonjour,

Je débute avec Geoserver et 0penlayers 3. J'ai installé Opengeo qui contient les deux. J'ai des couches (postgis) que je souhaite afficher en WFS avec Openlayers 3. Cela fonctionne bien (servervector et geojson). Par contre je n'arrive pas à faire deux choses :

- d'une part afficher la couche wfs uniquement à partir d'un certain niveau de zoom ou d'échelle (en wms c'est simple avec geoexplorer)

- limiter le nombre d'attributs chargés (chaque couche contient beaucoup d'infos (colonnes) et je ne souhaite en charger que 2 ou 3).

Qqun aurait il une piste ou solution ?

Merci.

Hors ligne

 

#2 Mon 19 January 2015 21:55

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 942
Site web

Re: Openlayers 3 - WFS - Affichage en fonction du niveau de zoom

Bonjour,

Pour le point 1, utilisez les paramètres minResolution et maxResolution (cf http://openlayers.org/en/v3.0.0/apidoc/ … ctor.html)

Pour le point 2, comme vous avez la main sur le serveur, vous avez plusieurs choix:

* Enlever les colonnes dans la table de la base de données (PostGIS) avant d'importer
* Créer et utiliser une vue dans PostGIS et la réutiliser dans GeoServer (intéressant plutôt si vous êtes en lecture seule parce que la mise à jour de données depuis une vue est pas pratique à prendre en main)
* Utiliser une vue dans GeoServer cette fois-ci; soit statique (les colonnes ne changent pas); soit dynamique (vous passez dans l'url d'appel au WFS les colonnes que vous souhaitez) (cf doc http://docs.geoserver.org/stable/en/use … view.html)

Perso, je prendrais la dernière solution à la vue de votre avancement: vous avez déjà tout dans GeoServer, cela vous évite de "revenir en arrière" en réimportant des données ou en déclarant de nouvelles tables/vues PostgreSQL. L'autre facteur de décision est si vous êtes en lecture seule ou lecture/écriture. Si vous êtes en lecture-écriture, par exemple, "sabrer" des colonnes risquent d'être une mauvaise idée si vous devez récupérer les données de la base ultérieurement.

S'il y a d'autres solutions alternatives ou des compléments à ma réponse, je suis aussi preneur!

Cordialement

Thomas

Hors ligne

 

#3 Wed 21 January 2015 18:52

lafayette
Juste Inscrit !
Date d'inscription: 19 Jan 2015
Messages: 5

Re: Openlayers 3 - WFS - Affichage en fonction du niveau de zoom

Bonjour
Merci les view fonctionnent a merveille. Par contre impossible de faire fonctionner l affichage de la couche wfs par niveau de zoom, Je precise que je charge aussi des couches wms et que seule la couche wfs doit etre affichee en fonction du niveau de zoom. J essaye donc d appliquer un minzoom ou un minresolution ou un minscale au layer wfs et non a la map entiere, Dans l exemple suivant ou devrais je placer un minscale 1/50000 pour ne charger le wfs qu a partir de cette echelle,
http://openlayers.org/en/v3.1.1/example … r-wfs.html
Merci

Dernière modification par lafayette (Wed 21 January 2015 20:49)

Hors ligne

 

#4 Thu 22 January 2015 20:02

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 942
Site web

Re: Openlayers 3 - WFS - Affichage en fonction du niveau de zoom

Bonsoir,

Ce lien https://groups.google.com/d/msg/ol3-dev … -JQ9L_YeMJ pointe vers une fonction qui calcule l'échelle pour une résolution. Vous faites un produit en croix pour la résolution depuis l'échelle.

Ensuite, vous utilisez la valeur obtenue en mettant la propriété maxResolution sur la couche vecteur (WFS).

Cordialement

Thomas

Hors ligne

 

#5 Thu 22 January 2015 20:49

lafayette
Juste Inscrit !
Date d'inscription: 19 Jan 2015
Messages: 5

Re: Openlayers 3 - WFS - Affichage en fonction du niveau de zoom

Bonsoir,

Je vais regarder cela même si j'ai essayé de nombreuses combinaisons extrèmes sans pourvoir modifier l'affichage systématique du layer.
Merci.

Dernière modification par lafayette (Thu 22 January 2015 20:59)

Hors ligne

 

#6 Thu 22 January 2015 21:00

lafayette
Juste Inscrit !
Date d'inscription: 19 Jan 2015
Messages: 5

Re: Openlayers 3 - WFS - Affichage en fonction du niveau de zoom

Faut il bien mettre le minscale au niveau de la strategy ?

Hors ligne

 

#7 Thu 22 January 2015 22:02

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 942
Site web

Re: Openlayers 3 - WFS - Affichage en fonction du niveau de zoom

Bonsoir,

Non, non, relisez, c'est possible mais comme vous jouez ici aussi avec la résolution, vous ne faites que déplacer le problème qui est que pour le moment, vous ne comprenez pas encore ce qu'est une résolution et pourquoi on l'utilise.

En effet, vous voulez utiliser  minscale mais qui dans OpenLayers 3 n'existe pas!
Comme la propriété n'existe pas, mais que généralement, on parle dans le langage courant d'échelle, on fait la conversion entre échelle (50000) et résolution. Pareil, j'ai expliqué dans mes réponses comment on faisait.

Au final, le plus simple, c'est de mettre une maxResolution au niveau de "ol.layer.Vector"  comme déjà indiqué en me citant moi-même.

Utilisez les paramètres minResolution et maxResolution (cf http://openlayers.org/en/v3.1.1/apidoc/ … ctor.html)


Cordialement

Thomas

Dernière modification par ThomasG (Thu 22 January 2015 22:03)

Hors ligne

 

#8 Fri 23 January 2015 19:50

lafayette
Juste Inscrit !
Date d'inscription: 19 Jan 2015
Messages: 5

Re: Openlayers 3 - WFS - Affichage en fonction du niveau de zoom

Bonsoir,

Merci pour tous les conseils ! Au final le maxResolution fonctionne lorsque la valeur est correcte au niveau de de ol.layer.vector.

Il ne me reste plus qu'à mettre une fonction d'export vers un jpeg.

Hors ligne

 

Pied de page des forums

Powered by FluxBB