Bienvenue! Inscrivez-vous et rejoignez notre communauté :)
  • Login:

Bienvenue sur Forum SIG - Systèmes d'Information Géographique et Géomatique.

Bienvenue sur le forumSIG. S'il s'agit de votre première visite, assurez vous de faire une recherche préalable dans les FAQ SIG. Vous devez vous inscrire avant de pouvoir poster.

Affichage des résultats 1 à 5 sur 5
  1. #1

    Post Tracer une bissectrice

    Bonjour,

    Je cherche à tracer des bissectrices via postgis.
    J'ai utilisé le code ci-après, qui me permet de récupérer des informations quant à l'angle formé à la jointure de deux segments.


    Code:
    -- 3.- Create segments from points and calculate azimuth for each line. 
    --     two calls of generate_series for a single function wont work (azimuth). 
    
    select 
    id,        
    name,        
    polygon_num,       
    point_order as vertex,        
    
    --        
    
    case when point_order = 1          
      then last_value(ST_Astext(ST_Makeline(sp,ep))) over (partition by id, polygon_num)          
      else lag(ST_Astext(ST_Makeline(sp,ep)),1) over (partition by id, polygon_num order by point_order)        
    end ||' - '||ST_Astext(ST_Makeline(sp,ep)) as lines,       
     
    --        
    
    abs(abs(        
      case when point_order = 1          
        then last_value(degrees(ST_Azimuth(sp,ep))) over (partition by id, polygon_num)          
        else lag(degrees(ST_Azimuth(sp,ep)),1) over (partition by id, polygon_num order by point_order)        
      end - degrees(ST_Azimuth(sp,ep))) -180 ) as ang 
    from (-- 2.- extract the endpoints for every 2-point line segment for each linestring       
             --     Group polygons from multipolygon       
    
    select 
    id,              
    name,              
    coalesce(path[1],0) as polygon_num,              
    generate_series(1, ST_Npoints(geom)-1) as point_order,              
    ST_Pointn(geom, generate_series(1, ST_Npoints(geom)-1)) as sp,              
    ST_Pointn(geom, generate_series(2, ST_Npoints(geom)  )) as ep       
    
    from ( 
         -- 1.- Extract the individual linestrings and the Polygon number for later identification              
    
    select 
    id,                     
    name,                     
    (ST_Dump(ST_Boundary(the_geom))).geom as geom,                     
    (ST_Dump(ST_Boundary(the_geom))).path as path 
    
    -- To identify the polygon               
    
    from poly_and_multipoly ) as pointlist ) as segments;
    Source : https://stackoverflow.com/questions/...-multipolygons

    Ensuite je récupère une couche comprenant l'angle et les coordonnées des sommets à partir de la sélection précédente.

    Maintenant, j'aimerais trouver le moyen de tracer une ligne qui coupe cet angle en deux parties égales (bissectrice) sur une distance définie et dans la bonne orientation. De ce que je comprends, il faut désormais que je fasse un calcul vectoriel pour récupérer les coordonnées d'un point X'Y' que je pourrai relier au point XY pour tracer la bissectrice mais je dois faire une erreur dans mon code :

    Code:
    CREATE TABLE public.test_sommets_prime
    AS SELECT
    idu,
    x+distance*sin(ang/2) as xp,
    y+distance*cos(ang/2) as yp,
    idu_ilot,
    vertex,
    ang
    FROM public.test_sommets_principaux
    Mais le résultat n'est pas probant. Auriez-vous une aide à m'apporter svp ?


  2. #2

    Date d'inscription
    juin 2007
    Messages
    29

    Par défaut Re : Tracer une bissectrice

    il y a peut-être une bibliothèque (library) de topographie déjà existante quelque part ??

  3. #3

    Par défaut Re : Tracer une bissectrice

    Bonjour,

    Pour l'instant, je n'ai pas trouvé de librairie pour réaliser cette opération, mais je vois une autre méthode pour arriver à mon résultat. La construction d'une bissectrice se faisant au compas, j'imagine faire :
    - un premier buffer depuis mon sommet d'origine (point o)
    - récupérer les points d'intersection de mon buffer avec les deux segments qui composent mon angle [AO] et [BO]
    - réaliser un nouveau buffer depuis le point A et depuis le point B
    - récupérer le point d'intersection O' de ces deux buffer le plus loin du point d'orgine O
    - tracer un segment [OO']
    - prolonger le segment [OO'] de manière à atteindre une longueur souhaitée.

    Si je trouve une méthode qui fonctionne je vous la mets ici. Néanmoins, si vous avez déjà des idées, je suis preneur.

  4. #4

    Date d'inscription
    juin 2007
    Messages
    29

    Par défaut Re : Tracer une bissectrice

    il doit y avoir des outils de calcul géométrique COGO dans certains logiciels commerciaux payants comme AutoCAD ou ESRI ArcGIS (ArcInfo - ArcEditor).

    http://www.forumsig.org/search.php
    COGO

  5. #5

    Par défaut Re : Tracer une bissectrice

    Je vous remercie pour cette indication.

 

 

Discussions similaires

  1. [GPS] Tracer des randonnées
    Par benoit.charlier dans le forum Espace GPS et Solutions Nomades
    Réponses: 4
    Dernier message: 09/09/2014, 13h42
  2. [MapInfo 7.x] Tracer un arc
    Par Fansinov dans le forum Programmation
    Réponses: 2
    Dernier message: 19/12/2008, 04h54
  3. [MapInfo 7.x] Tracer un arc de cercle
    Par Urbain dans le forum Programmation
    Réponses: 5
    Dernier message: 10/12/2008, 07h33
  4. [MapInfo 7.x] Tracer un azimuth
    Par Snoopy dans le forum Assistance Technique
    Réponses: 2
    Dernier message: 16/05/2007, 09h00
  5. [MapBasic 8.x] Tracer des parallèles
    Par stephane dans le forum Programmation
    Réponses: 10
    Dernier message: 30/03/2007, 10h48

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •