On 3 November 2016 at 09:46, Renison <[email protected]> wrote: > Hello all, I am trying to create a simple circle geometry in OGR. My approach > so far has been something like this: > > SpatialReference defaultGeoSys = new SpatialReference(""); > defaultGeoSys.SetWellKnownGeogCS("EPSG:4326"); > > //define a circle using point and buffer > string pointlineString = "POINT (" + longitude + " " + latitude > +")"; > var circle = OGR.Ogr.CreateGeometryFromWkt(ref pointlineString, > defaultGeoSys); > circle.Buffer(MilesToMeters(radiusInMiles), 2000); > > But the circle.Buffer(params,params) does not seem to create a circle. All I > have is a point and a radius. Is there a way to achieve what I want?
Buffer operates in Cartesian space, and uses the same units as the SRS, therefore these are degrees. One strategy for a simple Point is to create a Cartesian buffer from (0, 0) and project it to EPSG:2193 from a custom azimuthal equidistant projection centred at the point location, e.g. a PROJ.4 string "+proj=aeqd +lat_0=" + latitude + " +lon_0=" + longitude + " +x_0=0 +y_0=0" See http://gis.stackexchange.com/a/121539/1872 for this recipe in R. You can make something similar with OSR. Cheers, -Mike _______________________________________________ gdal-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/gdal-dev
