Pages: 1
- Sujet précédent - Affichage partiel d'une couche avec geoserver/openlayer/postgis - Sujet suivant
#1 Wed 21 December 2016 23:56
- Oliv73
- Juste Inscrit !
- Date d'inscription: 22 Sep 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 (Wed 21 December 2016 23:56)
Hors ligne
#2 Thu 22 December 2016 19:30
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 Fri 23 December 2016 01:04
- Oliv73
- Juste Inscrit !
- Date d'inscription: 22 Sep 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 Sat 24 December 2016 13:07
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 (Mon 26 December 2016 16:43)
Hors ligne
#5 Thu 09 March 2017 03:50
- Oliv73
- Juste Inscrit !
- Date d'inscription: 22 Sep 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
Hors ligne
#6 Thu 09 March 2017 08:45
- Blaise Picinbono
- Participant actif
- Date d'inscription: 8 Jan 2015
- Messages: 70
- 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 (Thu 09 March 2017 09:24)
Hors ligne
#7 Thu 09 March 2017 12:32
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 Thu 09 March 2017 23:26
- Oliv73
- Juste Inscrit !
- Date d'inscription: 22 Sep 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 (Thu 09 March 2017 23:26)
Hors ligne
#9 Fri 10 March 2017 16:26
- Blaise Picinbono
- Participant actif
- Date d'inscription: 8 Jan 2015
- Messages: 70
- 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 Wed 15 March 2017 00:11
- Oliv73
- Juste Inscrit !
- Date d'inscription: 22 Sep 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
Pages: 1
- Sujet précédent - Affichage partiel d'une couche avec geoserver/openlayer/postgis - Sujet suivant