#1 Mon 19 March 2012 10:48
- clara pinson
- Participant occasionnel
- Date d'inscription: 24 May 2007
- Messages: 25
[MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Bonjour à tous,
Je découvre Autocad Map depuis quelques mois maintenant et je rame en attendant une formation à cet outil.
Je gère une BD route avec MapGuide + Géomap + Autocad Map 3D 2010
Mes données sont dans une base oracle, ce sont des dwt, dwg, des shapes, des rasters.
Autant je maîtrise (a peu près) les logiciels SIG ArcGis, Mapinfo ... autant là, le domaine du dessin ça me dépasse un peu.
Et surtout toutes les fenêtres et les barres d'outils qui s'ouvrent dans tous les sens avec Autocad Map.
Ma question: je dois réaliser bientôt des cartes thématiques et faire de l'analyse multicritère (style: combien de pont de telle hauteur sur le canton de tartempion)
Est-ce qu'Autocad Map me permet de réaliser ce genre de requête? Est-il capable de me sortir une cartographie de ces requêtes?
j'espère avoir été claire. Je n'ai pas encore de recul sur cet outil et ses capacités, aussi je me tourne vers vous.
merci.
Hors ligne
#2 Mon 19 March 2012 12:04
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Bonjour Clara,
Il est tout à fait possible de te connecter à ta base Oracle depuis Autocad Map 3D via le bouton "Données" > "Connexion aux données" sur le volet de droite.
Tu rentres toutes les informations de connexion, puis tu verras apparaitre ta couche sélectionnée.
A partir de là, tu pourras réaliser une thématique sur ta couche (clic droit sur ta couche > gestionnaire de style (ou quelque chose comme ça ...))
N'hésites pas si besoin.
Geo-x
Hors ligne
#3 Mon 19 March 2012 13:49
- clara pinson
- Participant occasionnel
- Date d'inscription: 24 May 2007
- Messages: 25
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Merci de cette réponse.
En fait, arriver à me connecter aux données, ça c'est à peu près bon. Là, je viens de découvrir la fonction thématique sur une couche.
Mais est-ce qu'il est possible de faire une analyse sur plusieurs couches, croiser des infos d'une couche ouvrage d'art par ex et celle des communes? peut-on faire des jointures?
Hors ligne
#4 Tue 20 March 2012 18:06
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4794
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Hello
Realiser une jointure en FDO dans AutoCAD MAP (ou CIVIL), c possible mais malheureusement pas tres simple !
et surtout pas performant du tout au dela de qq milliers de records ...
Le plus efficace, c de faire une Vue dans Oracle qui croise/jointe tes donnees
et de presenter cette Vue au driver "FDO Oracle" de MAP ...
Attention aux contraintes lorsque tu offres une vue Oracle au driver FDO Oracle :
- MetaDonnees (MetaData) CORRECTES pour la Vue (en plus de celles de la Table Spatiale)
- Cle primaire speciale sur la vue en mode "disable novalidate" , ce qui signifie en SQL Plus :
alter view [viewname] add constraint [constraintname] primary key ([columnlist]) disable novalidate ;
Bien entendu, il y a un Index spatial CORRECT pour chaque champ Geometry de ta/tes table(s) spatiale(s)
GeoBye, Pat
(Autodesk Expert Elite Team)
Hors ligne
#5 Mon 30 July 2012 09:54
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Aloha,
Je relance le débat. Pourquoi malgré une jointure efficace et semble-t'il fonctionnelle, ne récupère - je aucune des valeurs attendues. Je m'explique : j'ai crée la jointure entre ma table spatiale et ma vue contenant mes informations à lier aux objets spatiaux, Autodesk crée bien les champs attendus, mais ils sont vides.
Merci,
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#6 Mon 30 July 2012 13:37
- olivier.eckmann
- Participant assidu
- Date d'inscription: 14 Dec 2007
- Messages: 357
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Bonjour,
la table doit avoir une clé primaire, sinon MAP ne récupère que le 1er enregistrement, toutes les autres valeurs sont à NULL
Olivier
Hors ligne
#7 Fri 28 September 2012 12:38
- eric.lazzaretti
- Participant occasionnel
- Date d'inscription: 16 Nov 2006
- Messages: 16
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Bonjour,
malgré les informations de cette discussion, je n'arrive pas à importer les données d'une vue Oracle grace à une requète spatiale (dans un rectangle par exemple) ! J'utilise Autocad Map 2012 (64 bits). Je suis presque sur d'y être arrivé sur Autocad Map 2010 mais n'y arrive plus non plus. La solution consistait bien à ajouter une entrée dans la vue USER_SDO_GEOM_METADATA. Je ne connaissait par contre pas "l'astuce" de l'alter view dont parle Patrice.
Avec une table, qui elle peut être indexée spatialement, ça marche, mais pas avec une vue qui est pourtant une simple requète sur la table où je ne prend que certaines données (pas de jointure avec d'autres tables, juste un Where). J'ai appliqué l'alter View, rien de mieux. Tout semble bien se passer mais la couche est vide ! J'essaie de voir si c'est pas un problème de système de projection car Oracle utilise le SRID 41017 pour le Lambert 3 Sud alors que Autocad utilise le code EPSG 27563. Mais ça ne doit pas être ça puisque ça fonctionne avec la table qui est exactement comme la vue concernant le SRID des géométries et de USER_SDO_GEOM_METADATA.
J'ai besoin de ces vues pour pouvoir publier mes données normalisées sous une forme plus "parlantes" pour mes utilisateurs Autocad.
Si vous avez d'autres pistes, je suis donc preneur....
Merci
Hors ligne
#8 Fri 28 September 2012 14:23
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4794
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Hello
Attention aux contraintes lorsque tu offres une vue Oracle au driver FDO Oracle :
- MetaDonnees (MetaData) CORRECTES pour la Vue (en plus de celles de la Table Spatiale)
- Cle primaire speciale sur la vue en mode "disable novalidate" , ce qui signifie en SQL Plus :
alter view [viewname] add constraint [constraintname] primary key ([columnlist]) disable novalidate ;
Bien entendu, il y a un Index spatial CORRECT pour chaque champ Geometry de ta/tes table(s) spatiale(s)
1) Peux tu deja afficher en FDO les donnees en provenance de la table spatiale ?
2) Si OK, alors tu peux creer une Vue (Requete) qui s'appuie sur certains champs de la Table (dont la GEOMETRY)
et le tout "croise" (Jointure) eventuellement avec d'autres donnees "classiques" provenant d'une autre table
si et seulement si les conditions evoquees sont presentes !? :
- Metadonnees pour la Vue (qui sont les memes en fait que celles de la Table)
- Le champ GEOMETRY
- alter view [viewname] add constraint [constraintname] primary key ([columnlist]) disable novalidate ;
3) Ta table dispose bien d'une primary key ?
GeoBye, Pat
(Autodesk Expert Elite Team)
Hors ligne
#9 Fri 28 September 2012 17:28
- eric.lazzaretti
- Participant occasionnel
- Date d'inscription: 16 Nov 2006
- Messages: 16
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Cool, une réponse super rapide...
1) Je n'ai pas de problème pour afficher et requéter spatialement les données de la table source en FDO. Elle a bien une cléf primaire et un index spatial. Cette table est la source de notre application MapGuide Entreprise 2010. C'est pourquoi ell est normalisée pour rendre les développement de l'application en .NET standard (utilisation de clefs secondaires).
2) Pour simplifier, j'ai fais une vue du type :
CREATE OR REPLACE VIEW TEST(ID,GEOM,TYPE_ID)
AS
SELECT ID,GEOM,TYPE_ID FROM TABLE WHERE TYPE_ID IN (1,2);
J'ai ajouté :
INSERT INTO USER_SDO_GEOM_METADATA
VALUES (
TEST,
'GEOM',
MDSYS.SDO_DIM_ARRAY(
MDSYS.SDO_DIM_ELEMENT('X',750000, 1033000, 0.001),
MDSYS.SDO_DIM_ELEMENT('Y', 70000, 330000, 0.001)),
41017;
J'ai mis le SRID à 41017 comme pour la table source mais j'ai essayé également NULL et 27563, à la fois dans USER_SDO_GEOM_METADATA et dans les SDO_GEOMETRY à la création de la vue. Sans succès.
Et à la lecture de ta réponse précédente, j'ai fait le :
alter view TEST add constraint TEST_PK primary key (ID) disable novalidate;
Et ça ne marche toujours pas... Ni dans la 2010, ni dans la 2012. Il charge la couche mais elle ne contient aucune données. J'ai fait les test sur la même données avec la table source, il y a des données dans la zone !
Si je ne fait pas de spatial, je n'ai aucun problème et toutes les données se chargent. Je peux également requéter sur des propriétés (TYPE_ID par exemple) sans problème.
Je précise que j'ai simplifié la vue pour le test. Le but de la vue et de remplacer les cléfs primaires par des libellés.
Comme je l'ai dis, je suis quasiment sur d'avoir réussi de requéter spatialement des vues avec Autocad Map 2010. C'est pourquoi je ne comprend pas...
Eric
Hors ligne
#10 Fri 28 September 2012 17:36
- eric.lazzaretti
- Participant occasionnel
- Date d'inscription: 16 Nov 2006
- Messages: 16
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Oups !
Code:
Je précise que j'ai simplifié la vue pour le test. Le but de la vue et de remplacer les cléfs [u][b]primaires [/b][/u]par des libellés.
Je voulais dire secondaire bien sur
Bon week-end...
Hors ligne
#11 Fri 28 September 2012 19:37
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4794
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Hello
*** Idee 1 (un peu "debile") ***
Et si tu enlevais le "WHERE TYPE_ID IN (1,2)" de ta Vue pour voir !?
Je sais : ta Vue devient en fait ta Table avec beaucoup moins de champs !
*** Idee 2 ***
Tu utilises quel client Oracle exactement en terme de version : 9.204 / 10G / 10G2 / 11G / 11G2 ?
GeoBye, Pat
(Autodesk Expert Elite Team)
Hors ligne
#12 Mon 01 October 2012 10:05
- eric.lazzaretti
- Participant occasionnel
- Date d'inscription: 16 Nov 2006
- Messages: 16
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Bonjour,
ta question sur la version du client Oracle m'a fait penser à quelque chose : j'ai changé recemment de PC. Pour répondre néanmoins, j'ai la version 11.2.0.1.0 (Windows 7 64bits). Me rappelant que j'avais réussi à faire des requètes spatiales sur des vues, j'ai essayé avec mon ancien PC que j'ai la chance d'avoir encore (Windows XP, 32 bits, client 10.2.0.1.0. Même résultat mais autre message (Spatial context Not found).
J'ai alors pensé à un problème de droits. J'utilisais avant un utilisateur perso (je suis administrateur de la base) qui avait pas mal de droits. Effectivement, si je fait la même vue sur le schéma de cet utilisateur, que je connecte avec cet utilisateur, je peux alors requéter spatialement cette vue dans Autocad. Si je fait la vue sur mon utilisateur READER(pour mes utilisateurs), même si je me connecte avec mon utilisateur perso, je n'y arrive pas ! Les metadonnées étant sur une vue utilsateur, je pense que le problème vient de la. As-tu une idée des droits qu'il faut que je rajoute à mon utilisateur READER ?
Encore merci pour ton aide...
Eric
Hors ligne
#13 Mon 01 October 2012 10:57
- eric.lazzaretti
- Participant occasionnel
- Date d'inscription: 16 Nov 2006
- Messages: 16
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
J'ai trouvé : j'ai ajouté le droit d'insertion sur toutes les tables à mon utilisateur (GRANT INSERT ANY TABLE TO READER;) et maintenant, ça fonctionne. je peux requéter spatialement mes vues. Je n'ai même pas besoin de faire le "alter view [viewname] add constraint [constraintname] primary key ([columnlist]) disable novalidate ; ".
Je ne comprend pas à quel moment il y a besoin de faire une insertion, ni dans quelle table mais en tout cas, ça marche !?!?
En espérant que ça aide certaines personnes;
Bon courage à tous et un grand merci à Pat.
Eric Lazzaretti
Hors ligne
#14 Mon 01 October 2012 11:38
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4794
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Hello
Ton User "READER" a t-il les droits CONNECT ET RESSOURCE ?
SVP tu essayes pour voir (depuis un User DBA) ...
et tu dis qu'un GRANT SELECT ANY TABLE n'est pas suffisant ?
depuis le User (Proprietaire des Tables et Vues) ...
GeoBye, Pat
(Autodesk Expert Elite Team)
Hors ligne
#15 Mon 01 October 2012 12:29
- eric.lazzaretti
- Participant occasionnel
- Date d'inscription: 16 Nov 2006
- Messages: 16
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Je suis allé trop vite et j'ai dit une bétise (pour parler poliment !). J'ai fait tellement de tests que je me suis trompé sur la résolution du problème. J'ai compris ce qui rendait non requétable spatialement ma vue : la SDO_TOLERANCE (concept que je n'ai jamais vraiment pris en compte depuis 7 ans que j'utilise Oracle Spatial !)
Voila le code initial de ma vue :
Code:
CREATE OR REPLACE VIEW READER.ADDUCTION_NODATA(TRONCON_ID,TRONCON_GEOMETRY,TRONCON_THEMAID) AS SELECT t.TRONCON_ID, REPRE.ROUND_COORDINATES(t.TRONCON_GEOMETRY,0.001), CASE WHEN TRONCON_THEMATIQUE1 IN (3001,3002,3003,30010,30020,30030) THEN TRONCON_THEMATIQUE1 WHEN TRONCON_THEMATIQUE1 IN (20,22,23,25,5012) THEN 1 ELSE 2 END as TRONCON_THEMAID FROM GEORE.TRONCON t WHERE TRONCON_THEMATIQUE1 in (3003,30030);
Remarque la "jolie" fonction REPRE.ROUND_COORDINATES qui arrondit les coordonnées à 3 chiffres après la virgule. Ne me demande pas pourquoi j'ai voulu faire ça... c'est plus joli d'avoir des chiffres significatifs surement !
Le résultat de cette fonction est par exemple :
Code:
MDSYS.SDO_GEOMETRY(2002,41017,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,2,1),MDSYS.SDO_ORDINATE_ARRAY(829095.387,138005.839,829095.38,138005.831))
à la place de :
Code:
MDSYS.SDO_GEOMETRY(2002,41017,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,2,1),MDSYS.SDO_ORDINATE_ARRAY(829095.387357897,138005.839418988,829095.380162187,138005.830861071))
Rien de fondamental mais c'est toute la différence entre une vue requétable spatialement ou non !
Si je fait :
Code:
CREATE OR REPLACE VIEW READER.ADDUCTION_NODATA(TRONCON_ID,TRONCON_GEOMETRY,TRONCON_THEMAID) AS SELECT t.TRONCON_ID, t.TRONCON_GEOMETRY, CASE WHEN TRONCON_THEMATIQUE1 IN (3001,3002,3003,30010,30020,30030) THEN TRONCON_THEMATIQUE1 WHEN TRONCON_THEMATIQUE1 IN (20,22,23,25,5012) THEN 1 ELSE 2 END as TRONCON_THEMAID FROM GEORE.TRONCON t WHERE TRONCON_THEMATIQUE1 in (3003,30030);
J'ai des résultats lors de ma sélection spatiale. J'essayé de jouer avec la tolerance dans le Metadonnées (USER_SDO_GEOM_METADATA) mais je n'arrive pas à obtenir des résultats par sélection spatiale dans Autocad si j'arrondis les coordonnées de mes géométries !?! Je vais donc arréter de les arrondir !
Je précise que le "GRANT INSERT ANY TABLE TO READER" n'avait effectivement rien avoir avec le problème. Dans mes tests précédents, je ne faisais pas d'arrondis de coordonnées !
Pardon d'être allé trop vite en besogne...
Merci encore
Hors ligne
#16 Mon 01 October 2012 12:44
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4794
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Hello
Perso, je fais "presque toujours" une Vue "ultra-simple" avec uniquement les champs qui m'interessent !
Car cela m'oblige a avoir les Meta-Donnees correctes et le "alter view" OK ...
Ensuite seulement je complexifie la Vue "pas a pas" (avec des Jointures et/ou fonctions spatiales)
et par moment, ca ne passe pas, donc je sais pourquoi ...
Le vieux Schnok de 55 ans, GeoBye, Pat
(Autodesk Expert Elite Team)
Hors ligne
#17 Mon 01 October 2012 13:44
- eric.lazzaretti
- Participant occasionnel
- Date d'inscription: 16 Nov 2006
- Messages: 16
Re: [MAP+FDO+Oracle] Requetes avec AutoCAD Map 3D 2010
Tu as raison, j'utilise moi aussi "presque" toujours aussi la même méthode...
A la prochaine...
Eric
Hors ligne