用户放大/缩小时缩放Android MapView标记

时间:2010-08-31 15:53:52

标签: android android-mapview

我已经看到了一些关于此的问题,但没有可靠的答案。

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

另外,据我所知,没有Android提供的默认标记。我对此是否正确?如果Android有一个内置标记来处理基于缩放级别的缩放比例,那就太好了。

3 个答案:

答案 0 :(得分:1)

这是关于缩放事件的一个主题,它可以帮助您: On zoom event

希望有所帮助

答案 1 :(得分: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

答案 2 :(得分: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

中的文档