Suite

ST_Intersection fonctionne-t-il en 3D ?


J'utilise "ST_Intersection" entre deux lignes 3D qui, je pense, ne se coupent pas, mais le résultat me donne leur intersection.

SELECT ST_ASText(ST_Intersection( ST_GeomFromText('LINESTRING( 1 1 1, 5 5 1)'), ST_GeomFromText('LINESTRING( 4 1 10, 1 5 10)' )));

résulte en:

POINT Z (2.71428571428571 2.71428571428571 5,5)


ST_3DIntersection est disponible uniquement via l'extension SFCGAL. Malheureusement, seuls Windows (PostGIS 2.2 expérimental) et Ubuntu (via docker ) l'ont pour le moment, vous devrez donc probablement compiler PostGIS vous-même pour l'utiliser. Il serait utile de connaître le système d'exploitation sur lequel vous vous trouvez.

Les binaires expérimentaux de PostGIS Windows 2.2 ont SFCGAL et peuvent être téléchargés ici :

Je dois ajouter qu'après avoir compilé avec le support SFCGAL, si vous êtes sur PostGIS 2.1, vous devez exécuter le fichier sfcgal.sql. Pour PostGIS 2.2, vous pouvez faire

CRÉER UNE EXTENSION postgis; CRÉER UNE EXTENSION sfcgal; ALTER DATABASE your_db_here SET postgis.backend = sfcgal;

La définition de postgis.backend n'est pas nécessaire pour utiliser ST_3DIntersection, mais elle forcera des fonctions telles que ST_3DIntersects à utiliser l'implémentation sfcgal au lieu de l'implémentation PostGIS. (Le SFCGAL comprend les volumes et les TINS ​​(d'autres arrivent dans la version 2.2 - je mettrai à jour la bibliothèque SFCGAL pour inclure les nouvelles fonctions de volume, la fonction ST_3DUnion et quelques autres dès qu'elle sera validée dans PostGIS).

Vous voudrez peut-être également consulter le site SFCGAL pour voir ce qui s'en vient : http://oslandia.github.io/SFCGAL/


Tu dois utiliserST_3DIntersects. Ce qui vous fournit le résultat correct sur votre exemple de requête dans votre question :

SELECT ST_ASText(ST_3DIntersection( ST_GeomFromText('LINESTRING( 1 1 1, 5 5 1)'), ST_GeomFromText('LINESTRING( 4 1 10, 1 5 10)' )));

Jetez un oeil au lien ci-dessous: Il est disponible à partir de PostGIS 2.0.0 À partir de. https://postgis.net/docs/ST_3DIntersects.html


Résultat: Comme vous pouvez le voir sur le résultat, il est vide.

1 | GÉOMÉTRIECOLLECTION VIDE


Voir la vidéo: Lets Explore Polygons and 3D Shapes (Octobre 2021).