kmlPolygon.setAltitudeMode(AltitudeMode.CLAMP_TO_GROUND);
final Boundary outerboundary = new Boundary();
kmlPolygon.setOuterBoundaryIs(outerboundary);
final LinearRing outerlinearring = new LinearRing();
outerboundary.setLinearRing(outerlinearring);
List<Coordinate> outercoord = new ArrayList<Coordinate>();
outerlinearring.setCoordinates(outercoord);
for (int i=0;i<polygon.getExteriorRing().getNumPoints();i++) {
outercoord.add(new Coordinate(polygon.getExteriorRing().getPointN(i).getX(),polygon.getExteriorRing().getPointN(i).getY()));
}
int numOfInnerBoundaries = polygon.getNumInteriorRing();
for(int i=0;i<numOfInnerBoundaries;i++)
{
final Boundary innerboundary = new Boundary();
kmlPolygon.getInnerBoundaryIs().add(innerboundary);
final LinearRing innerlinearring = new LinearRing();
innerboundary.setLinearRing(innerlinearring);
List<Coordinate> innercoord = new ArrayList<Coordinate>();
innerlinearring.setCoordinates(innercoord);
int numOfPoints = polygon.getInteriorRingN(i).getNumPoints();
for(int j=0;j<numOfPoints;j++)
innercoord.add(new Coordinate(polygon.getInteriorRingN(i).getPointN(j).getX(),polygon.getInteriorRingN(i).getPointN(j).getY()));
}