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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 06 March 2008 12:44

Nelly Lis
Participant occasionnel
Date d'inscription: 13 Nov 2006
Messages: 33

Requête spatiale : identifier parcelles non bâties

Bonjour,

Je travaille avec MapINfo 8.5. Ma question est la suivante : je veux selectionner les parcelles bâties. Je fais donc une requête SQL entre mes tables "parcelle" et "bâti" mais :
- si j'utilise "bati within parcelle" ça prend en compte le centroïde du bati et donc ça selectionne des parcelles qui ne comporte pas le centroide du bati mais qui sont quand même couverte par ce bati
-si j'utilise "parcelle contains bâti", c'est la même chose
-si j'utilise l'opérateur "intersect" alors certaines parcelles sont sélectionnées alors qu'elle ne le devraient pas car le bâti dépasse légèrement de sa "vraie" parcelle d'appartenance.

Y-a t-il une méthode (peut être en passant par MapBasic mais je ne m' connais pas du tout...c'est peut être le moment d'apprendre!) pour dire à MapInfo de selectionner les parcelles qui sont recouvertes à x% par le bati?

J'espère que quelqu'un aura une rectte miracle ou un début de réponse!
Merci d'avance,

Nelly

Hors ligne

 

#2 Thu 06 March 2008 13:29

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: Requête spatiale : identifier parcelles non bâties

Bonjour,

Pourquoi ne pas convertir une copie de tes bâti en points correspondant à tes centroides de bati ?

A mettre dans la FMB a écrit:

Update ma_table set obj = centroid (obj)


Ensuite il ne reste qu'à recommencer ta requête spatiale. Ca évitera tes soucis de sur-selection.

Robin.

Hors ligne

 

#3 Thu 06 March 2008 13:58

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

Re: Requête spatiale : identifier parcelles non bâties

Bonjour
Deux opérateurs non cités mais ..."adaptés":
objetA Entirely Within objetB objetA est entièrement dans objetB
et  objetA Contains Entire objetB objetA contient entièrement objetB

Hors ligne

 

#4 Thu 06 March 2008 14:15

Nelly Lis
Participant occasionnel
Date d'inscription: 13 Nov 2006
Messages: 33

Re: Requête spatiale : identifier parcelles non bâties

Merci Robin et Maurice, mais le soucis sera pour les cas de polygone "bati" qui couvrent plusieurs parcelles.

convertir une copie de tes bâti en points correspondant à tes centroides de bati


- le centroide se retrouvera sur une seule parcelle

objetA Entirely Within objetB objetA est entièrement dans objetB
et  objetA Contains Entire objetB objetA contient entièrement objetB


- plusieurs parcelles couvertes par un seul bati ou les cas ou le bati dépasse un peu de la parcelle ne seront pas selectionnées comme "contenant entièrement" un objet bati

J'ai pensé à découper le bati à partir des parcelles mais ça rame trop.

Hors ligne

 

#5 Thu 06 March 2008 14:25

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: Requête spatiale : identifier parcelles non bâties

OK. Bon, plan B :

Y-a t-il une méthode (peut être en passant par MapBasic mais je ne m' connais pas du tout...c'est peut être le moment d'apprendre!) pour dire à MapInfo de selectionner les parcelles qui sont recouvertes à x% par le bati?


Maurice, ca te dit rien ? Ca me dit quelque chose cette question. Me semble que quelqu'un a déjà posé une question de ce type et qu'une requête SQL a pu faire l'affaire. Aucune idée de la où ca se trouve par contre...

Robin.

Hors ligne

 

#6 Thu 06 March 2008 15:47

Nelly Lis
Participant occasionnel
Date d'inscription: 13 Nov 2006
Messages: 33

Re: Requête spatiale : identifier parcelles non bâties

J'ai presque trouvé une solution grâce à ce lien!
http://georezo.net/forum/viewtopic.php? … i+parcelle

L'idée est de calculer la somme des surfaces des "bouts" de bâti (ou bati entier) sur chaque parcelle. Il s'agit d'éliminer ensuite les parcelles dont la somme de ces surface est égale à 0 ou inférieure à un certain seuil. (pas besoin de découper le bâti, normalement, ça se calcule tout seul).

Mais pour l'instant ça marche pas, il y a des incohérences dans les surfaces trouvées.

Dernière modification par Nelly Lis (Thu 06 March 2008 15:48)

Hors ligne

 

#7 Thu 06 March 2008 15:53

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: Requête spatiale : identifier parcelles non bâties

Tiens, je crois que j'ai trouvé ce à quoi je pensais :
http://georezo.net/forum/viewtopic.php?pid=93876#p93876

Hors ligne

 

#8 Thu 06 March 2008 16:02

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

Re: Requête spatiale : identifier parcelles non bâties

C'est gérable avec ou sans mbx
Avec: je vous conseille (tongue)  le mien, GT-UX, qu'on trouve ici, post #5. On obtient l'intersection des deux tables (et on peut calculer la surface de tous les petits bouts... )
Sans: il "suffit" d'une requête utilisant ProportionOverlap(object1,object2). On n'aura pas les ambiguités d'unités de surface (puisque c'est une proportion) que l'on aurait avec AreaOverlap (mais qu'on lève grace au fameus Set CoorSys Table ma_table smile).
Pour chiader la requête n'hésitez pas à étudier les documents déjà maintes fois cités  et le tuto de Robin: le tout est ici...

Hors ligne

 

#9 Thu 06 March 2008 16:30

Nelly Lis
Participant occasionnel
Date d'inscription: 13 Nov 2006
Messages: 33

Re: Requête spatiale : identifier parcelles non bâties

Merci pour tous vos conseils, je m'en suis sortie avec ma méthode de calculs de "bouts de bati" mais je vais aller voir d'un peu plus près le reste.

Hors ligne

 

Pied de page des forums

Powered by FluxBB