Bonjour à tous,
je suis sur :
Microsoft Windows [version 6.1.7601]
mysql Ver 14.14 Distrib 5.5.27, for Win64 (x86)
J'ai crée une table avec une colonne position de type POINT (j'ai essayé en MyISAM et InnoDB) :
et une table tournee :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 DROP TABLE IF EXISTS ville; CREATE TABLE ville ( ville VARCHAR(40) NOT NULL PRIMARY KEY, position POINT )ENGINE=MyISAM;
J'ai chargé cette table avec des données :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 DROP TABLE IF EXISTS tournee; CREATE TABLE tournee ( numero INTEGER, ordre INTEGER, -- numéro d'ordre de la ville de passage ville_tournee VARCHAR(40), CONSTRAINT pk_tournee PRIMARY KEY (numero, ordre), CONSTRAINT fk_tournee_ville FOREIGN KEY (ville_tournee) REFERENCES ville (ville) )ENGINE=MyISAM;
Un requête avec astext(colonne) me renvoie bien la valeur du point :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 INSERT INTO ville VALUES ("Abbeville",GeometryFromText('Point(50.1 1.85)')), etc.
Une procédure stockée aussi .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT ville, astext(position) FROM ville
Par contre, la requête suivante fonctionne :
Mais la procédure stockée qui l'encapsule me renvoie NULL dans la colonne distance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT O.ville AS origine, D.ville AS destination, Glength(Linestring((O.position), (D.position)))*105 AS distance FROM ville O INNER JOIN ville D ON O.ville <> D.ville WHERE O.ville = "paris";
Ma question : est-ce une limite connue d'utilisation ds vues avec les fonctions GIS ? j'ai cherché mais n'ai pas trouvé...
Merci pour votre aide !
Partager