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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Logo geoséminaire 2017

Les auditeurs du Mastère Spécialisé SILAT (AgroParisTech) vous invitent à la dixième édition du

Géoséminaire 2017, le 2 mars à Montpellier.

Retrouvez toutes les informations ici.

#1 mer. 21 décembre 2016 23:56

Oliv73
Membre
Date d'inscription: 22 sept. 2016
Messages: 3

Affichage partiel d'une couche avec geoserver/openlayer/postgis

Bonjour,

Je rencontre un pb d'affichage de certaines de couches de ma base de données. Je n'ai pas paramétré d'échelle d'affichage sur ces couches.
Certains objets de cette couche s'affichent à l'ouverture de mon appli, mais pas toutes. Et au fur et à mesure que je zoome (de plus en plus près) les objets s'affichent. (cf PJ)

Je souhaite que l'ensemble des objets de la couche s'affichent en même temps.

Ma config est geoserver 2.8.5 sur Ubuntu 14 + openlayer avec une base de données postgis.

Merci de votre aide

Dernière modification par Oliv73 (mer. 21 décembre 2016 23:56)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 jeu. 22 décembre 2016 19:30

geomatick
Membre
Date d'inscription: 22 déc. 2016
Messages: 13

Re: Affichage partiel d'une couche avec geoserver/openlayer/postgis

Bonjour,

Le problème peut provenir de différentes sources :

- Réseau : Votre débit internet est trop faible.

- Geoserver : Avez-vous configurer la couche dans Geoserver pour limiter le nombre d'objets géographiques de la couche? Avez-vous optimiser Geoserver avec un système de caches?

- Openlayers : Dans Openlayers, comment chargez-vous la couche? wms? wfs?

Geomatick
http://www.geomatick.com

Hors ligne

 

#3 ven. 23 décembre 2016 01:04

Oliv73
Membre
Date d'inscription: 22 sept. 2016
Messages: 3

Re: Affichage partiel d'une couche avec geoserver/openlayer/postgis

Bonjour,

Merci de votre réponse.

D'un point de vue réseau, nous sommes sur de l'intranet donc en Gb.

Dans Geoserver je n'ai pas limité le nombre d'objets. La valeur par défaut est à 0. J'ai essayé de mettre 500 sachant que je n'ai que 200 objets dans cette table mais cela n'a rien changé.

Dans Open Layers, je charge la couche en wms et c'est d'ailleurs là qu'est le pb. Car j'ai essayé d'afficher la couche en WFS et là je n'ai plus de pb.

Malgré tout je souhaiterai pouvoir relire cette couche en wms car mon appli est ensuite développé pour exploiter ce format.

Merci d'avance

Olivier

Hors ligne

 

#4 sam. 24 décembre 2016 13:07

geomatick
Membre
Date d'inscription: 22 déc. 2016
Messages: 13

Re: Affichage partiel d'une couche avec geoserver/openlayer/postgis

Bonjour Olivier,

Pour l'affichage du nombre d'objets dans la couche, limiter le nombre d'objets a pour effet de pouvoir observer un nombre réduit d'objets géographiques. On est d'accord que si vous voulez tous les afficher, il ne faut pas limiter ce nombre d'objets.

Dans Geoserver, vous devez optimiser l'affichage des données avec un système de cache, c'est-à-dire qu'après un premier affichage, tous les objets seront en mémoire dans le navigateur et seront affichés plus rapidement. Dans l'édition de la couche > publication, cochez En-tête de cache de réponse et indiquez un temps de mis en cache par exemple 3600 s.

Dans Openlayers, vous pouvez chargez des flux wms sous format image (https://openlayers.org/en/latest/exampl … image.html) ou sous format tuilé (WMTS) (https://openlayers.org/en/latest/exampl … -tile.html). Cette dernière option est plus rapide.
Aussi, pour l'affichage de la couche, vous pouvez précharger la donnée. L'affichage de l'objet géographique sera dégradé pour un zoom faible et plus précis pour un zoom plus fort. Le paramètre est preload:inifinity intégré dans le code comme ci-après :

var couche=new ol.layer.Tile({
    preload: Infinity,
    opacity: 1.0,
    source: new ol.source.TileWMS(({
        projection: 'EPSG:4326',
      url: "http://www.[nom de domaine]/geoserver/[espace de travail]/wms?",
      params: {"LAYERS": "[couche]", "TILED": "true"},
    })),
    title: "titre",
    visible: true
});   


Tous ces paramétrages devraient améliorer l'affichage de votre couche.

Bonnes fêtes

Geomatick
http://geomatick.com

Dernière modification par geomatick (lun. 26 décembre 2016 16:43)

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |