IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Requête géographique qui ne renvoie rien


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Novembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 134
    Par défaut Requête géographique qui ne renvoie rien
    Salut,

    Je souhaiterais pouvoir récupérer tous les enregistrements d'une table dont la géométrie est incluse dans une géométrie donnée (bounding box).

    Ma table contient un champ de type sdo_geometry.

    Voici les différentes requêtes que j'ai essayé pour récupérer des enregistrements :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT count(*) as TOUCH FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=TOUCH') = 'TRUE';
    SELECT count(*) as OVERLAPBDYDISJOINT FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=OVERLAPBDYDISJOINT') = 'TRUE';
    SELECT count(*) as OVERLAPBDYINTERSECT FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=OVERLAPBDYINTERSECT') = 'TRUE';
    SELECT count(*) as EQUAL FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=EQUAL') = 'TRUE';
    SELECT count(*) as INSIDE FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=INSIDE') = 'TRUE';
    SELECT count(*) as COVEREDBY FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=COVEREDBY') = 'TRUE';
    SELECT count(*) as CONTAINS FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=CONTAINS') = 'TRUE';
    SELECT count(*) as COVERS FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=COVERS') = 'TRUE';
    SELECT count(*) as ANYINTERACT FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=ANYINTERACT') = 'TRUE';
    Les points présents dans la table sont tous contenus dans le polygon mais rien n'est renvoyé.

    Est-ce que quelqu'un aurait une solution à ce problème.
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Je ne connais pas du tout ce type de structures.

    En revanche, je suis étonné que le premier et le dernier point du polygone soient identiques : t'as essayé de ne pas fermer ton poly (sans remettre le premier point à la fin) ?

    Sinon, aucune idée, je laisse ceux qui savent de quoi ils parlent parler à ma place

  3. #3
    Membre confirmé
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Novembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 134
    Par défaut
    Un polygone géographique est toujours représenté de cette manière. S'il n'y avait pas ce dernier point, cela équivaut à une ligne donc le polygone est faux.

  4. #4
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Ok.

    Vu qu'il s'agit d'un polygone et non d'une ligne, je pensais justement que la jointure entre le dernier et le premier point était implicite, justement pour faire en sorte que ce soit un polygone et non une ligne

    Tout dépend de l'interprétation qu'on fait du mot polygone (en GDI, c'est la méthode dont je parle qui est utilisée).

    Mais bon, si en SGBD le polygone est forcément fermé, je m'incline

Discussions similaires

  1. Requête SQL qui ne renvoie rien quand la valeur est nulle
    Par vocal94130 dans le forum Requêtes
    Réponses: 4
    Dernier message: 01/09/2010, 14h11
  2. [SQL-Server] Requête qui ne renvoie rien PHP5 et SQL SERVER 2000
    Par Sytchev3 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 28/05/2009, 09h46
  3. Requete sql qui ne renvoie rien :-(
    Par patchouli dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/02/2007, 09h41
  4. Fonction qui ne renvoie rien
    Par philippef dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/11/2006, 18h12
  5. [PostgreSql] requête simple qui ne renvoie rien ?
    Par tuxout dans le forum Langage SQL
    Réponses: 6
    Dernier message: 03/08/2006, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo