我想在我的Google地图上使用折线连接两个标记。这是我的代码:
mMap.addMarker(new MarkerOptions()
.position(new LatLng(0, 0))
.title("Pos")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.point)));
mMap.addPolyline(new PolylineOptions()
.add(new LatLng(0,0), new LatLng(20,20))
.width(5)
.color(Color.rgb(255, 161, 74)));
折线工作但我的自定义标记在线和标记之间有一个边距。
我想删除此保证金。 我怎么能这样做?
谢谢:)
答案 0 :(得分:3)
问题是默认情况下,标记的锚点位于图像底部的中心。如果仔细查看自定义标记的位置,您会发现它们不是在您设置的纬度/长度上居中,而是位于您设置的位置上方。
如果你将锚点设置为0.5,0.5,你应该得到所需的效果。
以下是文档中的信息,也可以找到here
public void setAnchor(float anchorU,float anchorV)
设置标记的锚点。
锚点指定图标图像中固定在地球表面上标记位置的点。
锚点在连续空间[0.0,1.0] x [0.0,1.0]中指定,其中(0,0)是图像的左上角,(1,1)是底部 - 右上角。 W x H图像中的锚点是(W + 1)x(H + 1)网格中最近的离散网格点,通过缩放随后的舍入而获得。例如,在4 x 2图像中,锚点(0.7,0.6)解析为(3,1)处的网格点。
*-----+-----+-----+-----*
| | | | |
| | | | |
+-----+-----+-----+-----+
| | | X | | (U, V) = (0.7, 0.6)
| | | | |
*-----+-----+-----+-----*
*-----+-----+-----+-----*
| | | | |
| | | | |
+-----+-----+-----X-----+ (X, Y) = (3, 1)
| | | | |
| | | | |
*-----+-----+-----+-----*
参数 anchorU锚点的u坐标,作为图像宽度的比例(在[0,1]范围内) anchorV锚点的v坐标,作为图像高度的比例(在[0,1]范围内)