Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

GEODATA DAYS 2024

#1 Fri 08 February 2008 14:51

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

SQL avec lien géographique

Bonjour

Mapinfo 9.0.2.  Je dispose d'une couche de polygones et d'une couche ponctuelle.  La couche de polygone représente la surface que couvre une orthophoto tandis que la couche ponctuel représente le (pseudo) centroide de l'orthophoto.  Je dis pseudo car le centroide de mes polygones n'est pas toujours directement au même endroit que la couche ponctuelle.
Ma couche de polygone a été fait à partir d'un petit logiciel qui extrait les quatres coins que l'on retrouve dans le fichier TAB de l'orthophoto pour créer un fichier texte délimité.  Par la suite, on relie les quatres coins pour former les polygones.  Dans la couche ponctuelle, on y retrouve la base de données des orthophotos (nom, date de prise de photos, etc...).  Je cherche à transférer l'information de la couche ponctuelle à la couche de polygone.  Jusqu'à présent, il n'y a pas de problème car je peux utiliser la fonction à l'intérieur de pour faire le lien entre les deux table.  Par contre, il n'y a pas régularité dans la prise de photo.  Donc, il est possible que je retrouve plus d'un centroide dans un polygone.  Comment je peux faire pour assigner la base de données de mon fichier ponctuel à celui des polygones?  Je crois que le centroide est la clef!!!

Voir fichier joint.  Carré bleu = zone couverte par l'ortho, petit carré bleu = centroide du carré et point rouge = table ponctuel.

Merci

Daniel


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

De retour à la géomatique

Hors ligne

 

#2 Fri 08 February 2008 23:53

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: SQL avec lien géographique

Bonjour
La distance entre centroïde bleu et ponctuel rouge est toujours assez réduite
On peut donc utiliser la distance entre ces deux entités en questionnant les deux tables (poly_ortho et points_bd) et en utilisant comme critère dans la clause where:

distance(centroiX(poly_ortho.obj),centroidY(poly_ortho.obj),centroiX(points_bd.obj),centroidY(points_bd.obj),"m")<100


si on prend 100 m comme distance limite.
nb: taper dans la fenêtre MapBasic Set CoordSys Table poly_ortho (puis 'enter' sur la ligne) pour forcer les calculs dans la projection de poly_ortho

Hors ligne

 

#3 Mon 11 February 2008 19:13

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: SQL avec lien géographique

Salut

Merci Maurice.  Je vais essayer cette fonction mais je ne suis pas certain de bien comprendre qand appliquer cette dernière.

Daniel


De retour à la géomatique

Hors ligne

 

#4 Mon 11 February 2008 20:37

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: SQL avec lien géographique

Et pour cause: ma réponse est loin d'être explicite...elle est même fausse puisqu'on ne peut pas utiliser cette expression dans une mise à jour !!
La solution risque d'être plus laborieuse:
- numéroter les rectangles (par rowid) s'ils n'ont pas déjà d'identifiant unique
- sur une copie de la table rectangle, transformer ceux-ci en cercles de 100 m de rayon (par exemple) par
update copie_table set obj=createcircle(centroidX(obj),centroidY(obj),100)
précédé comme évoqué par un set coordsys table copie_table et set distance units "m" dans la FMB
- mettre à jour les attributs des cercles par ceux des ponctuels rouges: là on peut utiliser le critère "within"... (on peut aussi faire une requête entre ces deux tables: le résultat joindra toutes les colonnes d'un coup)
- finir par une jointure entre la table originale de rectangles ma_table et la table de cercles copie_table sur le critère de l'égalité de numéro (ou d'identifiant unique)
Il y a peut être plus élégant mais ...il est tard smile

Hors ligne

 

#5 Wed 13 February 2008 02:00

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: SQL avec lien géographique

Bonjour

Merci Maurice.  J'avais trouvé une solution semblable à la vôtre (la dernière!). 
J'ai, en premier lieu, essayé de trouver la distance la plus grande entre le centroide des polygones et le centre des photos.  J'ai trouvé jusqu'à plus de 500 m.  J'ai donc changé de méthode.
J'ai donné un ID unique à mes carrés, et par la suite, en faisant une copie des centres de photos et ajoutant une colonne ID vide, j'ai attribué le ID de mes carrés à celui des centre de photos en utilisant une relation géographique (à l'intérieur de...).  Je me suis retrouvé avec les erreurs dont je parlais dans le premier post mais il n'y en avait qu'une quinzaine sur 455.  Pas mal mais cette étape et la plus petite car je dois faire la même chose mais pour 1300 données.  Je vais essayer d'utiliser votre méthode.
En passant, on retrouve dans le fichier .TAB d'une image, les quatres coins de l'image en question.  Est-il possible ou existe-t-il une façon plus rapide de créer le carré vecteur de ces quatres coins?  Ma méthode est facile et simple mais longue si on a plusieurs polygones!!!

Merci

Daniel


De retour à la géomatique

Hors ligne

 

#6 Wed 13 February 2008 11:54

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: SQL avec lien géographique

Daniel a écrit:

...Est-il possible ou existe-t-il une façon plus rapide de créer le carré vecteur de ces quatres coins?  ...l


Le plus simple:
- utiliser cet outil pour créer la couche logique des images
- copier cette couche logique et dans le TAB de cette copie passer IsSeamless à FALSE
- renommer cette table qui est le tableau d'assemblage vectoriel  "propre" des images
ps: vous pouvez même munir ce tableau d'un hotlink pour que le clic sur un rectangle ouvre l'image correspondante ... smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB