Я не хотел бы предлагать это, но если вы должны попробовать - сначала позвоните
gmap.fitBounds(bounds);
Затем создайте новый Thread / AsyncTask, оставьте его в спящем режиме на 20-50 мс или около того, а затем вызовите
gmap.setZoom( Math.max(6, gmap.getZoom()) );
из потока пользовательского интерфейса (используйте обработчик или метод onPostExecute
для AsyncTask).
Я не знаю, работает ли это, просто предложение. Кроме этого вам нужно как-то самостоятельно рассчитать уровень масштабирования по вашим точкам, проверить, не слишком ли он низкий, исправить его, а затем просто позвонить gmap.setZoom(correctedZoom)