Suite

Options d'affichage des rasters PostGIS dans OpenLayers


Cette question est similaire à une question précédente sur l'affichage de données vectorielles dans une carte Web. Je souhaite disposer d'une interface Web de base utilisant OpenLayers et pouvant afficher les données raster actuellement dans PostGIS, à l'aide d'un fond de carte tel que Google. J'ai installé PostGIS2.0 avec la bibliothèque raster et je vois dans la documentation qu'il existe plusieurs options pour sortir des données, telles que JPEG, GeoTIFF et PNG. Est-ce un format recommandé à utiliser ?

Pour afficher des données vectorielles, j'utilise actuellement javascript pour envoyer les coordonnées du navigateur de l'utilisateur à mon serveur, puis j'exécute une requête à l'aide de PHP/SQL sur PostGIS. Les résultats sont ensuite renvoyés sous forme de GeoJSON qui peut être superposé sur le fond de carte. Je me suis demandé si une approche similaire pouvait être appliquée à l'aide de rasters, mais je ne sais pas quel format de raster est le meilleur, ou s'il y a d'autres contraintes que je devrais prendre en compte.

J'ai vu beaucoup de références à GeoServer mais je ne sais pas si cela est nécessaire pour ce projet (je ne sais pas vraiment quand GeoServer doit être utilisé ou non).


Rasters sommes images, le meilleur format sera donc un format d'image (png/jpg/etc). Geojson est un bon format pour vecteurs. Vous ne verrez jamais, par exemple, votre photo de profil Facebook être ramenée en tant que json pur. Bien sûr, renvoyer une URL vers une image en tant que json est très très différent :)

En ce qui concerne la discussion jpeg vs png vs tout autre format d'image, il y a des tonnes d'opinions différentes à ce sujet. En résumé, certains formats d'image sont sans perte tandis que d'autres sont avec perte. Votre décision dépend de ce que vous allez faire avec les données. Pour l'analyse, vous ne tolérerez probablement pas les pertes, mais pour afficher des éléments sur le Web, vous le feriez.

PostGIS 2.0 peut-il générer des images ? Sûr. Regardez la section de sortie Raster.

Est-ce une bonne idée? Cela dépend vraiment vraiment de ce que vous faites. Parfois, la génération d'images peut prendre beaucoup de temps, et vous voulez les mettre en cache pour éviter de payer le prix de les générer à chaque fois que vous les demandez via un environnement Web. La seule "mise en cache" que vous pouvez faire du côté de PostGIS consiste à enregistrer les résultats dans une autre table, puis à interroger la table à la place lorsque vous en avez besoin. Geoserver dispose d'une infrastructure complète (GeoWebCache) pour ce faire.

Est-ce que tu besoin GeoServer, probablement pas - mais cela rend la vie beaucoup plus facile lorsque vous avez ce middleware qui expose toutes vos données à l'aide des services Web OGC, fait la mise en cache, le style des vecteurs et des rasters beaucoup plus de choses.


Mapserver prend en charge les rasters postgis et les instructions pour une configuration de base sont données ici (élément 9.9).

Dans votre cas, vous configureriez Mapserver pour qu'il fonctionne comme un serveur WMS afin qu'il renvoie les rasters Postgis en tant que couches WMS normales. Il est alors presque trivial d'ajouter les couches dans votre carte OpenLayers en utilisant un objet couche WMS.

Ce type de solution est probablement votre meilleure option car elle est entièrement basée sur un logiciel OpenSource, c'est une pile éprouvée et ne nécessite pas de middleware étendu. Tout ce dont le serveur de mappage a besoin, c'est d'un serveur Web (l'apache que vous utilisez probablement déjà pour php est ok) qui peut exécuter des scripts cgi. Si les performances ne sont pas un problème critique, vous pouvez éviter d'utiliser un cache (de tuiles) et simplement faire en sorte que mapserver rende les couches à la volée à chaque fois.

Si vous souhaitez mettre en cache les tuiles pour minimiser la charge du serveur et améliorer les temps de réponse, envisagez d'utiliser mapcache ou tilecache. Mapcache est un projet frère cadet de Mapserver, mais devrait surpasse tous les autres caches car il s'exécute en tant que module Apache.

Pour les utilisateurs d'Ubuntu, le moyen le plus simple et le plus simple d'installer les dépendances de Mapserver est d'ajouter le PPA Ubuntu GIS à votre système.


Tout dépend. Taille de l'image, mise en cache, bibliothèques disponibles (certains pilotes jp2k propriétaires par exemple).

Voici un lien vers un pdf génial, Geoserver sous stéroïdes. Cela vous guidera à travers les différents formats, leurs avantages et inconvénients et quelques configurations de base.


Voir la vidéo: Tutorial Postgis Tutorial 168: Postgis raster (Octobre 2021).