Java 谷歌地图自定义标记android
我正在基于Android的谷歌地图服务制作一张公共交通地图。地图应该包含很多标记(超过300个),当地图放大和缩小(比例)时,它们应该调整大小。现在这些标记彼此重叠,有没有办法创建这样的自定义标记 我自己也试过,但没有成功。使用androidmap-utils-library()标记现在看起来更好了,但它们无法调整大小,看起来也不一样 标准: -标记包含指向所需位置的点,以及点右侧或左侧的文本 -标记应使用位图调整大小。使用bitmapscaleJava 谷歌地图自定义标记android,java,android,google-maps,Java,Android,Google Maps,我正在基于Android的谷歌地图服务制作一张公共交通地图。地图应该包含很多标记(超过300个),当地图放大和缩小(比例)时,它们应该调整大小。现在这些标记彼此重叠,有没有办法创建这样的自定义标记 我自己也试过,但没有成功。使用androidmap-utils-library()标记现在看起来更好了,但它们无法调整大小,看起来也不一样 标准: -标记包含指向所需位置的点,以及点右侧或左侧的文本 -标记应使用位图调整大小。使用bitmapscale Bitmap markerBitmap = B
Bitmap markerBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon_marker,options);
markerBitmap = SubUtils.scaleBitmap(markerBitmap, 70, 70);
然后将其设置为您的标记选项
MarkerOptions marker = new MarkerOptions().icon(BitmapDescriptorFactory.fromBitmap(markerBitmap));
Marker mark = googleMap.addMarker(marker);
编辑
这里是scaleBitmap方法
public static Bitmap scaleBitmap(Bitmap bitmap, int newWidth, int newHeight) {
Bitmap scaledBitmap = Bitmap.createBitmap(newWidth, newHeight, Bitmap.Config.ARGB_8888);
float scaleX = newWidth / (float) bitmap.getWidth();
float scaleY = newHeight / (float) bitmap.getHeight();
float pivotX = 0;
float pivotY = 0;
Matrix scaleMatrix = new Matrix();
scaleMatrix.setScale(scaleX, scaleY, pivotX, pivotY);
Canvas canvas = new Canvas(scaledBitmap);
canvas.setMatrix(scaleMatrix);
canvas.drawBitmap(bitmap, 0, 0, new Paint(Paint.FILTER_BITMAP_FLAG));
return scaledBitmap;
}
建议:您仍然可以使用
android地图utils
,并创建自己的IconGenerator
类。您只需将布局文件更改为布局文件。这可能有助于您解决此问题。这个答案解决了自定义标记的问题。