您无法访问蓝点资源,因为它不是公开的。无论如何,它是一个蓝点,其中轴承零件作为资源的一部分添加。
我们不知道如何创建它(没有解释或源代码),但您可以尝试通过以下方式复制它:
创建一个资源,该资源是一个点(根据需要为蓝色或红色),并且其顶部有“方位”指示器(如标准资源),然后将“箭头”指向资源的上中心部分。
将其作为标记资源,将其设置为平面( setFlat(boolean flat) )并根据所需的方位更改旋转;从文档中:
Rotation
标记围绕标记顺时针旋转(以度为单位)
标记的锚点。旋转轴垂直于
标记。旋转 0 对应于默认位置
标记。当标记在地图上平坦时,默认位置是
北对齐并且旋转使得标记始终保持不变
地图上平坦。当标记为广告牌时,默认位置
指向上方并且旋转使得标记始终处于
面对相机。默认值为 0。
您必须注意标记的“锚点”,必须将其设置为点的中心,而不是资源的中心(否则将无法正常工作)。为此,请将点放置在资源的中心(根据方位箭头尺寸)或在添加标记时更改锚点:
setAnchor(浮动锚点U,浮动锚点V)
文档是https://developers.google.com/android/reference/com/google/android/gms/maps/model/Marker#setAnchor(浮动,浮动) https://developers.google.com/android/reference/com/google/android/gms/maps/model/Marker#setAnchor(float,%20float)
将点置于资源中心更容易,但资源会更大。
关于辉光这是“更糟糕”的做法,因为你不能以与他们相同的方式绘制它(同样,我假设他们没有使用标准 API,我不知道)。
您可以添加一个中心与标记相同的圆形,并稍微调整一下颜色和圆形尺寸:
// Instantiates a new CircleOptions object and defines the center and radius
CircleOptions circleOptions = new CircleOptions()
.center(new LatLng(POS_LAT, POS_LNG))
.radius(30) // radius in meters
.fillColor(0x8800CCFF) //this is a half transparent blue, change "88" for the transparency
.strokeColor(Color.BLUE) //The stroke (border) is blue
.strokeWidth(2)); // The width is in pixel, so try it!
// Get back the mutable Circle
Circle circle = myMap.addCircle(circleOptions);
我唯一无能为力的是缩小时点的尺寸。不幸的是,gmaps 会自动调整它的大小,所以为了保持它的小,你必须使用 GoogleMap.OnCameraChangeListener 并在缩放时调整标记的大小(这是一个好方法,但这样做很混乱!)