#1 Wed 09 July 2008 23:41
- tta
- Participant occasionnel
- Lieu: Montréal
- Date d'inscription: 4 Oct 2005
- Messages: 39
Requête SQL sous MapInfo
Bonjour,
J'ai un problèmeSQL à résoudre avec MapInfo. J'ai deux tables MapInfo : une table des dépots argileux et une table des troncçons de routes et on veut savoir la longueur totale des tronçons qui sont couverts par les polygones constitués par les dépôts argileux. J'ai créé un champ lenht dans la table Tronçon et calculer la longueur de chaque tronçon en km avec la fonction ObjLen.Mais je n'arrive pas à effectuer une requête qui me renvoie la longueur totale des tronçons qui sont couverts par les polygones de dépôts argileux.
Quelqu'un a-t-il un suggestion à me faire pour construire une requête qui me renvoie la longueur totale des tronçons qui sont couvert par les dépôt argileux???
Merci d'avance pour vos pistes ou suggestions
Hors ligne
#2 Thu 10 July 2008 09:42
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Requête SQL sous MapInfo
Bonjour
Un classique, déjà traité dans le forum et évoqué à l'avant dernière page de ce document, que l'on trouve désormais aussi sur Georezo
Hors ligne
#3 Thu 10 July 2008 09:59
- Maestro de la salsa
- Participant actif
- Date d'inscription: 7 Jun 2006
- Messages: 133
Re: Requête SQL sous MapInfo
Bonjour,
Trois choses:
1-Tes tronçons existants sont ceux couverts(entièrement) par un polygone de dépots argileux:
Select SUM(ObjectLen(obj,"km")) from table_tronçon.
2-Tes tronçons existants sont ceux couverts(entièrement) par un polygone de dépots argileux: ajouter une colonne et la remplir comme tu l'as fait (objectLen). Ensuite sélection, statistique, choisir la colonne ajoutée et tu as la somme.
3-Un troçon peut être couvert en partie par un polygone....dans ce cas je procède de deux façons: faire une copie de ma table tronçon, rendre modifiable la table troçon et la selectionner, objet definir cible, sélectionner la table des polygone, objet supprimer extérieur.
A partir de là tu as une table des tronçons couverts par les polygones. Avec la première ou la deuxième méthode sur cette table finale tu as la longueur totale.
Alain
Hors ligne
#4 Thu 10 July 2008 18:35
- tta
- Participant occasionnel
- Lieu: Montréal
- Date d'inscription: 4 Oct 2005
- Messages: 39
Re: Requête SQL sous MapInfo
Bonjour Maurice et Maestro,
Merci pour vos suggestions, j'ai résolu mon pbl. J'ai envisagé la solution de maestro, mais je la trouvais un peu long, en plus que mon réseau routier couvre la totalité de l'Île de Montréal (très dense, environ 50 000 tronçons), ce qui allait prendre bcp en terme de traitement (cpu). C'est la raison pour laquelle j'ai opté pour une solution SQL.
En tout cas, j'ai réussi à exécuter la requête à l'aide de l'exemple du document de Sébastien Roddier et de Jacques Paris et merci encore pour votre aide.
Cordialement
Hors ligne
#5 Sun 10 August 2008 09:28
- SRoddier
- Membre
- Date d'inscription: 19 Oct 2007
- Messages: 14
Re: Requête SQL sous MapInfo
Bonjour
Je suis heureux de voir que notre document à Jacques Paris et moi même continue de servir les intérêts de tous.
Je ne desespère pas avoir un jour le temps de l'améliorer.
Lorsque j'avais écrit ce document (à l'époque) celui çi s'inscrivait dans un processus plus large de constitution d'une bibliothèque de fonctions utilisables soit en mode commande dans une fenêtre soit via une boite de dialogue via à un mbx développé pour l'occasion.
Par exemple : une fonction adjacence (in-table; adj-table;out-table) qui ferait appel à la sélection SQL correspondante.
A l'époque j'avais commencer à travailler sur plusieurs bibliothèques de fonctions :
- raster : manipulation d'images (on trouve des DLL partout maintenant permettant de la faire sous MI)
- grille : manipulation de grille -j'avais été en contat avec l'auteur de grid à la toute première version de Grid Analyser
- vecteur : manipulation des tables MI via SQL ou autre
En résumé, beaucoup de choses inachevées mais qui mériterait d'être reprise et surtout partagées (c'était mon but à l'époque).
Cdt
Hors ligne