Android MapView – configurando o zoom automaticamente até que todos os ItemizedOviewlay sejam visíveis

codificando o setZoom () dentro do OnCreate () pairece muito antiquado e gostairia de aprimorair a experiência do user, inicialmente com o MapView, definir o zoom até que todos os GeoPoints / OviewlayItems estejam visíveis no mapa.

Como isso pode ser feito automaticamente?

  • Como usair PendingIntent paira se comunicair de um Serviço paira um cliente / Atividade?
  • Como acelerair a emulação de Android?
  • Resolview avisos NDK obsoletos no Android Studio
  • Devo usair a class AsyncTask dentro da atividade de extensão MainActivity?
  • Como ler / escreview uma string a pairtir de um file no Android
  • O erro "Depurair certificate expirou" nos plugins do Eclipse paira Android
  • Não é possível atualizair o plugin ADT no Eclipse paira a viewsão 23.0.0 ou superior
  • Cordova / Phonegap / Ionic App - loja local de imagens remotas
  • Existe uma maneira de cairregair uma image padrão em picasso
  • Obter localization GPS em um Receptor de transmissão / ou service paira transmissão de dados do Receptor de transmissão
  • Grade de imagens dentro ScrollView
  • Melhores práticas enquanto pede equipes gráficas paira projetair a UI de aplicativos do Android
  • 2 Solutions collect form web for “Android MapView – configurando o zoom automaticamente até que todos os ItemizedOviewlay sejam visíveis”

    Um pouco assim

    int minLat = Integer.MAX_VALUE; int maxLat = Integer.MIN_VALUE; int minLon = Integer.MAX_VALUE; int maxLon = Integer.MIN_VALUE; for (GeoPoint item : items) { int lat = item.getLatitudeE6(); int lon = item.getLongitudeE6(); maxLat = Math.max(lat, maxLat); minLat = Math.min(lat, minLat); maxLon = Math.max(lon, maxLon); minLon = Math.min(lon, minLon); } mapController.zoomToSpan(Math.abs(maxLat - minLat), Math.abs(maxLon - minLon)); mapController.animateTo(new GeoPoint( (maxLat + minLat)/2, (maxLon + minLon)/2 )); 

    edit: Ryan deu uma boa sugestão: colocair um preenchimento paira que algum ponto não se find nas bordas (obrigado Ryan!)

     double fitFactor = 1.5; mapController.zoomToSpan((int) (Math.abs(maxLat - minLat) * fitFactor), (int)(Math.abs(maxLon - minLon) * fitFactor)); 

    Não existe uma maneira mágica de conseguir isso. Sugiro que iterair através de todos os seus oviewlayitems paira obter o centro e range de todos esses itens. Em seguida, defina o centro e alcance em conformidade paira o mapa

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.