Nikhil,
>If I have a polygon how to find out edges of it programmatic do we have any >function to get all the edges of polygon(area) OGR is modelled on the OpenGIS simple features data model, http://www.gdal.org/ogr/ogr_arch.html In this model there is no notion of edge like in S-57 You did use the OGR internal representation using RETURN_LINKAGES=ON But that is for debugging .. it's not part of OGR official interface as I can see. But RETURN_LINKAGES=ON give you a fighting chance if you need to find edge and also to will need to hack the source code of OGR as it limit the output to 80 char. rgds, Sylvain. >________________________________ > From: Nikhil Sai Parupalli <nikhil.parupa...@iictechnologies.com> >To: s duclos <sylvain_duc...@yahoo.com> >Cc: "gdal-dev@lists.osgeo.org" <gdal-dev@lists.osgeo.org> >Sent: Thursday, October 11, 2012 1:26:47 AM >Subject: RE: [gdal-dev] S57 dataset boundary issue > >Hey Sylvain, > >Thanks for your inputs, we have successfully implemented the same in our >project . >I have one more question i.e >If I have a polygon how to find out edges of it programmatic do we have any >function to get all the edges of polygon(area) > > >Thanks and Regards >Nikhil Sai Parupalli > > > >Note: Do not print this email until and unless it is really required. Save >paper , stay Green > >________________________________________ >From: Nikhil Sai Parupalli >Sent: Wednesday, October 10, 2012 9:07 PM >To: s duclos >Subject: RE: [gdal-dev] S57 dataset boundary issue > >Thanks and Regards >Nikhil Sai Parupalli > > > >Note: Do not print this email until and unless it is really required. Save >paper , stay Green > >________________________________________ >From: s duclos [sylvain_duc...@yahoo.com] >Sent: Wednesday, October 10, 2012 8:43 PM >To: Nikhil Sai Parupalli; Frank Warmerdam >Cc: gdal-dev@lists.osgeo.org >Subject: Re: [gdal-dev] S57 dataset boundary issue > >Hi Nikhil, > >> Based on the code which you have sent we could find out CW and CCW, but not >> outer/inner > >The outer ring of OGRGeometryH poly is the ring 0 (zero). > > >In C code the OGR call: > > > guint nRingCount = OGR_G_GetGeometryCount(hGeom); > > >will give you the number of rings in a poly. > >Say there is 2 rings for this hGeom. Then the outer ring is > > OGRGeometryH *hGeomRef_outter = OGR_G_GetGeometryRef(hGeom, 0); > >and the inner ring is > > OGRGeometryH *hGeomRef_inner = OGR_G_GetGeometryRef(hGeom, 1); > > > >> Please have a look at that data set once and let me know. > > >There is nothing in attachment > > >rgds, > >Sylvain. > > > >----- Original Message ----- >> From: Nikhil Sai Parupalli <nikhil.parupa...@iictechnologies.com> >> To: s duclos <sylvain_duc...@yahoo.com>; Frank Warmerdam >> <warmer...@pobox.com> >> Cc: "gdal-dev@lists.osgeo.org" <gdal-dev@lists.osgeo.org> >> Sent: Wednesday, October 10, 2012 10:40:27 AM >> Subject: RE: [gdal-dev] S57 dataset boundary issue >> >> Hey Sylvain, >> >> Thanks for trying the data which I have sent. >> >> Could you be helping me how this works like outer boundary and inner >> boundary. >> >> >> >> Based on the code which you have sent we could find out CW and CCW, but not >> outer/inner >> Please have a look at that data set once and let me know. >> Or if you have any sample data with simple representation of outer and inner >> boundaries please do share with me. >> >> >> >> >> Thanks and Regards >> Nikhil Sai Parupalli >> >> >> >> Note: Do not print this email until and unless it is really required. Save >> paper >> , stay Green >> >> ________________________________________ >> From: s duclos [sylvain_duc...@yahoo.com] >> Sent: Wednesday, October 10, 2012 7:59 PM >> To: Nikhil Sai Parupalli; Frank Warmerdam >> Cc: gdal-dev@lists.osgeo.org >> Subject: Re: [gdal-dev] S57 dataset boundary issue >> >> Hi Nikhil, >> >> I loaded US1GC09M//US1GC09M.000 .. it's huge :) >> >> It's the Gulf of Mexico .. now where should I look ? >> >> >> >> About the inner / outer ring. As I said before, I just assume that OGR >> send me the outer ring first. And, up to now, my code is working fine. >> >> >> rgds, >> >> Sylvain. >> >> >> >> >> ----- Original Message ----- >>> From: Nikhil Sai Parupalli <nikhil.parupa...@iictechnologies.com> >>> To: s duclos <sylvain_duc...@yahoo.com>; Frank Warmerdam >> <warmer...@pobox.com> >>> Cc: "gdal-dev@lists.osgeo.org" <gdal-dev@lists.osgeo.org> >>> Sent: Wednesday, October 10, 2012 9:40:54 AM >>> Subject: RE: [gdal-dev] S57 dataset boundary issue >>> >>> Could you try on this data set please >>> >>> Thanks and Regards >>> Nikhil Sai Parupalli >>> >>> >>> >>> Note: Do not print this email until and unless it is really required. Save >> paper >>> , stay Green >>> >>> ________________________________________ >>> From: s duclos [sylvain_duc...@yahoo.com] >>> Sent: Wednesday, October 10, 2012 7:02 PM >>> To: Nikhil Sai Parupalli; Frank Warmerdam >>> Cc: gdal-dev@lists.osgeo.org >>> Subject: Re: [gdal-dev] S57 dataset boundary issue >>> >>> Nikhil, >>> >>> I loaded your ENC. >>> >>> I see a number of depth area (DEPARE) and anchor zone area (ACHARE). >>> >>> But no inner ring! >>> >>> Is there an inner rings somewhere I should see? >>> >>> >>> >>> rgds, >>> >>> Sylvain. >>> >>> >>> >>> ----- Original Message ----- >>>> From: Nikhil Sai Parupalli >> <nikhil.parupa...@iictechnologies.com> >>>> To: s duclos <sylvain_duc...@yahoo.com>; Frank Warmerdam >>> <warmer...@pobox.com> >>>> Cc: "gdal-dev@lists.osgeo.org" >> <gdal-dev@lists.osgeo.org> >>>> Sent: Wednesday, October 10, 2012 8:00:41 AM >>>> Subject: RE: [gdal-dev] S57 dataset boundary issue >>>> >>>> Duclos, >>>> >>>> Please see this sample data attached. >>>> So as per the code given by you we have tried and got result i.e able >> to >>> find >>>> out area >>>> >>>> some times it shows area<0 and some times area>0 hence we get >> CW and >>> CCW. >>>> But how do we classify in layer which is outer boundary and which is >> inner >>>> boundary >>>> >>>> >>>> >>>> >>>> Geometry testgeo = geomLAKARE.GetBoundary(); >>>> double area = 0; >>>> for (int l = 0; l < >>>> testgeo.GetPointCount() - 1; l++) >>>> { >>>> double x1 = testgeo.GetX(l); >>>> double y1 = testgeo.GetY(l); >>>> double x2 = testgeo.GetX(l + >> 1); >>>> double y2 = testgeo.GetY(l + >> 1); >>>> area += (x1 * y2) - (x2 * y1); >>>> } >>>> >>>> Thanks and Regards >>>> Nikhil Sai Parupalli >>>> >>>> >>>> >>>> Note: Do not print this email until and unless it is really required. >> Save >>> paper >>>> , stay Green >>>> >>>> ________________________________________ >>>> From: s duclos [sylvain_duc...@yahoo.com] >>>> Sent: Tuesday, October 09, 2012 11:58 PM >>>> To: Frank Warmerdam; Nikhil Sai Parupalli >>>> Cc: gdal-dev@lists.osgeo.org >>>> Subject: Re: [gdal-dev] S57 dataset boundary issue >>>> >>>> Frank & Nikhil, >>>> >>>> >>>> Frank asked: >>>> >>>>> are, I'm not sure what I or others can do about >>>>> the performance cost of checking. >>>> >>>> >>>> If I understand the problem, then it cost nothing! >>>> >>>> You have to check the winding while loading a OGRGeometryH >>>> like so: >>>> double area = 0; >>>> for (unsigned int i=0; i<vert_count-1; i++) { >>>> double x1 = OGR_G_GetX(hRing, i); >>>> double y1 = OGR_G_GetY(hRing, i); >>>> double x2 = OGR_G_GetX(hRing, i+1); >>>> double y2 = OGR_G_GetY(hRing, i+1); >>>> area += (x1*y2) - (x2*y1); >>>> } >>>> >>>> >>>> If the area < 0 then it is CW (clockwise) and > 0 is CCW >> (Counter >>> CW). >>>> >>>> Note that in S57 the exterior ring must be CW and >>>> interior ring are CCW. >>>> >>>> But in S57 there is no order between rings. So interior ring >>>> might come first. I think WKT fix this. In my code I assume >>>> that OGR place the exterior ring first. >>>> >>>> >>>> We have been trough this before. At the time the question >>>> >>>> was if S57 allow for many exterior ring for the same poly. >>>> >>>> I guess it all depend on HO and how they encode the data. >>>> >>>> I'm using mostly Canadian ENC and found no problem. >>>> >>>> But other HO might encode ENC differently .. >>>> >>>> >>>> >>>> >>>> rdgs, >>>> >>>> >>>> Sylvain Duclos. >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>>> ________________________________ >>>>> From: Frank Warmerdam <warmer...@pobox.com> >>>>> To: Nikhil Sai Parupalli >> <nikhil.parupa...@iictechnologies.com> >>>>> Cc: "gdal-dev@lists.osgeo.org" >>> <gdal-dev@lists.osgeo.org> >>>>> Sent: Tuesday, October 9, 2012 12:25:29 PM >>>>> Subject: Re: [gdal-dev] S57 dataset boundary issue >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Mon, Oct 8, 2012 at 10:28 PM, Nikhil Sai Parupalli >>>> <nikhil.parupa...@iictechnologies.com> wrote: >>>>> >>>>> HI All, >>>>>> , >>>>>> >>>>>> Thanks for the reply in below data >>>>>> >>>>>> NAME_RCNM (IntegerList) = (7:130,130,130,130,130,130,130) >>>>>> NAME_RCID (IntegerList) = (7:691,391,690,52,1336,1503,1512) >>>>>> ORNT (IntegerList) = (7:2,2,2,2,1,1,1) >>>>>> USAG (IntegerList) = (7:1,1,1,1,1,1,1) >>>>>> MASK (IntegerList) = (7:255,255,255,255,255,255,255) >>>>>> >>>>>> RCID 691 ORNT has 2 and USAG is 1 based on this data we >> could >>> identify >>>> that RCID 691 is of exterior boundary with reverse direction. >>>>>> >>>>>> So if I have 1000 RCID in NAME_RCID which is vise versa for >> the >>> above >>>> condition I need to display that RCIDS list as errors. >>>>>> So it makes 1000 conditional checks hence reducing >> performance. >>>>>> >>>>>> Please let us know further. >>>>> >>>>> >>>>> Nikhil, >>>>> >>>>> >>>>> I'm afraid I don't follow your point. Are you trying to >>>>> do some sort of ring orientation validation and identify >>>>> ones that don't match your expectations? And you >>>>> are concerned about the performance cost? >>>>> >>>>> >>>>> I don't know why you are doing this, and if you >>>>> are, I'm not sure what I or others can do about >>>>> the performance cost of checking. >>>>> >>>>> >>>>> Best regards,-- >>>>> >>> >> ---------------------------------------+-------------------------------------- >>>>> I set the clouds in motion - turn up | Frank Warmerdam, >>>> warmer...@pobox.com >>>>> light and sound - activate the windows | >> http://pobox.com/~warmerdam >>>>> and watch the world go round - Rush | Geospatial Software >> Developer >>>>> >>>>> >>>>> _______________________________________________ >>>>> gdal-dev mailing list >>>>> gdal-dev@lists.osgeo.org >>>>> http://lists.osgeo.org/mailman/listinfo/gdal-dev >>>>> >>>>> >>>> >>> >> > > > _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev