Suite

Comment créer un point, le tamponner et l'intersecter avec la géométrie du polygone ?


Le SQL ci-dessous est destiné à créer un point à partir d'un X,Y connu. Il devrait alors tamponner le point avec une distance connue. Enfin, le SQL doit croiser le tampon avec une couche de polygone sous-jacente et renvoyer le champ de nom du polygone que le tampon croise. Cela semble simple.

SELECTIONNER le nom FROM polygones t1 WHERE sde.st_intersects (sde.st_buffer(sde.st_point(x, y), buffer), t1.SHAPE) = 1

Quand je lance le sql, j'obtiens ceci :

Erreur à la ligne 3 ORA-20003 : Le type de géométrie "" n'est pas un type de forme valide. ORA-06512 : à "SDE.ST_GEOM_UTIL", ligne 275 ORA-06512 : à "SDE.ST_POINT", ligne 21

Qu'est-ce que je fais mal et comment le réparer ? Les X, Y que j'utilise sont définitivement dans la bonne zone, donc la mise en mémoire tampon et la recherche d'une intersection ne devraient pas être un problème.

J'utilise st_geometry sur Oracle à partir d'Arc 10.1


Vous devez ajouter un SRID à ST_POINT.

SELECTIONNER le nom FROM polygones t1 WHERE sde.st_intersects (sde.st_buffer(sde.st_point(x, y, SRID), buffer), t1.SHAPE) = 1


Voir la vidéo: 51-Buffer, loutil: Créer une zone tampon (Octobre 2021).