[R-sig-Geo] Reordering geographical coordinates clockwise to make a polygon

Michael Sumner md@umner @ending from gm@il@com
Mon Nov 5 20:41:13 CET 2018


alphahull or a hand-crafted "triangulate and cull long/large triangles"
might be workable options (geometry and RTriangle have the fastest and most
useful triangulation functions).

It's not generally a tractable problem afaics.  Some refs that came up in
recent discussions:

https://pdfs.semanticscholar.org/669b/1415cd64d39f1e44fd90c2b9d9453c42581b.pdf

http://erikdemaine.org/polygonization/

Cheers, Mike.

On Tue, 6 Nov 2018 at 05:26 Edzer Pebesma <edzer.pebesma using uni-muenster.de>
wrote:

> Sorry for my previous answer, I didn't get the question fully.
>
> I'm afraid I still don't get the question fully, but functions that
> might help are sf::st_line_merge (creates a LINESTRING from line pieces)
> and sf::st_polygonize (creates a polygon from a LINESTRING that forms a
> closed ring)
>
> On 11/5/18 5:35 PM, Patrick Giraudoux wrote:
> >
> > Apologize to answer to myself: the way described below would work only
> > if there are no concave "peninsula" towards north or south inside the
> > polygon. Even thinking about an alternate solution, e.g. the Traveling
> > Salesman Problem (TSP), ie. the shortest route linking all points, one
> > could get wrong since points of  a narrowpeninsula could have points
> > closest to the opposite border than from the next point on the border...
> >
> > Suppose we are stuck, and should redraw polygons by hand
> >
> >
> > Le 05/11/2018 à 14:02, Patrick Giraudoux a écrit :
> >>
> >> Dear listers,
> >>
> >> There is an interesting post here:
> >>
> https://stackoverflow.com/questions/6989100/sort-points-in-clockwise-order
> >> dealing on the issue. However, I would like to know if a function has
> >> been already developped in a R package.
> >>
> >> I am coping with a young colleague's shapefile where borders of
> >> polygons have been drawn as lines quite inconsistently. To change this
> >> SpatialLinesDataFrame into a SpatialPoints object is easy. The idea is
> >> to  select the points  bordering each polygon (delete the others),
> >> define the point set as a Polygon, then rebuild step by step a
> >> SpatialPolygonsDataFrame with all its (~25) polygons. It would be much
> >> quicker than to redraw one by one the 5160 data points (two times on
> >> borders shared by two polygons).
> >>
> >> The problem is that the points must be reordered clockwise (the way
> >> lines making the  borders is all except clockwise) before making them
> >> a polygon.
> >>
> >> Any function already developped for that ?
> >>
> >> Cheers,
> >>
> >> Patrick
> >>
> >>
> >>
> >
> >
> >       [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-sig-Geo mailing list
> > R-sig-Geo using r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> >
>
> --
> Edzer Pebesma
> Institute for Geoinformatics
> Heisenbergstrasse 2, 48151 Muenster, Germany
> Phone: +49 251 8333081 <+49%20251%208333081>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
-- 
Dr. Michael Sumner
Software and Database Engineer
Australian Antarctic Division
203 Channel Highway
Kingston Tasmania 7050 Australia

	[[alternative HTML version deleted]]



More information about the R-sig-Geo mailing list