多段线是一系列点,其中线段是在连续的点之间绘制的。多段线具有以下属性:
- 积分
- 线的顶点。线段是在连续的点之间绘制的。多段线在默认情况下不闭合;要形成闭合多段线,起点和终点必须相同。
- 宽度
- 线段宽度(以屏幕像素为单位)。宽度是恒定的,与相机的缩放级别无关。默认值为 10。
- 颜色
- 采用 ARGB 格式的线段颜色,与
Color
使用的格式相同。默认值为黑色 (0xff000000
)。 - 开始/结束上限
- 定义要在多段线起点或终点使用的形状。支持的上限类型:
ButtCap
、SquareCap
、RoundCap
(适用于纯描边图案)和CustomCap
(适用于任何描边图案)。起始和结束位置的默认值:ButtCap
。 - 连接类型
- 连接类型定义在多段线的所有顶点(起始顶点和结束顶点除外)连接相邻线段时要使用的形状。如需了解支持的联接类型,请参阅
JointType
。默认值为DEFAULT
。 - 描边图案
- 纯色(默认,由
null
表示)或一系列要沿线条重复的PatternItem
对象。可用的PatternItem
类型:Gap
(由间距长度(以像素为单位)定义)、Dash
(由线宽和短划线长度(以像素为单位)定义)和Dot
(圆形,位于线条上,直径由线宽(以像素为单位)定义)。 - Z-index
- 此图块叠加层相对于其他叠加层的绘制顺序(包括
GroundOverlay
、TileOverlay
、Circle
和Polygon
,但不包括Marker
)。Z-index 较大的叠加层在 Z-index 较小的叠加层上绘制。Z-index 相同的叠加层可按任意顺序绘制。默认 ZIndex 为 0。 - 可见性
- 指示多段线是否可见,即是否在地图上绘制。不可见多段线不会绘制,但会保留其所有其他属性。默认值为
true
,即可见。 - 测地状态
- 指示多段线的线段是否应绘制为测地线,而不是墨卡托投影法上的直线。测地线是地球表面两点之间的最短路径。系统在构造测地曲线时假设地球是一个球面
- 可点击性
- 如需处理用户点击多段线时触发的事件,请将此属性设置为
true
。您可以随时更改此值。默认值为false
。如果此属性设为true
,您的应用将收到通过setOnPolylineClickListener(GoogleMap.OnPolylineClickListener)
注册的GoogleMap.OnPolylineClickListener
的通知。 - 标记
- 与多段线关联的
Object
。例如,Object
可以包含有关多段线所代表内容的数据。这比存储单独的Map<Polyline, Object>
更简单。再举一例,您可以关联与数据集中的 ID 对应的String
ID。Google Maps SDK for Android 既不会读取也不会写入此属性。 - Span
- 定义跨度,该跨度具有用于渲染此多段线的不同样式。您可以使用此属性在多段线的不同线段上创建一条具有不同
StrokeStyle
的多段线。
此类中的方法必须在 Android 界面线程上调用。否则,系统会在运行时抛出 IllegalStateException
。
示例
GoogleMap map;
// ... get a map.
// Add a thin red line from London to New York.
Polyline line = map.addPolyline(new PolylineOptions()
.add(new LatLng(51.5, -0.1), new LatLng(40.7, -74.0))
.width(5)
.color(Color.RED));
开发者指南
如需了解详情,请阅读形状开发者指南。
公共方法摘要
布尔值 | |
整型 |
getColor()
获取此多段线的颜色。
|
上限 |
getEndCap()
获取此多段线末端的顶端。
|
字符串 |
getId()
获取此多段线的 ID。
|
整型 |
getJointType()
获取折线的所有顶点(起始顶点和结束顶点除外)使用的连接类型。
|
List<PatternItem>PatternItem> |
getPattern()
获取此多段线的描边图案。
|
列表<LatLng> |
getPoints()
此时 返回该多段线顶点的快照。
|
上限 |
getStartCap()
获取此多段线起始顶点的顶端。
|
对象 |
getTag()
获取多段线的标记。
|
浮点数 |
getWidth()
获取此多段线的宽度。
|
浮点数 |
getZIndex()
获取此多段线的 zIndex。
|
整型 |
hashCode()
|
布尔值 |
isClickable()
获取多段线的可点击性。
|
布尔值 |
isGeodesic()
获取线条的每段是否绘制为测地线的信息。
|
布尔值 |
isVisible()
获取此多段线的可见性。
|
void |
remove()
用于从地图中移除此多段线。
|
void |
setClickable(布尔值可点击)
设置多段线的可点击性。
|
void |
setColor(int color)
用于设置此多段线的颜色。
|
void | |
void |
setGeodesic(布尔值测地线)
设置是否将线条的各个线段绘制为测地线。
|
void |
setJointType(int jointType)
设置多段线除起始顶点和结束顶点以外的所有顶点的接合类型。
|
void | |
void | |
void | |
void | |
void |
setTag(对象标记)
设置多段线的标记。
|
void |
setVisible(布尔值 visible)
用于设置此多段线的可见性。
|
void |
setWidth(浮点宽度)
用于设置此多段线的宽度。
|
void |
setZIndex(float zIndex)
设置此多段线的 zIndex。
|
继承的方法摘要
公共方法
public boolean 等于 (其他对象)
public int getColor ()
获取此多段线的颜色。
返回
- 以 ARGB 格式显示颜色。
public String getId ()
获取此多段线的 ID。此 ID 在地图上的所有多段线中都是唯一的。
返回
- 此多段线的 ID。
public List<LatLng> getPoints ()
此时 返回该多段线顶点的快照。返回的列表是顶点列表的副本,因此对多段线顶点所做的更改不会反映在此列表上,对此列表的更改也不会反映在多段线中。如需更改多段线的顶点,请调用 setPoints(List)
。
public Object getTag ()
获取多段线的标记。
返回
- 如果使用
setTag
设置标记,则为标记;如果未设置标记,则为null
。
public float getWidth ()
获取此多段线的宽度。
返回
- 宽度(以屏幕像素为单位)。
公共 浮点数 getZIndex ()
获取此多段线的 zIndex。
返回
- 多段线的 zIndex。
public int hashCode ()
public boolean isClickable ()
获取多段线的可点击性。如果多段线可点击,则当用户点击多段线时,您的应用会向 GoogleMap.OnPolylineClickListener
发送通知。事件监听器通过 setOnPolylineClickListener(GoogleMap.OnPolylineClickListener)
注册。
返回
- 如果多段线可点击,则返回
true
;否则返回false
。
public boolean isGeodesic ()
获取线条的每段是否绘制为测地线的信息。
返回
- 如果每个线段绘制为测地线,则为
true
;如果每个线段在墨卡托投影法上绘制为直线,则为false
。
public boolean isVisible ()
获取此多段线的可见性。
返回
- 此多段线的可见性。
public void remove ()
用于从地图中移除此多段线。移除多段线后,其所有方法的行为将处于未定义状态。
public void setClickable (布尔值可点击)
设置多段线的可点击性。如果多段线可点击,则当用户点击多段线时,您的应用会向 GoogleMap.OnPolylineClickListener
发送通知。事件监听器通过 setOnPolylineClickListener(GoogleMap.OnPolylineClickListener)
注册。
参数
可点击 | 为多段线新增了可点击性设置。 |
---|
public void setColor (int color)
用于设置此多段线的颜色。
参数
颜色 | ARGB 格式的颜色 |
---|
public void setGeodesic (boolean geodesic)
设置是否将线条的各个线段绘制为测地线。
参数
geodesic | 如果为 true ,则每个线段会绘制为测地线;如果为 false ,则每个线段会在墨卡托投影法上绘制为一条直线。
|
---|
public void setJointType (int jointType)
public void setPoints (List<LatLng> points)
设置此多段线的点。此方法将获取这些点的副本,因此,进一步更改 points
不会对此多段线产生任何影响。
参数
积分 | 作为多段线顶点的 LatLng 的列表。 |
---|
public void setStartCap (Cap startCap)
用于设置此多段线的起始顶点处的顶端。默认的起始上限为 ButtCap
。
参数
startCap | 起始上限。值不能为 null 。
|
---|
public void setTag (对象标记)
设置多段线的标记。
您可以使用此属性将任意 Object
与此多段线相关联。例如,Object
可以包含有关多段线所代表内容的数据。这比存储单独的 Map<Polyline, Object>
更简单。再举一例,您可以关联与数据集中的 ID 对应的 String
ID。Google Maps SDK for Android 既不会读取也不会写入此属性。您有责任在不再需要该标记时调用 setTag(null)
将其清除,以防止应用中出现内存泄漏。
参数
标记 | 如果为 null,则会清除标记。 |
---|
public void setVisible (boolean visible)
用于设置此多段线的可见性。如果多段线不可见,则系统不会绘制多段线,但会保留其所有其他属性。
参数
visible | 如果为 true ,则多段线可见;如果为 false ,则不可见。
|
---|
public void setWidth (浮点宽度)
用于设置此多段线的宽度。
参数
width | 宽度(以屏幕像素为单位) |
---|
public void setZIndex (float zIndex)
设置此多段线的 zIndex。zIndic 较高的多段线在索引较低的多段线之上绘制。
参数
zIndex | 此多段线的 zIndex。 |
---|