@Override public Circle circle(double x, double y, double distance) { GeoCircle circle; if (planetModel.isSphere()) { circle = GeoCircleFactory.makeGeoCircle(planetModel, y * DistanceUtils.DEGREES_TO_RADIANS, x * DistanceUtils.DEGREES_TO_RADIANS, distance * DistanceUtils.DEGREES_TO_RADIANS); } else { //accuracy is defined as a linear distance in this class. At tiny distances, linear distance //can be approximated to surface distance in radians. circle = GeoCircleFactory.makeExactGeoCircle(planetModel, y * DistanceUtils.DEGREES_TO_RADIANS, x * DistanceUtils.DEGREES_TO_RADIANS, distance * DistanceUtils.DEGREES_TO_RADIANS, circleAccuracy * DistanceUtils.DEGREES_TO_RADIANS); } return new Geo3dCircleShape(circle, context); }