Pourquoi avons-nous besoin de Mapserver / Geoserver pour présenter les données de la base de données spatiales au navigateur Web?

12

J'essayais "Comment j'ai installé GeoServer sur une vieille machine" et By @iant je configurais Tomcat et tout.

J'ai soudainement eu une question ... pourquoi avons-nous besoin de MapServer et GeoServer?

Ces serveurs peuvent-ils extraire des données de la couche de base de données à la demande de l'utilisateur et présenter uniquement ce que l'utilisateur a demandé à la base de données?

kinkajou
la source

Réponses:

19

La réponse est simple: vous n'en avez pas besoin , mais cela vous facilite la vie. Vous devez avoir une sorte d'élément serveur entre votre base de données et le navigateur Web: vous pouvez donc soit écrire votre propre serveur en PhP (ou java ou autre) et gérer tous les caprices de la base de données que vous utilisez et trier le virement bancaire formats etc et faites le débogage et les tests. Ou vous pouvez vous tenir sur les 131 années-personnes qui ont contribué au développement de GeoServer (ou les 53 années-personnes de MapServer) et commencer à servir les cartes cet après-midi.

Et tout cela est avant de commencer ma diatribe standard sur les normes et pourquoi laisser quiconque peut implémenter la norme consommer vos cartes dans leur client sans codage supplémentaire de votre part ou de sa part est une bonne chose.

Ian Turton
la source
1
Geoserver est facile à installer et à mettre en œuvre - pourquoi réinventer la roue lorsque certains produits sont disponibles gratuitement. Un mot serait «contrôle» sur les données, la projection et la distribution via un navigateur Web
Mapperz
Comment qualifieriez-vous vos données autrement? (J'ai environ 30+ questions comme celle-ci que je peux vous poser)
Ragi Yaser Burhum
6

Cela dépend vraiment de ce que vous devez faire avec les données.

Par exemple, si vous avez seulement besoin d'afficher des points vectoriels au-dessus d'une carte de base, vous pouvez créer un script côté serveur très simple (en Python, .NET, PHP) pour publier des données spatiales à partir de votre base de données. La capacité de PostGIS à servir GeoJSON rend cela trivial.

Servir des fonctionnalités uniques en tant que KML et créer des boîtes englobantes peut également être plus facilement géré directement avec un script simple et une base de données. Les tilecaches prédéfinis permettent également (éventuellement) des logiciels côté serveur plus simples tels que TileStache .

MapServer ou GeoServer dans ces cas représenteraient un énorme surcoût pour peu d'avantages. Et il y a un énorme surcoût dans la configuration et la maintenance de l'une de ces applications et de leurs dépendances associées - en particulier si vous devez déployer sur un serveur partagé ou avoir un accès restreint.

Comme Ian le mentionne, l'utilisation du logiciel de serveur de carte présente de nombreux avantages. Le principal avantage est probablement les options cartographiques pour l'affichage dynamique des données. Les normes OGC, les projections, les requêtes d'attributs, les légendes, les métadonnées, la mise en cache, la sécurité, différents formats spatiaux, différents formats d'image, l'impression, etc. sont également disponibles.

geographika
la source
Êtes-vous en train de dire que vous pouvez écrire un serveur simple qui parle à Postgis (de manière sécurisée et sans bogue) plus rapidement que je ne peux le décompresser GeoServer le pointer sur Postgis? N'oubliez pas que GeoServer peut également servir GeoJSON.
Ian Turton
3
En supposant que vous avez ASP.NET ou un serveur Web Python configuré, puis ses ~ 10 lignes de code pour servir une fonctionnalité par ID (par exemple)
geographika
3

En utilisant un cadre comme Geomajas , vous pouvez également extraire directement les fonctionnalités de la base de données et envoyer les fonctionnalités au navigateur en utilisant SVG / VML pour le rendu / l'édition dans le navigateur. Il existe également un plugin de pixellisation qui permet de pixelliser le serveur.

Joachim Van der Auwera
la source