#1 Wed 03 June 2009 16:24
- qian
- Participant occasionnel
- Date d'inscription: 17 Feb 2009
- Messages: 11
MI - Requete SQL spatiale
Bonjour,
J'ai besoin de vos aides.
J'ai deux tables, une des Points d'arrêt de bus, une autre les piscines.
Comment je peux filtrer les points d'arrêt de bus qui sont à moins de 300 mètres de chaque piscine?
Merci à l'avance!!
Qian
Hors ligne
#2 Wed 03 June 2009 16:42
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: MI - Requete SQL spatiale
Salut qian et bienvenue,
Essaye voir ça:
Select * from piscines, Points d'arrêt de bus where Points d'arrêt de bus.obj within any (select buffer (piscines.obj , 12 , 300 , "m") from piscines) into Ma_Selection
En espérant que cela t'aide
A+
Joël
Hors ligne
#3 Wed 03 June 2009 17:20
- qian
- Participant occasionnel
- Date d'inscription: 17 Feb 2009
- Messages: 11
Re: MI - Requete SQL spatiale
merci joel
j'ai essayé, avec Sélection SQL
ces deux tables s'appellent PN_BUS et Sport
j'ai les bien choisi pour "Tables",
et pour "Critères" j'ai mis:
PN_BUS.obj Within any(buffer(Sport.obj, 12, 300, "m"))
il me dit "Aucune jointure n'est spécifiée entre les tables PN_BUS et Sport. Condition de jointure erronée dans la clause Critères (Where)."
je ne comprend pas
Hors ligne
#4 Wed 03 June 2009 17:41
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: MI - Requete SQL spatiale
Place la requète directement dans la FMB (Fenêtre MapBasic)
Pour ouvrir cette fenêtre ---> Options----> Afficher fenêtre Mapbasic
Select * from Sport, PN_BUS where PN_BUS.obj within any (select buffer (Sport.obj , 12 , 300 , "m") from Sport) into Ma_Selection
A+
Joël
Hors ligne
#5 Thu 04 June 2009 17:16
- Maestro de la salsa
- Participant actif
- Date d'inscription: 7 Jun 2006
- Messages: 133
Re: MI - Requete SQL spatiale
Le problème peut-être est qu'on selectionne un buffer qui n'est pas créé...
Sinon fait un buffer de 300m autour des bus (table-->tampon) et ensuite la selection des piscines avec ce buffer
Hors ligne
#6 Fri 05 June 2009 16:46
- hanczyk
- Participant assidu
- Lieu: Châlons-en-Champagne
- Date d'inscription: 21 Apr 2006
- Messages: 596
Re: MI - Requete SQL spatiale
Bonjour,
Dans la boîte SQL :
Tables : Sport
Critères : obj Within any (select buffer (obj, 100 , 5 ,"km") from PN_BUS)
ça devrait le faire
@+ jmh
Jean-Marc Hanczyk
Hors ligne
#7 Fri 05 June 2009 16:50
- hanczyk
- Participant assidu
- Lieu: Châlons-en-Champagne
- Date d'inscription: 21 Apr 2006
- Messages: 596
Re: MI - Requete SQL spatiale
Bonjour,
petites corrections (je me suis trompé dans les distances et unités) :
Bonjour,
Dans la boîte SQL :
Tables : Sport
Critères : obj Within any (select buffer (obj, 100 , 300 ,"m") from PN_BUS)
PS : j'ai donné la valeur maximum pour le lissage 100 (segments par cercle)
ça devrait le faire
@+ jmh
Jean-Marc Hanczyk
Hors ligne
#8 Sun 07 June 2009 19:26
- hanczyk
- Participant assidu
- Lieu: Châlons-en-Champagne
- Date d'inscription: 21 Apr 2006
- Messages: 596
Re: MI - Requete SQL spatiale
Bonjour,
re-correction
à la relecture de la question, vous voulez filtrer la ARRETS DE BUS,
alors il faut inverser la requête.
Pour la table, j'ai nommé un champ NOM : il faut renseigner chaque cellule par le nom de l'arrêt.
Ensuite j'ai groupé par ce champ.
Mon résultat bien sûr est une table NON graphique.
Fields {*}
Tables {PN_BUS}
Where {obj Within any (select buffer (obj, 100 , 300 ,"m") from Sport)}
Group {NOM}
Order {}
Into {Selection}
Browse
PS : existe-t-il une autre solution sans créer de table ? Je suis preneur
@+ jmh
Jean-Marc Hanczyk
Hors ligne
#9 Mon 08 June 2009 11:19
- qian
- Participant occasionnel
- Date d'inscription: 17 Feb 2009
- Messages: 11
Re: MI - Requete SQL spatiale
merci beaucoup,
je vais les essayer maintenant
Hors ligne
#10 Mon 08 June 2009 16:48
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: MI - Requete SQL spatiale
Salut,
Je rectifie ma requête (à copier directement dans la FMB) Fenêtre MapBasic -----> pour ouvrir cette Fenêtre: Options ----> voir Fenêtre MapBasic
Code:
Select * from PN_BUS where obj within any (select buffer (obj , 12 , 300 , "m") from Sport) into Ma_Selection
A+
Joël
Hors ligne