如何在android中根据谷歌地图不同的缩放级别调整谷歌地图标记的大小

Posted

技术标签:

【中文标题】如何在android中根据谷歌地图不同的缩放级别调整谷歌地图标记的大小【英文标题】:How to resize the google map markers based on the google map different zoom level in android 【发布时间】:2019-05-21 22:26:27 【问题描述】:

我在 google map android 中使用了 5 个标记,并且每 5 秒标记位置也随着动画而改变。在这种情况下,我想根据缩放级别动态调整图标的大小。

【问题讨论】:

用你尝试过的代码发布你的代码。 How to specify the size of the icon on the Marker in Google Maps V2 Android的可能重复 【参考方案1】:

试试下面的代码 sn-p,它是用来对付我的。此方法将返回适合您的缩放级别和预期高度和宽度的图像。

public static Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) 
int width = bm.getWidth();
int height = bm.getHeight();
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
return Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);

【讨论】:

【参考方案2】:

您可以通过创建具有自定义高度的位图来做到这一点

int height = 100;// resize according to your zooming level
int width = 100;// resize according to your zooming level
BitmapDrawable bitmapdraw = (BitmapDrawable)getResources().getDrawable(R.mipmap.marker);
Bitmap b=bitmapdraw.getBitmap();
Bitmap finalMarker= Bitmap.createScaledBitmap(b, width, height, false);

并在地图上添加这个位图。

 map.addMarker(new MarkerOptions()
                .position(POSITION)
                .title("Your title")
                .icon(BitmapDescriptorFactory.fromBitmap(finalMarker))
        );

希望这行得通!

【讨论】:

以上是关于如何在android中根据谷歌地图不同的缩放级别调整谷歌地图标记的大小的主要内容,如果未能解决你的问题,请参考以下文章

根据不同的纬度和长度设置谷歌地图的缩放级别

如何根据标记位置设置谷歌地图的缩放级别

如何在所有缩放级别中创建具有相同半径的谷歌地图 v3 圆?

如何在谷歌地图中设置缩放级别

如何在谷歌地图中找到当前的缩放级别?

对于给定的缩放级别和视图,谷歌地图中像素的宽度是多少?