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é ?

#1 Tue 24 June 2003 15:20

Ggabriel
Invité

Association d'une table point et d'une table ligne

Bonjour a vous tous
Merci pour les deux reponses a mon questionnement precedent portant sur la creation d'un point commun sur deux surfaces contigues. J'avais deja utilise les methodes citees (Mode fusion et synchronisation des noeuds)sans resultat.
J'ai une autre question pour vous tous. Je travaille a l'heure actuelle sur un reseau d'eau potable pour une commune de la Reunion. La saisie des noeuds de jonction et des troncons a ete faite sur StarCarto et l'information comprise dans une table Access a ete liee aux objets graphiques sous StarGis (uniquement les noeuds de jonction).

Pour travailler plus vite, j'ai traduit le fichier StarGis et la BD au format MIF/MID. Mes noeuds de jonction sont donc informes sous MI 7.0. J'aimerai incrementer ma base de donnees sur mes troncons en lancant une requete pour que MI determine les noeuds debutant et terminant chacun des troncons.

Cela est-il possible et si oui par quel moyen? Je tiens a signaler que je ne possede malheureusement pas MapBasic.

Merci a vous tous

Gerald GABRIEL
Responsable SIG
IDEM'S Cartographie

 

#2 Wed 25 June 2003 08:57

Pascal Geraut
Invité

Re: Association d'une table point et d'une table ligne

Bonjour
sans mapbasic on peut faire beaucoup de choses !
sans etre le plus simple, voici une solution avec 1 mise a jour colonne et 2
requetes SQL :
soit une table de noeuds POINT et la table des segments POLY (composes d'un
seul objet)
chaque POLY peut avoir X sommets et eventuellement le premier correspondant
a un POINT et le dernier a un autre POINT
Si c'est le cas je veux recuperer l'attribut NOM de la table POINT pour
affecter a la table POLY
c'est bien ca le probleme ?

Etape 1
connaitre le nombre de noeuds des polylignes ( a priori 2 mais on ne sait
jamais)
- mettre a jour colonne NOEUDS (exemple qui doit exister) de POLY avec :
objectinfo(obj,20) : ce sera utilise dans la seconde requete SQL pour le
noeud finissant de la polyligne.

Etape 2
recuperer dans une table issue de requete SQL l'info NOM de POINT pour le
debut de POLY
select POINT.NOM, ID.POLY from POLY, POINT where
poly.obj Intersects point.obj and (objectnodex(poly.obj,1,1) =
centroidx(point.obj) and objectnodey(poly.obj,1,1) = centroidy(point.obj))
into ...

ainsi on a recupere une info de POINT et on l'a affecte a POLY
Etape 3
recuperer l'info NOM de POINT pour le noeud finissant :
select POINT.NOM, ID.POLY from POLY, POINT where
poly.obj Intersects point.obj and (objectnodex(poly.obj,1,poly.noeuds) =
centroidx(point.obj) and objectnodey(poly.obj,1,poly.noeuds) =
centroidy(point.obj)) into ...

Ca fonctionne pour des polylignes avec ou sans noeud debut ou fin

Cordialement

Pascal GERAUT
DIOG - ITS
CETE de l'Ouest

 

Pied de page des forums

Powered by FluxBB