I have a point layer for a large area. The layer is in a geographic coordinate system. I need to make some distance-aware work with features from this layer. Actually, I need to build a buffer-layer with 100 meters, but it doesn't matter. The first idea is to project the layer, make a buffer and transform back to the geographic coordinate system. However the area of the layer is pretty big and, as I understand, I cannot use the only projected coordinate system without significant distortions. So, I need to use several projected coordinate systems or use haversine to build a buffer. Both approaches do not look neat and convenient. Is there a more natural way to build a buffer (or measure distance)? I would like to use gdal/ogr.
To build the buffer layer, a good approach seems to me to use a conformal projection and to scale the radius of the buffers by the inverse of the scale factor of the projection.
For example, you can use the Mercator projection and build the buffers with a
radius = 100m / SEC(phi). Where
phi is the latitude of the point to buffer, and
SEC(phi) is the Scale Factor of the Mercator projection.
To measure distances, the haversine formula seems to me a natural way, but you can give up some accuracy in the calculations and project to a system that does not deform so much the distances within your study area, i.e. with a Chamberlin trimetric projection (Wikipedia, proj-string).