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

Responsables de formations en géomatique,

merci d'actualiser vos données sur GeoFormations

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

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

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

FlorianD
Moderateur
Date d'inscription: 22 déc. 2016
Messages: 28
Site web

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

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

FlorianD
Moderateur
Date d'inscription: 22 déc. 2016
Messages: 28
Site web

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

 

#5 jeu. 09 mars 2017 03:50

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

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

Bonjour Geomatik,

J'ai bien tenu compte de vos conseils que j'ai mis en pratique afin de résoudre mon pb. En vain....
Les symptômes restent les mêmes.
Je multiplie les recherches pour comprendre et résoudre ce pb.

J'en suis arrivé à constater que ce sont les objets de petites tailles (surface faible) qui ne sont pas affichés d'entrée.
Pour cela j'ai créé 2 nouveaux objets dans ma couche l'un à coté de l'autre. Un des objets est bcp plus gros que l'autre. Il s'affiche d'emblée alors que l'autre ne s'affiche qu'en zoomant !!!???
Par ailleurs j'ai levé le doute sur le fait que cela peut venir de l'appli (geoserver + openlayer). En effet lorsque j'accède à ma couche de données (hébergée sur postgre) en wms avec QGis, j'ai exactement le même comportement.

J'ai également supprimé la couche dans PostGRE pour la recréer et ça n'a rien changé. J'ai d'ailleurs ce comportement sur d'autres couches.

Encore une fois si j'accède aux données en WFS, je vois tous les objets de la couche sans avoir à zoomer.

Je joins à ce poste le fichier SHP de la couche afin que vous puissiez faire des tests (merci à tous) et tenter de résoudre cette énigme.

Cordialement

Olivier


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

Hors ligne

 

#6 jeu. 09 mars 2017 08:45

Blaise Picinbono
Membre
Date d'inscription: 8 janv. 2015
Messages: 7
Site web

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

Bonjour;

C'est curieux, je n'arrive pas à ouvrir le fichier shape joint avec QGis (2.12.1): "Source de données non valide"... ?

Cependant en ouvrant le fichier dbf avec LibreOffice, je constate qu'apparemment il n'y a pas de champ "ID".

Essayez de créer un champ "ID" placé en première position dans ce fichier dbf et donnez un identifiant UNIQUE à chaque enregistrement.

J'ai déjà rencontré ce problème de non affichage de tous les éléments d'un fichier shp par WMS; j'avais bien un champ "ID", mais certains enregistrements avaient la même valeur dans ce champ. En mettant une valeur unique, tous les éléments s'étaient finalement affichés.

Dernière modification par Blaise Picinbono (jeu. 09 mars 2017 09:24)

Hors ligne

 

#7 jeu. 09 mars 2017 12:32

FlorianD
Moderateur
Date d'inscription: 22 déc. 2016
Messages: 28
Site web

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

Bonjour,

Comme Blaise, il m'est impossible d'ouvrir le fichier dans QGIS 2.18 : "fichier non valide".

FD
http://geomatick.com

Hors ligne

 

#8 jeu. 09 mars 2017 23:26

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

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

Bonjour,

Je remets en PJ le fichier ZIP. J'en profite pour mettre celui d'une autre couche dont le comportement est identique.
Les données sont hébergées dans une base PostGRE. J'ai mis les fichiers SHP pour que vous puissiez charger les données.
Donc dans ma base postgre, la clé primaire (colonne GID) a été créée à l'import (avec shp2pgsql).
Ceci-dit j'ai tenu compte de vos remarques en changeant la clé primaire, en utilisant la colonne IDENT.

Malheureusement, sans succès.....

Merci de votre aide

Olivier

Dernière modification par Oliv73 (jeu. 09 mars 2017 23:26)


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

Hors ligne

 

#9 ven. 10 mars 2017 16:26

Blaise Picinbono
Membre
Date d'inscription: 8 janv. 2015
Messages: 7
Site web

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

Bonjour,

J'ai monté une application openlayers lisant les données Runway_Markings servies en wms avec mapserver à partir du fichier shapefile.
Il n'y a pas de problème, toutes les formes s'affichent correctement quelque soit le niveau de zoom.

De même lorsque je consulte cette même couche servie par mapserver en wms dans QGis.

Je n'ai pas d'instance de PostGis ni de Geoserver sous la main pour tester exactement dans votre configuration.

Si comme vous le dites vous rencontrez le même problème, que ce soit en consultant avec openlayers ou avec QGis, je pencherais pour un problème venant de PostGis.
Vous pourriez peut-être essayer de servir la couche avec Geoserver à partir du fichier shapefile au lieu d'avec PostGis pour lever le doute ?

Hors ligne

 

#10 mer. 15 mars 2017 00:11

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

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

Bonjour,

Tout d'abord, merci de vos réponses qui me permettent d'avancer moi qui suis dans un coin reculé de la planète.

J'ai créé une couche dans géoserver qui s'appuie sur le shapefile et cela fonctionne parfaitement.
Je vais donc creuser du coté de postgis mais je crois que le plus simple sera une réinstall.

Merci encore de votre aide et bonne continuation à tous

Olivier

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |