地球表面上的多边形。多边形可能是凸面或凹形,可能跨越 180 度子午线,也可能具有未填充的孔。它具有以下属性:
- 大纲
- 轮廓由顺时针或逆时针顺序的一系列顶点指定。起点和终点无需重合;否则,多边形将自动闭合。线段在两个方向(东或西)中较短的连续点之间绘制。
- 孔
- 孔是多边形内部未填充的区域。孔的指定方式与轮廓完全相同。孔必须完全位于轮廓之内。可以指定多个孔,但不支持重叠孔。
- 描边宽度
- 线段宽度(以屏幕像素为单位)。宽度是恒定的,与相机的缩放级别无关。默认值为 10。
- 描边颜色
- 采用 ARGB 格式的线段颜色,与
Color
使用的格式相同。默认值为黑色 (0xff000000
)。 - 描边连接类型
- 连接类型用于定义连接多边形轮廓的所有顶点处的相邻线段时使用的形状。如需了解支持的连接类型,请参阅
JointType
。默认值为DEFAULT
。 - 描边图案
- 纯色(默认,由
null
表示)或一系列要沿多边形轮廓重复的PatternItem
对象。可用的PatternItem
类型:Gap
(由间距长度以像素为单位定义)、Dash
(由描边宽度和短划线长度(以像素为单位)定义)和Dot
(圆形,位于多边形轮廓的中心,直径由描边宽度(以像素为单位)定义)。 - 填充颜色
- 以 ARGB 格式填充颜色,与
Color
使用的格式相同。默认值为透明 (0x00000000
)。如果多边形几何图形未正确指定(请参阅上文的“轮廓”和“孔”),则系统不会绘制任何填充。 - Z-index
- 此多边形相对于其他叠加层的绘制顺序,其他叠加层包括
Polyline
、Circle
、GroundOverlay
和TileOverlay
,但不包括Marker
。Z-index 较大的叠加层在 Z-index 较小的叠加层上绘制。Z-index 值相同的叠加层可按任意顺序绘制。默认值为 0。 - 可见性
- 指示多边形是否可见,即是否在地图上绘制。不可见的多边形不会绘制,但会保留其所有其他属性。默认值为
true
,即可见。 - 测地状态
- 指示多边形的线段是否应绘制为测地线,而不是墨卡托投影法上的直线。测地线是地球表面两点之间的最短路径。系统在构造测地曲线时假设地球是一个球面
- 可点击性
- 如需处理用户点击多边形时触发的事件,请将此属性设置为
true
。您可以随时更改此值。默认值为false
。如果此属性设为true
,您的应用将收到通过setOnPolygonClickListener(GoogleMap.OnPolygonClickListener)
注册的GoogleMap.OnPolygonClickListener
的通知。 - 标记
- 与多边形关联的
Object
。例如,Object
可以包含有关多边形所代表内容的数据。这比存储单独的Map<Polygon, Object>
更简单。再举一例,您可以关联与数据集中的 ID 对应的String
ID。Google Maps SDK for Android 既不会读取也不会写入此属性。
此类中的方法必须在 Android 界面线程上调用。否则,系统会在运行时抛出 IllegalStateException
。
示例
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));
开发者指南
如需了解详情,请阅读形状开发者指南。
公共方法摘要
布尔值 | |
整型 |
getFillColor()
获取此多边形的填充颜色。
|
List<列表<LatLng>> |
getHoles()
此时 返回该多边形的孔的快照。
|
字符串 |
getId()
获取此多边形的 ID。
|
列表<LatLng> |
getPoints()
此时 返回该多边形顶点的快照。
|
整型 |
getStrokeColor()
获取此多边形的描边颜色。
|
整型 |
getStrokeJointType()
获取多边形轮廓的所有顶点使用的描边连接类型。
|
List<PatternItem>PatternItem> |
getStrokePattern()
获取此多边形轮廓的描边图案。
|
浮点数 |
getStrokeWidth()
获取此多边形的描边宽度。
|
对象 |
getTag()
获取多边形的标记。
|
浮点数 |
getZIndex()
获取此多边形的 zIndex。
|
整型 |
hashCode()
|
布尔值 |
isClickable()
获取多边形的可点击性。
|
布尔值 |
isGeodesic()
获取线条的每段是否绘制为测地线的信息。
|
布尔值 |
isVisible()
获取此多边形的可见性。
|
void |
remove()
从地图中删除多边形。
|
void |
setClickable(布尔值可点击)
设置多边形的可点击性。
|
void |
setFillColor(int 颜色)
设置此多边形的填充颜色。
|
void |
setGeodesic(布尔值测地线)
设置是否将线条的各个线段绘制为测地线。
|
void | |
void | |
void |
setStrokeColor(整数颜色)
设置此多边形的描边颜色。
|
void |
setStrokeJointType(int jointType)
用于设置多边形轮廓的所有顶点的接合类型。
|
void | |
void |
setStrokeWidth(浮点宽度)
设置此多边形的描边宽度。
|
void |
setTag(对象标记)
设置多边形的标记。
|
void |
setVisible(布尔值 visible)
用于设置此多边形的可见性。
|
void |
setZIndex(float zIndex)
设置此多边形的 zIndex。
|
继承的方法摘要
公共方法
public boolean 等于 (其他对象)
public int getFillColor ()
获取此多边形的填充颜色。
返回
- 以 ARGB 格式显示颜色。
public List<List<LatLng>> getHoles ()
此时 返回该多边形的孔的快照。返回的列表是孔的列表的副本,因此对多边形孔数的更改不会通过此列表反映,对此列表的更改也不会通过多边形反映。
public String getId ()
获取此多边形的 ID。此 ID 对于地图上的所有多边形而言是唯一的。
public List<LatLng> getPoints ()
此时 返回该多边形顶点的快照。由于返回的列表是顶点列表的副本,因此对多边形顶点的更改不会反映在此列表上,对列表的更改也不会通过多边形反映。如需更改多边形的顶点,请调用 setPoints(List)
。
public int getStrokeColor ()
获取此多边形的描边颜色。
返回
- 以 ARGB 格式显示颜色。
public float getStrokeWidth ()
获取此多边形的描边宽度。
返回
- 宽度(以屏幕像素为单位)。
public Object getTag ()
获取多边形的标记。
返回
- 如果使用
setTag
设置标记,则为标记;如果未设置标记,则为null
。
公共 浮点数 getZIndex ()
获取此多边形的 zIndex。
返回
- 多边形的 zIndex。
public int hashCode ()
public boolean isClickable ()
获取多边形的可点击性。如果该多边形可点击,则当用户点击该多边形时,您的应用会收到 GoogleMap.OnPolygonClickListener
的通知。事件监听器通过 setOnPolygonClickListener(GoogleMap.OnPolygonClickListener)
注册。
返回
- 如果多边形可点击,则返回
true
;否则返回false
。
public boolean isGeodesic ()
获取线条的每段是否绘制为测地线的信息。
返回
- 如果每个线段绘制为测地线,则为
true
;如果每个线段在墨卡托投影法上绘制为直线,则为false
。
public boolean isVisible ()
获取此多边形的可见性。
返回
- 此多边形的可见性。
public void remove ()
从地图中删除多边形。移除多边形后,其所有方法的行为将处于未定义状态。
public void setClickable (布尔值可点击)
设置多边形的可点击性。如果该多边形可点击,则当用户点击该多边形时,您的应用会收到 GoogleMap.OnPolygonClickListener
的通知。事件监听器通过 setOnPolygonClickListener(GoogleMap.OnPolygonClickListener)
注册。
参数
可点击 | 为多边形新增了可点击性设置。 |
---|
public void setFillColor (int color)
设置此多边形的填充颜色。
参数
颜色 | ARGB 格式的颜色 |
---|
public void setGeodesic (boolean geodesic)
设置是否将线条的各个线段绘制为测地线。
参数
geodesic | 如果为 true ,则每个线段会绘制为测地线;如果为 false ,则每个线段会在墨卡托投影法上绘制为一条直线。
|
---|
public void setHoles (List<? extends List<LatLng>> holes)
设置此多边形的孔。此方法将获取孔的副本,因此对 holes
的进一步更改将不会对此多边形产生任何影响。
参数
洞 | 孔列表,其中孔是 LatLng 的列表。 |
---|
public void setPoints (List<LatLng> points)
设置此多边形的点。此方法将获取这些点的副本,因此,如果进一步更改 points
,则不会对此多边形产生任何影响。
参数
积分 | 作为多边形顶点的 LatLng 的列表。 |
---|
public void setStrokeColor (int color)
设置此多边形的描边颜色。
参数
颜色 | ARGB 格式的颜色 |
---|
public void setStrokeJointType (int JointType)
public void setStrokePattern (List<PatternItem> pattern)
设置多边形轮廓的描边图案。默认描边图案是纯色,由 null
表示。
参数
模式 | 描边图案。 |
---|
public void setStrokeWidth (浮点宽度)
设置此多边形的描边宽度。
参数
width | 宽度(以显示屏像素为单位)。 |
---|
public void setTag (对象标记)
设置多边形的标记。
您可以使用此属性将任意 Object
与此多边形相关联。例如,Object
可以包含有关多边形所代表内容的数据。这比存储单独的 Map<Polygon, Object>
更简单。再举一例,您可以关联与数据集中的 ID 对应的 String
ID。Google Maps SDK for Android 既不会读取也不会写入此属性。您有责任在不再需要该标记时调用 setTag(null)
将其清除,以防止应用中出现内存泄漏。
参数
标记 | 如果为 null,则会清除标记。 |
---|
public void setVisible (boolean visible)
用于设置此多边形的可见性。在不可见时,多边形不会绘制,但会保留其所有其他属性。
参数
visible | 如果为 true ,则表示多边形可见;如果为 false ,则表示多边形不可见。 |
---|
public void setZIndex (float zIndex)
设置此多边形的 zIndex。zIndic 较高的多边形会绘制在索引较低的多边形之上。
参数
zIndex | 此多边形的 zIndex。 |
---|