Ah... if you want a Rectangle, what do you mean by "appropriate radius"?
Now, as for a rectangle based on center, width, and height... funny you should ask that. As it turns out, I wrote some Java code a few years back to do exactly that, with the rectangle oriented at an arbitrary angle, and going around the corners in either direction. I think I can share the appropriate snippet. All you do is calculate the center of one side, then you can work out the four corners from there:
// utility function to ensure angles are in 0...360
public static double modAngle360(double angle) {
double temp = (angle % 360.0) + 360.0;
double result = temp % 360.0;
return result;
}
public static List<LatLng> generateRectangle(LatLng center, double length, double width, double inboundAngle, boolean leftTurn) {
double l2 = length / 2;
double w2 = width / 2;
double angle0 = modAngle360(inboundAngle + 180);
double angle1 = modAngle360(inboundAngle - 90.0);
double angle2 = modAngle360(angle1 + 180.0);
if (!leftTurn) {
// Swap our angles so that we go around in the opposite direction
double temp = angle1;
angle1 = angle2;
angle2 = temp;
}
LatLng rightMiddle = calcLatLonDeg(center, angle0, l2);
LatLng p1 = calcLatLonDeg(rightMiddle, angle2, w2);
LatLng p2 = calcLatLonDeg(p1, inboundAngle, length);
LatLng p3 = calcLatLonDeg(p2, angle1, width);
LatLng p4 = calcLatLonDeg(p1, angle1, width);
// do useful stuff with the four corners
So, draw a half-length line from the center to the right, decide which way you're turning from there, and walk around the rectangle.
There's probably a better way to do it somewhere, but this has worked fine for my purposes.