Кажется, проблема не в самом маркере - его размер не изменился при масштабировании.Например, с маркером drawable ic_blue_circle.xml
вроде:
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="496.158dp"
android:height="496.158dp"
android:viewportWidth="496.158"
android:viewportHeight="496.158">
<path
android:fillColor="#0000FF"
android:pathData="M496.158,248.085c0-137.021-111.07-248.082-248.076-248.082C111.07,0.003,0,111.063,0,248.085 c0,137.002,111.07,248.07,248.082,248.07C385.088,496.155,496.158,385.087,496.158,248.085z" />
<path
android:fillColor="#FFFFFF"
android:pathData="M351.08,248.083c0-56.891-46.115-103.002-103-103.002c-56.886,0-103.002,46.111-103.002,103.002 c0,56.881,46.116,102.996,103.002,102.996C304.965,351.079,351.08,304.964,351.08,248.083z" />
</vector>
и кодом вроде:
@Override
public void onMapReady(GoogleMap googleMap) {
mGoogleMap = googleMap;
List<LatLng> sourcePoints = new ArrayList<>();
addCircleMarker(new LatLng(49.182856, -122.844883));
sourcePoints.add(new LatLng(49.182856, -122.844883));
sourcePoints.add(new LatLng(49.183452, -122.846288));
sourcePoints.add(new LatLng(49.183761, -122.846739));
sourcePoints.add(new LatLng(49.184343, -122.847050));
sourcePoints.add(new LatLng(49.186917, -122.847061));
sourcePoints.add(new LatLng(49.188655, -122.847885));
sourcePoints.add(new LatLng(49.189560, -122.847885));
addCircleMarker(new LatLng(49.189560, -122.847885));
PolylineOptions polyLineOptions = new PolylineOptions();
polyLineOptions.addAll(sourcePoints);
polyLineOptions.width(10);
polyLineOptions.color(Color.BLUE);
mGoogleMap.addPolyline(polyLineOptions);
mGoogleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(sourcePoints.get(0), 15));
}
где:
public void addCircleMarker(LatLng latLng) {
Drawable circleDrawable = ContextCompat.getDrawable(getApplicationContext(), R.drawable.ic_blue_circle);
BitmapDescriptor markerIcon = getMarkerIconFromDrawable(circleDrawable, 30, 30);
mGoogleMap.addMarker(new MarkerOptions()
.position(latLng)
.anchor(0.5f, 0.5f)
.icon(markerIcon)
);
}
private BitmapDescriptor getMarkerIconFromDrawable(Drawable drawable, int width, int height) {
Canvas canvas = new Canvas();
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
canvas.setBitmap(bitmap);
drawable.setBounds(0, 0, width, height);
drawable.draw(canvas);
return BitmapDescriptorFactory.fromBitmap(bitmap);
}
у вас есть что-то вроде этого:
и размер кругов при изменении масштаба не изменился: