SORU
9 Mart 2011, ÇARŞAMBA


-Ayar otomatik olarak tüm İtemizedOverlay kadar zoom'un Android MapView görünür

sabit kodlama setZoom() içinde onCreate() hissediyor çok çağdışı istiyorum geliştirmek kullanıcı deneyimi başta olmak MapView set zoom kadar tüm GeoPoints / Overlayİtems görünür haritada.

Nasıl bu otomatik sihirli yapılabilir mi?

CEVAP
9 Mart 2011, ÇARŞAMBA


Bu gibi biraz

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 güzel bir öneri verdi : nokta bazı kenarlarında (teşekkürler Ryan!) yalan söyleme böylece bir dolgu koymak için

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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andytokkallos

    Andytokkallo

    27 Kasım 2007
  • lifeisforsharingDT

    lifeisforsha

    18 Mayıs 2011
  • Phandroid

    Phandroid

    26 Ocak 2009