Rob*_*yal 2 android google-maps-markers android-maps android-mapview android-maps-v2
伙计我必须在谷歌地图上用缩放显示标记.当用户放大或缩小标记时,可以看到屏幕上的地图区域.如何使用Android谷歌地图?
好的,你可以使用CameraChangeListener:
private HashMap<Integer, Marker> courseMarkers = new HashMap<Integer, Marker>();
//all your visible markers
ArrayList<Item> yourMarkerList = new ArrayList<Item>();
//method to add all your markers with unique ids
addItemsToMap(); //first call to initially show the markers you want
googleMap.setOnCameraChangeListener(new OnCameraChangeListener() {
private float currentZoom = -1; //keep track of your current zoom level
@Override
public void onCameraChange(CameraPosition camera) {
    if (camera.zoom != currentZoom){
        currentZoom = camera.zoom;
        //here you will then check your markers
        addItemsToMap(yourMarkerList);
    }
}
});
您将需要一个具有唯一int id和MarkerOptions变量的类Item
private void addItemsToMap(List<Item> items)
{
if(this.mMap != null)
{
    //This is the current user-viewable region of the map
    LatLngBounds bounds = this.mMap.getProjection().getVisibleRegion().latLngBounds;
    //Loop through all the items that are available to be placed on the map
    for(Item m : item) 
    {
        //If the item is within the the bounds of the screen
        if(bounds.contains(item.getMarker().getPosition()))
        {
            //If the item isn't already being displayed
            if(!courseMarkers.containsKey(item.getId()))
            {
                //Add the Marker to the Map and keep track of it with the HashMap
                //getMarkerForItem just returns a MarkerOptions object
                this.courseMarkers.put(item.getId(), this.googleMap.addMarker(item.getMarker())); //getmarkerforitem
            }
        }
        //If the marker is off screen
        else
        {
            //If the course was previously on screen
            if(courseMarkers.containsKey(item.getId()))
            {
                //1. Remove the Marker from the GoogleMap
                courseMarkers.get(item.getId()).remove();
                //2. Remove the reference to the Marker from the HashMap
                courseMarkers.remove(item.getId());
            }
        }
    }
}
}
这应该做到这一点
| 归档时间: | 
 | 
| 查看次数: | 1790 次 | 
| 最近记录: |