Suite

Comment utiliser l'intersection dans la guery spatiale dans postgresql?


Je veux obtenir les colonnes id, time et point_metric de l'intersection entre deux géométries (geom_lines et gem_houses). J'ai écrit le code SQL suivant, mais il y a eu une erreur (l'argument de WHERE doit être de type booléen, pas de type géométrie). J'ai cherché et je savais que je devais utiliser l'opérateur "ST_Intersection" au lieu de "ST_Intersects". Mais, "ST_Intersects" n'obtient que des valeurs booléennes alors que j'ai besoin de géométrie, je dois donc utiliser "ST_Intersection", je pense. Quelqu'un a-t-il une idée ?

SELECT id, heure, ST_AsText(geom_houses) FROM my_table où ST_Intersection(geom_lines , geom_houses);

Si vous voulez l'intersection, cela devrait être l'une des choses que vous SÉLECTIONNEZ. Si vous ne voulez que des lignes où il y a une intersection, cela va dans le WHERE.

Vous vouliez donc probablement (pas de test, car vous n'avez pas fourni le schéma de table complet) quelque chose comme :

SELECT id, heure, ST_AsText(geom_houses), ST_AsText(ST_Intersection(geom_line, geom_houses)) FROM my_table WHERE ST_Intersects(geom_lines, geom_houses);