Pages: 1
- Sujet précédent - calcul de surface de recouvrement d'une couche par une autre - Sujet suivant
#1 Fri 07 May 2010 09:22
- ally35
- Participant occasionnel
- Date d'inscription: 29 Apr 2010
- Messages: 19
calcul de surface de recouvrement d'une couche par une autre
Bonjour,
J'ai deux tables composés chacune de plusieurs polygones et je voudrais dans une des 2 tables faire apparaitre pour chaque polygone la surface qui est recouverte par les polygones de l'autre table.
Je ne vois pas comment faire, pouvez vous m'aider?
Merci
Alison
Hors ligne
#2 Fri 07 May 2010 09:26
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: calcul de surface de recouvrement d'une couche par une autre
Salut,
Dans une requète SQL --> "AreaOverlap"
Code:
Select AreaOverlap(Table1.obj, Table2.obj) from Table1, Table2 where Table1.obj intersects Table2.obj into Resultat
A+
Joël
Dernière modification par Spacejo (Fri 07 May 2010 09:29)
Hors ligne
#3 Fri 07 May 2010 09:34
- ally35
- Participant occasionnel
- Date d'inscription: 29 Apr 2010
- Messages: 19
Re: calcul de surface de recouvrement d'une couche par une autre
Ok sa marche sauf que après j'aimerais intégrer dans la table la surface représenté par ces polygones.
Alison
Hors ligne
#4 Fri 07 May 2010 09:43
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: calcul de surface de recouvrement d'une couche par une autre
Dans la clause "select" tu peux choisir ce que tu désires voir afficher dans la table "Resultat".
Hors ligne
#5 Fri 07 May 2010 10:05
- ally35
- Participant occasionnel
- Date d'inscription: 29 Apr 2010
- Messages: 19
Re: calcul de surface de recouvrement d'une couche par une autre
ok
dans la fenêtre mapbasic j'ai inscrit ce code:
Code:
Select Sans_nom.id, Sans_nom2.id, CartesianArea(overlap(Sans_nom.obj, Sans_nom2.obj), "hectare") from Sans_nom, Sans_nom2 where Sans_nom.Obj Intersects Sans_nom2.Obj into Selection Browse * From Selection
Il a l'air de marcher mais après je voudrais intégrer le champs nouvellement créé dans ma table "sans_nom2", et la je bloque.
Alison
Hors ligne
#6 Fri 07 May 2010 10:32
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: calcul de surface de recouvrement d'une couche par une autre
Essaye voir ceci:
Code:
INSERT INTO Sans_Nom2 (liste_colonnes) SELECT liste_colonnes FROM Selection
A+
Joël
Hors ligne
#7 Fri 07 May 2010 11:34
- ally35
- Participant occasionnel
- Date d'inscription: 29 Apr 2010
- Messages: 19
Re: calcul de surface de recouvrement d'une couche par une autre
A vrai dire je bloque! dur dur un vendredi en plus!
J'apporte quelques précisions:
Ma 1ere table "parcelle" se compose des champs suivants:
-Id
-surface_totale
Ma 2e table "ruissellement" se compose des champs suivants:
-Id
-surface
-type-bordure
-protection
Je veux simplement que dans ma table "parcelle" apparaisse le champs "surface" de la table "ruissellement". Sa m'a lair assez simple à faire mais je crois que je me complique.
Je précise que les ID sont deux Id différents.
Alison
Hors ligne
#8 Fri 07 May 2010 11:42
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: calcul de surface de recouvrement d'une couche par une autre
Les objets de ta table ruissellement intersectent la table parcelle mais existe t'il des parcelles non intersectées par des ruissellements et plusieurs ruissellements intersectant une seule parcelle.
Là est le problème car lors de la jointure spatiale dans la table "Resultat" ou "Selection" comme elle est indiquée aprés le into, les enregistrements non intersectés ne seront pas pris en compte.
Je ne sais pas si je suis clair là?
Dernière modification par Spacejo (Fri 07 May 2010 12:05)
Hors ligne
#9 Fri 07 May 2010 11:58
- ally35
- Participant occasionnel
- Date d'inscription: 29 Apr 2010
- Messages: 19
Re: calcul de surface de recouvrement d'une couche par une autre
Voila exactement le soucis que j'ai repéré!!
La table parcelle n'est pas forcément intersecté par la table ruissellement.
Hors ligne
#10 Fri 07 May 2010 12:28
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: calcul de surface de recouvrement d'une couche par une autre
Peut être en travaillant en boucle, je m'explique:
Si tu traites les parcelles une à une celà peut marcher: si parcelle non intersectée alors champs surface --> nulle
Par contre existe t'il des parcelles intersectées par plus d'un ruissellement
Hors ligne
#11 Fri 07 May 2010 12:34
- ally35
- Participant occasionnel
- Date d'inscription: 29 Apr 2010
- Messages: 19
Re: calcul de surface de recouvrement d'une couche par une autre
Non une parcelle n'est intersecté que par un ruissellement, pour une parcelle on n'a qu'une seule surface de ruissellement.
Je vois bien ce que tu veux faire mais comment on peut affecter une valeur zero au champs non intersecté?
Hors ligne
#12 Fri 07 May 2010 12:37
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: calcul de surface de recouvrement d'une couche par une autre
Peut être avec un nombre ridicule comme 0.0000001
Hors ligne
#13 Mon 10 May 2010 10:29
- ally35
- Participant occasionnel
- Date d'inscription: 29 Apr 2010
- Messages: 19
Re: calcul de surface de recouvrement d'une couche par une autre
Bonjour,
Il y a juste un petit truc que je ne comprend pas quand tu dis de tourner en boucle et de traiter les parcelles une à une?
Peut-tu m'expliquer ta façon de faire?
Merci
Alison
Hors ligne
#14 Mon 10 May 2010 10:39
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: calcul de surface de recouvrement d'une couche par une autre
Salut,
Le raisonnement est le suivant:
La FMB permets de traiter une parcelle grâce à une requète, si on génére autant de requète que de parcelle --> le problème est résolu.
Pour ceci il faut utiliser un générateur de script qui va te créer toutes les requètes pour chaque parcelle.
Lorsque tu as toutes ces requètes --> tu les colles dans la FMB et elle va traiter les unes aprés les autres toutes tes parcelles.
Sinon il y a aussi la possibilité de créer un programme en Mapbasic.
Voilà un exemple récent de résolution de problème avec l'utilisation de ce petit éxécutable.
---> http://georezo.net/forum/viewtopic.php?id=66735
A+
Joël
Dernière modification par Spacejo (Mon 10 May 2010 10:42)
Hors ligne
#15 Mon 10 May 2010 10:43
- ally35
- Participant occasionnel
- Date d'inscription: 29 Apr 2010
- Messages: 19
Re: calcul de surface de recouvrement d'une couche par une autre
Olala peut-tu m'éclairer un peu sur ce qu'est un générateur de script?
Il faut que j'écrive dans la FMB toutes les lignes de code pour chaque parcelle?
Alison
Hors ligne
#16 Mon 10 May 2010 10:46
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: calcul de surface de recouvrement d'une couche par une autre
As tu regardé l'exemple que j'ai cité?
Dans ce post il y a un lien oû on peut télécharger le "scriptgen".
Il faut aussi regarder dans l'aide de ce log --> il y a des exemples.
Hors ligne
Pages: 1
- Sujet précédent - calcul de surface de recouvrement d'une couche par une autre - Sujet suivant