はい、できます!そして、これがその方法です...
// mMapは、すでに初期化されているGoogleMapのインスタンスです。
mMap.setOnCameraChangeListener(getCameraChangeListener());
getCameraChangeListener()
public OnCameraChangeListener getCameraChangeListener()
{
return new OnCameraChangeListener()
{
@Override
public void onCameraChange(CameraPosition position)
{
addItemsToMap(this.items);
}
};
}
//「Item」クラスには、少なくとも一意のID、緯度、経度が必要です。
private void addItemsToMap(List<Item> items)
{
if(this.mMap != null)
{
LatLngBounds bounds = this.mMap.getProjection().getVisibleRegion().latLngBounds;
for(Item item : items)
{
if(bounds.contains(new LatLng(item.getLatitude(), item.getLongitude()))
{
if(!courseMarkers.containsKey(item.getId()))
{
this.courseMarkers.put(item.getId(), this.mMap.addMarker(getMarkerForItem(item)));
}
}
else
{
if(courseMarkers.containsKey(item.getId()))
{
courseMarkers.get(item.getId()).remove();
courseMarkers.remove(item.getId());
}
}
}
}
}