Suite

La couche GeoServer de PostGIS ne se met pas à jour


J'ai créé une couche WMS à partir d'une table PostGIS avec une fraction du nombre total de polygones dans GeoServer. Tout s'est bien affiché.

Ensuite, j'ai ajouté le reste des polygones au tableau dans postgis. Pour une raison quelconque, il ne met pas à jour la couche. J'ai essayé de redémarrer le géoserveur et il ne se met toujours pas à jour. Comment faire en sorte que le géoserveur mette à jour la couche ?

J'utilise Open Layers WMS layer et OpenLayers.Protocol.WFS.fromWMSLayer (polygones) pour obtenir des données de polygone.

-N

MISE À JOUR : j'ai essayé de cliquer sur Calculer à partir des données/Calculer à partir des liens de la zone de délimitation pour obtenir le nouveau MBR. Malheureusement, il n'a pas été mis à jour, alors voici autant d'informations que je peux penser à fournir.

J'ai un ensemble de polygones dispersés aux États-Unis. Ils proviennent d'une paire de fichiers SHP dans WGS_1984. J'ai commencé à tester le système avec un petit ensemble de 100 polygones et maintenant que le système fonctionne, je voulais ajouter les autres polygones aux données. J'ai utilisé shp2sql pour créer une nouvelle table dans postgis. Ensuite, j'ai utilisé un INSERT INTO polygons (SELECT from… ) pour les ajouter à la table utilisée par le géoserveur. Il y a maintenant environ 50 000 polygones dans le tableau.

J'ai essayé de mettre à jour le MBR comme le suggèrent les réponses ci-dessous. Voici les paramètres actuels de la couche dans le géoserveur :

SRS natif : EPSG : 4326 SRS déclaré : EPSG : 900913

Lorsque j'appuie sur Calculer à partir des données pour la zone de délimitation native, cela me donne :

(Min x,Min y, Max x, Max y)

-10Mil, 5Mil, -10Mil, 5Mil

et pour les Déclarés :

-95.xxx,40.xxx,-95.xxx,43.xxx

Pour une raison quelconque, ils se mettent désormais à jour correctement. Le MBR devrait couvrir la plupart des États-Unis maintenant et pas seulement cette petite partie au milieu.


Avez-vous mis à jour le cadre de délimitation sur la page du magasin de données ?

Si ce n'est pas le cas, nous aurons besoin de plus de détails sur l'endroit où vous avez ajouté les données, la manière dont vous avez ajouté les données et les erreurs et messages que vous obtenez dans le fichier journal.

Mettre à jour

Quelque chose ne va pas avec vos données - -10Mil, 5Mil, -10mil, 5Mil est complètement faux si vos données sont en 4326 (-180,180,-90,90). Vous devrez peut-être vérifier à quoi ressemblent les données réelles du tableau.

Le moyen le plus simple d'ajouter un deuxième fichier de formes à une table est l'indicateur -a (voir http://postgis.refractions.net/docs/ch04.html#shp2pgsql_usage)


Alors voici ce que j'ai fait qui l'a corrigé, mais ce n'est pas idéal.

Pour une raison quelconque, ni la couche ni le magasin de données n'ont été mis à jour lorsque j'ajouterais des données. La couche n'a pas vu les nouveaux polygones que j'ai ajoutés. Le magasin de données n'a pas non plus vu de nouvelles tables lorsque je les ai ajoutées.

J'ai donc dû créer un nouveau magasin de données PostGIS et utiliser la même table pour créer une nouvelle couche. Cela a mis à jour les données, mais ce serait bien d'avoir la possibilité de mettre à jour la couche sans avoir à en créer une nouvelle.


Le moyen le plus simple d'y parvenir est d'effacer manuellement le cache du géoserveur. Vous pouvez trouver l'emplacement du cache dans le fichier geoserver-directory/WEB-INF/web.xml, il existe une variable appelée GEOSERVER_DATA_DIR, si elle n'est pas présente, vous pouvez l'ajouter et spécifier l'emplacement du répertoire de cache (le mien est /geosrverdata) :

 GEOSERVER_DATA_DIR /geoserverdata

Redémarrez ensuite Tomcat. A l'intérieur de ce répertoire, vous trouverez ceci :

/geoserverdata# ls global.xml gwc styles de sécurité wcs.xml wfs.xml wms.xml espaces de travail

à l'intérieur de gwc, vous trouverez un répertoire pour chaque couche, effacez le contenu de chaque répertoire mais ne supprimez pas le répertoire lui-même.

Vous pouvez automatiser ce travail avec une tâche cron, et vous pouvez effacer le cache tous les deux jours ou tous les mois ou même toutes les 15 minutes.

Mais rappelez-vous que les clients (google maps, couches ouvertes, etc.) peuvent toujours utiliser d'anciennes données, alors assurez-vous également d'effacer le cache des clients.


Geoserver copie automatiquement votre table de données de votre base de données dans "geoserver". Les mises à jour en direct doivent être effectuées sur cette table, pas sur votre original. L'avantage ici est qu'il vous aide à héberger à la fois les données de développement et les données de production.


Voir la vidéo: Comment partager les couches issues dune BD dans GeoServer (Octobre 2021).