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

Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !

10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …

Faire un don 

Retrouver nos membres bienfaiteurs

#1 Wed 12 May 2004 09:36

Hakim CHERIGUI
Invité

Troncons et grilles

Bonjour a tous,

Je cherche a resoudre un petit probleme.

Je dispose d’une grille et d’une carte de troncons routiers (polylignes).

Je cherche a determiner la distance parcourue dans chaque maille de la grille au prorata de la longueur des troncons.

Pour information, je ne dispose pas de MAPBASIC et travaille sur la version 7 de MI.

Merci d’avance pour vos reponses.

 

#2 Wed 12 May 2004 16:46

Jacques Paris
Invité

Re: Troncons et grilles

Voici une procedure que j’ai utilisee recemment; elle requiere plusieurs
operations mais a l’avantage de laisser une trace concrete et reutilisable.

2 – Decoupage des elements lineaires

La table des elements lineaires (P_Routes) est rendue editable, selectionnee
en entier, et definie comme cible (Target ON)

La table cellulaire est selectionnee en entier.

La commande du menu Objects | Split est lancee et tous les segments de route
sont sectionnes a leurs intersections avec la grille.

Les bouts qui depassent la zone d’etude peuvent etre alors elimines et la
table (P_Routes) compactee

Il est souvent preferable que la table lineaire (P_Routes) contienne une
colonne « Long » (longueur du segment) qui faudrait alors mettre a jour. L’
avantage d’avoir une telle colonne est qu’elle est calculee une fois pour
toutes alors qu’il faudrait avoir recours a la fonction ObjectLen() pour
chaque essai de calcul de valeurs par la suite.

3 – Mise a jour de la table cellulaire

Pour assigner des valeurs a la table cellulaire, il faut proceder en deux
etapes. La premiere consiste a calculer les valeurs, l’autre a mettre la
carte cellulaire a jour.

Le calcul des valeurs implique le plus souvent des sommations car il est
plus que probable que certaines cellules peuvent contenir plus qu’un seul
element lineaire. Il faut donc avoir recours d’abord a une table temporaire
(T_temp) . La forme generale est

Énonce
Explications
SELECT

P_Cells.description
Identificateur unique des cellules dans la table cellulaire
SUM(P_Routes.Long)
Calcul des valeurs a partir des elements de la table lineaire
FROM P+Cells, P_Routes
les tables cellulaire et lineaire
WHERE

P_Routes.obj WITHIN P_Cells.obj
Operateur geographique de regroupement des elements par cellule
GROUP BY description
Regroupement sur l’identificateur unique de cellule
INTO T_Temp
Table temporaire qui sera eliminee par la suite

Par la suite, il suffit de mettre a jour la colonne voulue dans la table
cellulaire en faisant une jointure entre avec la table temporaire en
utilisant l’identificateur unique des cellules.

 

Pied de page des forums

Powered by FluxBB