This is an incomplete answer to a somewhat ambiguous question.
You indicate "curve line" but don't specify the curve function so it's impossible to provide help specifically on that.
If by "curve line" you mean circle around a point then you may be interested in the SphericalUtil class in the android-maps-utils which provides for finding "offsets" (computeOffset) from a point - but this assumes a circle from a center point - which is difficult to apply to your unknown curve function. And ofcourse the map itself provides for addCircle.
Also, to determine if any one point on the Earth's surface is in water you can use Google Maps Reverse Geocoding as in this answer: https://stackoverflow.com/a/9644812/2711811 . It mentions using 'type' field which is 'natural_feature' for water.
But this answer leaves open the general issue of "how to find a point not in water 200 meters from a center point" without an indeterminate, iterative approach - (i.e. keeping picking random points until not in water - which fails if the center point is on a 150-meter island). To solve this you'd have to limit your point space to land which means having knowledge of land/sea.
Example random point at 200 meters from center point:
SphericalUtil.computeOffset(pickupPoint, 200, new Random(System.currentTimeMillis()).nextDouble * 360)
Feel free to add more detail to your question.