2010-08-31 112 views
4

我已经看到有关此问题的几个问题,但没有可靠的答案。当用户放大/缩小时缩放Android MapView标记

我有一个MapView,根据用户放大或缩小的距离,可以在地图上生成多达1600个位置。截至目前,我的应用程序中只有一个可绘制的标记。如何检测用户是否放大/缩小,然后相应地缩放标记。我并不关心缩放部分,而是使用缩放监听部分。有没有人为这个小问题开发过解决方案,或者可以指出我正确的方向来创建自己的?

另外,据我所知,没有Android提供的默认标记。我对此有纠正吗?如果Android有一个内置的标记,可以根据缩放级别处理缩放比例,那将会很不错。

回答

1

这是一个关于缩放事件线程,它可以帮助你: On zoom event

希望它可以帮助基于变焦

0

标记不会改变大小。如果您想要这种效果,请使用GroundOverlays。 src

GoogleMap map = ...; // get a map. 
BitmapDescriptor image = ...; // get an image. 
LatLngBounds bounds = ...; // get a bounds 
// Adds a ground overlay with 50% transparency. 
GroundOverlay groundOverlay = map.addGroundOverlay(new GroundOverlayOptions() 
    .image(image) 
    .positionFromBounds(bounds) 
    .transparency(0.5)); 

地面叠加层是固定到地图和与地图变焦缩放的图像。请参阅API更多信息

参见相关的帖子:Scale Map Markers by Zoom, Android

0

我'使用

LatLng latLng = new LatLng(-16.50881576338701,-68.13492067606603); 
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.raw.ic_car_1); 
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(bitmap); 
     googleMap.addGroundOverlay(new GroundOverlayOptions() 
      .image(bitmapDescriptor) 
      .position(latLng,100)); 

该文档在google maps docs GroundOverlayOptions