banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Sat 04 April 2015 11:52

gwen1436
Participant occasionnel
Lieu: châteauroux
Date d'inscription: 21 Apr 2014
Messages: 17

représentation de mapfile en carte dynamique via html

Bonjour,

Je voudrais savoir si il est possible de superposer une couche provenant directement d'un BD oracle, intégrer dans un html avec un flux wms et de rendre le tout dynamique cad que je veux pouvoir zoomer et me déplacer sur ma carte pour voir ou sont exactement mes objets. En sachant que cette couche est une sélection.
Je m'explique avec un exemple, g une couche bati sur tout un département on me demande les bâtis de moins de 10m par exemple et de l'intégrer dans un outil indépendant d'un SIG, un outil fait avec du html, java et php. Mais le problème c que map server interroge mon mapfile, me renvoie une image, jusque là tout va bien, mais l'image est sur tout un département et reste figé dans c'est inutilisable au niveau opérationnel, il faut qu'il puisse repérer ou sont ces bâtiments et voir les accès.

Je voulais savoir si ct possible d'intégrer la notion de carte interactive, cad zoomer et se déplacer dans cette configuration ci.

Le html pour afficher le mapfile est fait la requête aussi, elle fonctionne la connexion a la base également mais tout ceci ne servira a rien si on est incapable de visualiser de près ces bâtiments car la différence de taille entre un petit bâtiment et le département est notable à ce niveau.

Merci par avance.

Hors ligne

 

#2 Tue 07 April 2015 09:07

Dof
Participant assidu
Lieu: Grenoble
Date d'inscription: 28 Oct 2009
Messages: 317
Site web

Re: représentation de mapfile en carte dynamique via html

Bonjour,
Vous avez votre couche WMS?
Il suffit donc d'utiliser Leaflet ou Openlayer par exemple pour intégrer ce WMS à une carte dynamique.

http://leafletjs.com/reference.html#tilelayer-wms

Hors ligne

 

#3 Tue 07 April 2015 11:06

gwen1436
Participant occasionnel
Lieu: châteauroux
Date d'inscription: 21 Apr 2014
Messages: 17

Re: représentation de mapfile en carte dynamique via html

Non je n'ai pas encore intégré un fond wms j'y travail.

Merci du tuyau et merci pour ce lien qui me serra fort utile. J'ai parcourue la page web ce matin en diagonale mais je pense y trouver mon bonheur.
Déjà de voir que personne ne m'a dit encre "NON ce n'ai pas possible de faire ça !!!!" j'ai déjà gagné ma journée ^^.

Hors ligne

 

#4 Wed 08 April 2015 08:49

gwen1436
Participant occasionnel
Lieu: châteauroux
Date d'inscription: 21 Apr 2014
Messages: 17

Re: représentation de mapfile en carte dynamique via html

Bonjour,

Ok alors vu les recherches biblios que j'ai fait sur le sujet, apparemment il faudrait transformer ces couches mapfile, donc les vectors en WFS via quelques manips sur le mapfile il faut ajouter un bloc de métadonnée (détaillé sur d'autre forum). Puis intégrer une fonction javascript dans le html qui "appel" ces couches.
Je me souviens d'un exercice de mise en ligne pendant ma licence pro ou il fallait créer une carte dynamique via Qgis.
Donc je pense qu'on peut se baser sur l'extension OGR2 de Qgis qui créer un index.html ou il créer une carte dynamique mais attention il ne faut pas intégrer cet index tel que, car dans cette index la fonction java appel le gml, geoJson ou kml du shape sur lequel on a lancé l'extension. J'ai donc eu l'idée de "bidouillé" un peu ce script pour l'intégrer à mon html, j'ai laissé les couches WMS comme elles étaient je n'y ai pas touché. Du coup l'extent est basé sur mes shapes, il faut juste le mettre en projection 900913 ou 3847 c'est les même a quelques chose prés.

Mais lors de définition de variable sur mes shape à intégrer a ma couche de fond, c'est là que j'appel mes "nouveaux" wfs que j'ai modifié au préalable dans mon map file et je demande à java d'aller les chercher dans ce mapfile.
Bon c'est un peu compliqué à expliquer comme ça mais du coup les fonctions map.control les plus importantes sont intégrées dans ce script.
Alors je ne peux toujours pas tester tout ce que je vous dis car rien n'est installé sur mon poste (pas de map server) et les couches wms sont dans le package mapserver donc il ne m'affiche rien pour l'instant. Mais je vais tester cette idée et je posterais les codes si ça marche pour d'autres qui auraient les mêmes interrogations.

To be continued...

Dernière modification par gwen1436 (Wed 08 April 2015 08:53)

Hors ligne

 

#5 Wed 08 April 2015 09:17

Dof
Participant assidu
Lieu: Grenoble
Date d'inscription: 28 Oct 2009
Messages: 317
Site web

Re: représentation de mapfile en carte dynamique via html

Bonjour,
Combien avez vous d'objets à afficher?
Sinon, une solution consiste à appeler directement vos données  (stocké dans votre BDD) depuis le client en format Geojson ou WKT par exemple, avant de les afficher sur le client avec leaflet par exemple.

Exemple avec une base MYSQL et php coté serveur:
http://dogeo.fr/afficher-des-geometries … r-leaflet/

Cela permet de se passer de serveur carto et rend la carte plus réactif côté interaction.

Si vous avez beaucoup d'objet, vous pouvez jouer sur les seuils de zoom pour l'affichage et ne requeter que les objets compris dans l'emprise de votre carte. Exemple un peu différent, mais l'idée est là.
http://dogeo.fr/afficher-des-polygones- … r-leaflet/

Sans transition, il me semble que la projection 900913 et 3847 sont strictement identiques. La première étant le nom donné par GOOGLE ( ou 900913 si on veut l'écrire avec des chiffres...), la seconde est l'EPSG officiel il me semble.

Hors ligne

 

#6 Wed 08 April 2015 10:55

gwen1436
Participant occasionnel
Lieu: châteauroux
Date d'inscription: 21 Apr 2014
Messages: 17

Re: représentation de mapfile en carte dynamique via html

Alors, je viens de regarder mon dbf, et pour vous donner une idée je dois afficher tout les bâtiments sur un département et j'ai plusieurs couches avec les bati de moins de 8 m, les bati de 8 a 18m, etc.
En gros ma  couche bati complète a environ 90 000 objets.
Mais le principe d'appeler mes données est là, puisque c'est mon mapfile qui fait la connexion. En faite java va aller chercher mes couches WFS qui sont dans mon mapfile lui même connecté a ma base ORACLE.

Je regarderais vos liens plus en détail, la je ne vais pas pouvoir aujourd'hui, mais j'ai aperçu du php et je connais pas ce type de progra. Je fais de la progra de type "charognard"^^ cad que je prend les codes et je les adaptent mais je suis pas programmeur, je n'ai pas les bases mais j'essaie de m'y mettre car je vois toute les applications possibles au niveau carto et mise en ligne de données.
En faite si j'ai bien compris le php créer et remplit un fichier .geoJson selon la requête et l'affiche sur un osm et google, si vous connaissez bien ce système fonction t-il avec une base oracle? Si c'est le cas c'est une super idée, malgré le fait que je parle pas php mais c'est bcp mieux que ce que j'avais prévu au départ, rien que le fait de pouvoir faire des requêtes par menu déroulant, j'y avais pensé mais je sais pas le faire avec du HTML.
La programmation en "dur" html étant plus compliquer si il y a des modifications a faire plus tard, l'outil que je suis en train de créer ne va pas rester figé, il sera toujours en mouvement selon les besoins. Enfin bref, on s'écarte du sujet...
Juste une question du coup map server est donc remplacer par AJAX? La aussi j'ai des lacunes je ne connait pas AJAX via Jquery, je ne sais pas comment il fonctionne, je ne connais que mapserver et je ne l'ai pas beaucoup utilisé jusqu'à aujourd'hui.
Je ne sais pas si je vais pouvoir l'adapter mais c'est une vision à laquelle je n'avais pas penser car je connait mal le format geoJson.
Bilan des courses: j'ai beaucoup de travail...
Je vais étudier cette piste en plus j'ai vu un tutoriel sur interactive choropleth map, je n'avais pas très bien saisie votre premier lien sur ce site mais je commence a comprendre pour leaflet.
Vous connaissez bien cette fonction java? vous l'avez déjà utilisé?

(Dans tout les cas merci pour l'info.)

Hors ligne

 

#7 Wed 08 April 2015 11:46

Dof
Participant assidu
Lieu: Grenoble
Date d'inscription: 28 Oct 2009
Messages: 317
Site web

Re: représentation de mapfile en carte dynamique via html

Plusieurs approches sont possible.

Mapserver et autres serveurs cartographiques "calcule" les données après avoir reçu une requête du client. Par exemple, en WMS le client dit: "je veut ma carte sur cette emprise". Le serveur lui répond "Ok, je la génère et je te la renvoie en format image". Cette image, on peut ensuite l'afficher telle quelle dans un client carto Web (ou même un SIG lourd hein). A chaque zoom, ça recommence. Donc c'est le serveur qui se charge des calcule (représentation, etc). Pour le WFS, c'est le même principe, mais il renvoi du vecteur.

Pour se passer de serveur carto, on peut demander au client de faire les calcules. Le principe est de lui fournir la données et accessoirement sont style. La géométrie doit pouvoir être lue par le client. Sur Leaflet, il y a par exemple Omnivore qui permet de convertir rapidement les formats en Leaflet. On peut appeler ces données en Ajax, ou les charger en même temps que la carte. Pour vos 90 000 objets, impossible de tout télécharger à la fois, ou du moins de tout afficher, le navigateur va mourir avant.
Le langage serveur (PHP ou JAVA) ne fait pas grand chose à part de faire dialoguer le client et la base de données.

Oracle comme tous les autres SGBD un peu spatiaux, permet de générer du WKT à partir de la géométrie.
http://docs.oracle.com/cd/B19306_01/app … m#BJEGGIAB

La question que vous devez vous poser: Faut il de l'interactivité avec les objets? (je clique, ça m'affiche une info bulle, etc). Vos données vont elles bougés constamment? Quelles ressources avez vous?

Si c'est juste de l'affichage "statique" mais zoomable, un WMS fera l'affaire. Si les données ne vont pas bougées, vous pouvez même vous passer de serveur carto en pré-calculant vos données sous forme de dalle (gdal ou meme en mbtiles).
Si ca doit être interactif, il faudra utiliser du WFS ou WMS. Mais vous pouvez aussi faire : Mbtiles jusqu'a un certain zoom, puis du vecteur directement en provenance de la bdd.
Bref, ce ne sont pas les solutions qui manquent, il faut juste définir vos besoins et vos ressources.

Dernière modification par Dof (Wed 08 April 2015 11:46)

Hors ligne

 

#8 Wed 22 April 2015 09:29

gwen1436
Participant occasionnel
Lieu: châteauroux
Date d'inscription: 21 Apr 2014
Messages: 17

Re: représentation de mapfile en carte dynamique via html

Merci et désolé de ne répondre que maintenant.

Bon les priorités ont quelque peu changé et du coup cet outil est passé au rang de optionnel pour l'instant mais je garde votre idée en tête je pense l'utiliser un jour mais tout de suite je n'ai plus malheureusement le temps de me pencher sur la question après des problèmes de configuration, encodage, de transfert et j'en passe, le projet à été complètement bouleversé.
Merci encore pour m'avoir consacré du temps bonne continuation.

Hors ligne

 

Pied de page des forums

Powered by FluxBB