Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#1 Fri 07 March 2008 18:03

Laurent Vaïsse
Participant occasionnel
Lieu: Guatemala Ciudad
Date d'inscription: 26 Jun 2006
Messages: 22

Table d´attributs Oracle dans Mapserver/Cartoweb 3.4

Bonjour,

  Dans mon application Cartoweb, je consulte une table oracle (10g) avec sa géométrie sans aucun problème.  Maintenant, je souhaite joindre aux résultats de mes queries une autre table de données attributaires qui contient un champ commun "CCC".

J´ai bien essayé de faire ca avec un JOIN dans mon MapFile, mais il me semble que ce n´est pas possible, ou alors j´ai pas réussi... ?
Nous avons donc crée une vue [C] dans oracle qui join la table avec géometrie [A] et la table associée de données attributaires [b], mais le champ commun "CCC" se trouve être répété dans la table d´attributs [b] (ce n´est pas un id unique).
Lorsque nous créons la vue [C], il arrive donc que la même géometrie se trouve dédoublé ou triplé, avec des attributs differents... :-(   De fait, Mapserver n´arrive pas a interpreter correctement les queries et me sert deux ou trois fois le même resutat pour cette vue lorsque les géometries sont dupliquées.
je sais pas si je suis bien clair..?  je recapitule..

Mes questions sont donc:

1- Peut on faire le JOIN d´une table d´attributs Oracle dans le *.map?
2- Mapserver accepte-t-il de servir des attributs sans géometrie?
3- Devons nous creer un nouveau ID unique pour cette vue?

Quelqu´un pourrait il m´aiguiller sur ce sujet?  Merci beaucoup

Laurent

Hors ligne

 

#2 Mon 17 March 2008 17:11

Laurent Vaïsse
Participant occasionnel
Lieu: Guatemala Ciudad
Date d'inscription: 26 Jun 2006
Messages: 22

Re: Table d´attributs Oracle dans Mapserver/Cartoweb 3.4

Bonjour,

Pour le suivit, je poste la solution que nous avons adopté.

Lors de requêtes de type géographique, nous souhaitions joindre aux résultats des attributs d´une ou plusieurs tables associées sans géométries. Ne pouvant pas utiliser le JOIN dans le mapfile et ne pouvant servir des tables attributaires sans géométrie avec Mapserver, nous avons opté pour le développement d´une petite application à part, que nous avons intégré dans un iframe au sein du "tables.tpl" de cartoweb  (résultats des requêtes). Voir image jointe.

Cartoweb et Mapserver ne servent donc plus qu´une seule variable associée à la géométrie, en l´occurence le champ CCC, qui maintenant sert de lien pour appeler une requête dans la base de donnée. Cette requête nous renvoie les résultats issues de tables sans géométrie dans l´iframe au dessous.

- plus besoin de faire de JOIN pour servir certaines infos, on évite de multiplier les vues dans Oracle, les couches d´informations dans le Mapfile, et les problèmes de multiplication des mêmes géométrie.

- Lorsque je clique sur une parcelle, l´appli me retourne bien les deux fincas qui sont associées à cette parcelle et pas seulement une seule en fonction de l´endroit ou j´ai cliqué (au dessus ou au dessous de la limite Jaune).

Laurent


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#3 Mon 17 March 2008 17:55

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Table d´attributs Oracle dans Mapserver/Cartoweb 3.4

Bonjour,

Je n'avais pas vu votre message avant le deuxième, mais ne pouviez vous pas utiliser un jointure directement dans le champ DATA :
DATA the_geom FROM (SELECT the_geom FROM XX INNER JOIN YYY USGIN (CCC) WHER param=valeur)

Ou bien lors de la création de votre vue, vous pouviez certainement éviter d'avoir des lignes "dupliquées" en utilisant judicieuement votre type de jointure (un inner joiun, left join ou un outer join).

M'enfin vous avez réussit à arriver à vos fins wink

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#4 Mon 17 March 2008 19:40

Laurent Vaïsse
Participant occasionnel
Lieu: Guatemala Ciudad
Date d'inscription: 26 Jun 2006
Messages: 22

Re: Table d´attributs Oracle dans Mapserver/Cartoweb 3.4

Oui, nous avons bien essayé de créer des vues avec ces types de jointures mais en vain... on a du se louper quelque part.
Au final la solution que nous avons trouvé répond mieux à nos besoins, les résultats sont plus lisibles et lorsqu´une liste de CCC apparait, l´utilisateur selectionne juste l´id dont il a besoin pour visualiser les données attributaires associées. C´est aussi plus rapide.

Merci qd même pour votre réponse.

Laurent

Hors ligne

 

Pied de page des forums

Powered by FluxBB