I have map. On the top of map layer have a polygon A and circle B. They are intersected each others. Any algorithm can calculate the area of intersection C ?
解决方案
Assuming that you're willing to take an approximation of the circle (a polygon with a large number of sides...) then there are a bunch of algorithms to compute the result of polygon clipping (see here, for a short listing).
A simple implementation pretty boils down to:
Determining what set of polygon A's points lie within polygon B, and vice versa
Determining the points of intersection for line segments that cross that inside-outside boundary, and
Constructing a new polygon from the set of points collected. To calculate the area of that new polygon, you can just decompose it into a collection of triangles and sum their areas.
If you don't feel like going through all of that work, try JS Clipper. It will probably make your life easier.
If you're not willing to make do with an arbitrarily good approximation of your circle, I figure you have to start finding intersections between polygon line segments and the boundary of your circle, then piecewise integrating each section.