Summary: Methods | Inherited Methods | [Expand All]
public final class

# Polygon

extends Object

java.lang.Object
↳ | com.google.android.gms.maps.model.Polygon

## Class Overview

A polygon on the earth's surface. A polygon can be convex or concave, it may span the 180 meridian and it can have holes that are not filled in. It has the following properties:

Outline
  The outline is specified by a list of vertices in clockwise or counterclockwise order. It is not necessary for the start and end points to coincide; if they do not, the polygon will be automatically closed. Line segments are drawn between consecutive points in the shorter of the two directions (east or west).
Holes
  A hole is a region inside the polygon that is not filled. A hole is specified in exactly the same way as the outline. A hole must be fully contained within the outline. Multiple holes can be specified, however overlapping holes are not supported.
Stroke Width
  Line segment width in screen pixels. The width is constant and independent of the camera's zoom level. The default value is 10.
Stroke Color
  Line segment color in ARGB format, the same format used by `Color`. The default value is black (`0xff000000`).
Fill Color
  Fill color in ARGB format, the same format used by `Color`. The default value is transparent (`0x00000000`). If the polygon geometry is not specified correctly (see above for Outline and Holes), then no fill will be drawn.
Z-Index
  The order in which this polygon is drawn with respect to other overlays, including `Polyline`s, `Circle`s, `GroundOverlay`s and `TileOverlay`s, but not `Marker`s. An overlay with a larger z-index is drawn over overlays with smaller z-indices. The order of overlays with the same z-index value is arbitrary. The default is 0.
Visibility
  Indicates if the polygon is visible or invisible, i.e., whether it is drawn on the map. An invisible polygon is not drawn, but retains all of its other properties. The default is `true`, i.e., visible.
Geodesic status
  Indicates whether the segments of the polygon should be drawn as geodesics, as opposed to straight lines on the Mercator projection. A geodesic is the shortest path between two points on the Earth's surface. The geodesic curve is constructed assuming the Earth is a sphere
Clickability
  If you want to handle events fired when the user clicks the polygon, set this property to `true`. You can change this value at any time. The default is `false`. If this property is set to `true`, your app will receive notifications to the `GoogleMap.OnPolygonClickListener` registered through `setOnPolygonClickListener(GoogleMap.OnPolygonClickListener)`.

Methods that modify a Polygon must be called on the main thread. If not, an `IllegalStateException` will be thrown at runtime.

### Example

     GoogleMap map;
     // ... get a map.
     // Add a triangle in the Gulf of Guinea
     Polygon polygon = map.addPolygon(new PolygonOptions()
         .add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5), new LatLng(0, 0))
         .strokeColor(Color.RED)
         .fillColor(Color.BLUE));

### Developer Guide

For more information, read the Shapes developer guide.

## Summary

Public Methods
boolean | equals(Object other)
int | getFillColor() Gets the fill color of this polygon.
List<List<LatLng>> | getHoles() Returns a snapshot of the holes of this polygon at this time .
String | getId() Gets this polygon's id.
List<LatLng> | getPoints() Returns a snapshot of the vertices of this polygon at this time .
int | getStrokeColor() Gets the stroke color of this polygon.
float | getStrokeWidth() Gets the stroke width of this polygon.
float | getZIndex() Gets the zIndex of this polygon.
int | hashCode()
boolean | isClickable() Gets the clickability of the polygon.
boolean | isGeodesic() Gets whether each segment of the line is drawn as a geodesic or not.
boolean | isVisible() Gets the visibility of this polygon.
void | remove() Removes the polygon from the map.
void | setClickable(boolean clickable) Sets the clickability of the polygon.
void | setFillColor(int color) Sets the fill color of this polygon.
void | setGeodesic(boolean geodesic) Sets whether to draw each segment of the line as a geodesic or not.
void | setHoles(List<? extends List<LatLng>> holes) Sets the holes of this polygon.
void | setPoints(List<LatLng> points) Sets the points of this polygon.
void | setStrokeColor(int color) Sets the stroke color of this polygon.
void | setStrokeWidth(float width) Sets the stroke width of this polygon.
void | setVisible(boolean visible) Sets the visibility of this polygon.
void | setZIndex(float zIndex) Sets the zIndex of this polygon.

[Expand] Inherited Methods
From class java.lang.Object
Object | clone()
boolean | equals(Object arg0)
void | finalize()
final Class<?> | getClass()
int | hashCode()
final void | notify()
final void | notifyAll()
String | toString()
final void | wait(long arg0, int arg1)
final void | wait(long arg0)
final void | wait()

## Public Methods

#### public boolean equals (Object other)

#### public int getFillColor ()

Gets the fill color of this polygon.

##### Returns

- the color in ARGB format.

#### public List<List<LatLng>> getHoles ()

Returns a snapshot of the holes of this polygon at this time . The list returned is a copy of the list of holes and so changes to the polygon's holes will not be reflected by this list, nor will changes to this list be reflected by the polygon.

#### public String getId ()

Gets this polygon's id. The id will be unique amongst all Polygons on a map.

#### public List<LatLng> getPoints ()

Returns a snapshot of the vertices of this polygon at this time . The list returned is a copy of the list of vertices and so changes to the polygon's vertices will not be reflected by this list, nor will changes to this list be reflected by the polygon. To change the vertices of the polygon, call `setPoints(List)`.

#### public int getStrokeColor ()

Gets the stroke color of this polygon.

##### Returns

- the color in ARGB format.

#### public float getStrokeWidth ()

Gets the stroke width of this polygon.

##### Returns

- the width in screen pixels.

#### public float getZIndex ()

Gets the zIndex of this polygon.

##### Returns

- the zIndex of the polygon.

#### public int hashCode ()

#### public boolean isClickable ()

Gets the clickability of the polygon. If the polygon is clickable, your app will receive notifications to the `GoogleMap.OnPolygonClickListener` when the user clicks the polygon. The event listener is registered through `setOnPolygonClickListener(GoogleMap.OnPolygonClickListener)`.

##### Returns

- `true` if the polygon is clickable; otherwise, returns `false`.

#### public boolean isGeodesic ()

Gets whether each segment of the line is drawn as a geodesic or not.

##### Returns

- `true` if each segment is drawn as a geodesic; `false` if each segment is drawn as a straight line on the Mercator projection.

#### public boolean isVisible ()

Gets the visibility of this polygon.

##### Returns

- this polygon visibility.

#### public void remove ()

Removes the polygon from the map.

#### public void setClickable (boolean clickable)

Sets the clickability of the polygon. If the polygon is clickable, your app will receive notifications to the `GoogleMap.OnPolygonClickListener` when the user clicks the polygon. The event listener is registered through `setOnPolygonClickListener(GoogleMap.OnPolygonClickListener)`.

##### Parameters

clickable | New clickability setting for the polygon.

#### public void setFillColor (int color)

Sets the fill color of this polygon.

##### Parameters

color | the color in ARGB format

#### public void setGeodesic (boolean geodesic)

Sets whether to draw each segment of the line as a geodesic or not.

##### Parameters

geodesic | if `true`, then each segment is drawn as a geodesic; if `false`, each segment is drawn as a straight line on the Mercator projection.

#### public void setHoles (List<? extends List<LatLng>> holes)

Sets the holes of this polygon. This method will take a copy of the holes, so further mutations to `holes` will have no effect on this polygon.

##### Parameters

holes | an list of holes, where a hole is an list of `LatLng`s.

#### public void setPoints (List<LatLng> points)

Sets the points of this polygon. This method will take a copy of the points, so further mutations to `points` will have no effect on this polygon.

##### Parameters

points | a list of `LatLng`s that are the vertices of the polygon.

#### public void setStrokeColor (int color)

Sets the stroke color of this polygon.

##### Parameters

color | the color in ARGB format

#### public void setStrokeWidth (float width)

Sets the stroke width of this polygon.

##### Parameters

width | the width in display pixels.

#### public void setVisible (boolean visible)

Sets the visibility of this polygon. When not visible, a polygon is not drawn, but it keeps all its other properties.

##### Parameters

visible | if `true`, then the polygon is visible; if `false`, it is not.

#### public void setZIndex (float zIndex)

Sets the zIndex of this polygon. Polygons with higher zIndices are drawn above those with lower indices.

##### Parameters

zIndex | the zIndex of this polygon.