My application is to represent shapes on the Earth's (using a sphere is sufficient) surface. Those can be points, lines, and polygons. Coordinates should be defined by using degrees or radians (just like geographic coordinates).
A (straight) line for example should be defined by two coordinates and use the great circle (http://en.wikipedia.org/wiki/Great_circle) to connect them. Polygons should consist of a collection of the lines mentioned. Furthermore I would like to perform operations like intersection, union, difference, complement on the shapes mentioned. Set - Basic Operations gives an idea of the operations assuming that the circles would be polygons. Of course those operations would differ if I for example intersect two lines. These operations only need to output collections of coordinates.
What I don't need is extended functionality like Voronoi diagrams, Triangulations, and so on. Also I don't need to graphically display the results.
I tried to figure that out using CGAL. More precisely I was looking at the "3D Spherical Geometry Kernel" and "2D Boolean Operations on Nef Polygons Embedded on the Sphere". Actually I already had problems with putting a line on the sphere. Additionally CGAL works in the Euclidean Space, which still leaves me with the geometric operations necessary, to work with great circles placed on the sphere.
My question is, if you can assist me in realizing the functionality mentioned in CGAL or if you can recommend another library for C/C++ that does that. Thank you very much!