中心标记图标(Android)

IIR*_*hII 7 android google-maps marker

我意识到在标记上设置图标,它将LatLng中心定位在图标drawable的底部.我像这样设置标记:

BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.mi_posicion_marker);
mMarkerMiPosicion = mMap.addMarker(new MarkerOptions().position(new LatLng(location.getLatitude(), location.getLongitude())).title("I am here!").icon(icono));
Run Code Online (Sandbox Code Playgroud)

如何"标记"可绘制图标中心的标记位置?

N D*_*tti 16

你必须使用"Anchor"参数来选择位置:https: //developers.google.com/android/reference/com/google/android/gms/maps/model/MarkerOptions.html#anchor(float),漂浮)

指定锚点位于标记图像中的特定点.

锚点指定图标图像中锚定到地球表面上标记位置的点.

锚点在连续空间[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)处的网格点.

在提供的链接上有一个ASCII图像,可以很好地解释它是如何管理的.针对您的具体问题;

BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.mi_posicion_marker);
mMarkerMiPosicion = mMap.addMarker(
    new MarkerOptions().position(new LatLng(location.getLatitude(), location.getLongitude()))
    .title("I am here!").icon(icono).anchor(0.5f,0.5f));
Run Code Online (Sandbox Code Playgroud)