2010-12-01 3 views
2

Ich habe zwei Markierungen auf einer Google-Karte platziert. Einer ist in den USA und der andere ist irgendwo in Asien. Google gibt nur die Zoomstufen 1, 2, 3, 4, 5, 6 usw. an.So stellen Sie die Zoomstufe einer Google-Karte entsprechend der Markerpositionen ein

Ich möchte die Zoomstufe nicht fest codieren. Wie kann ich alle Markierungen abhängig von der Entfernung anzeigen? I.e. Wenn zwei Objekte sehr nahe beieinander oder in der gleichen Stadt liegen, sollte eine enge Zoomstufe verwendet werden, und wenn sie weit voneinander entfernt sind, sollte die maximale Zoomstufe verwendet werden.

+0

sprechen Sie über Google Maps API, die im Internet oder über die MapView-Klasse in Android verwendet Google Maps angezeigt werden? – Flo

+0

das ist die antwort, die sie verlangen, es ist in diesem link ich habe dieses problem zu gelöst. http://stackoverflow.com/questions/5114710/android-setting-zoom-level-in-google-maps-in-in-clude-all-marker-points – Talha

Antwort

0

Was verwenden Sie, um Ihre Karten zu erstellen? Ich benutze die GMap2 API in einem Projekt von mir vor ungefähr 8 Monaten zurück, und es sieht so aus, als ob ich 'GDirections (map {{div}})' anrufen müsste; ' auf, gut, die Karte div, um es zu erhalten, eine Route zwischen zwei Standorten anzuzeigen, und die Ebene des Zooms entsprechend anzupassen.

+0

Sorry Ihre Antwort ist nicht klar, ich möchte nicht Route, aber Zoom-Ebene auf zwei Marker .. – UMAR

1

Sie müssen diese Markierungen in einen Begrenzungsrahmen aufzunehmen, verwenden Sie dann die LatLngBounds unter Objekt die Kamera auf sie setzen:

private void addMarkers() { 
    MarkerOptions markerOptions = new MarkerOptions(); 
    LatLngBounds.Builder boundsBuilder = new LatLngBounds.Builder(); 

    //add the marker locations that you'd like to display on the map 
    boundsBuilder.include(new LatLng(lat1, lng1)); 
    boundsBuilder.include(new LatLng(lat2, lng2)); 

    final LatLngBounds bounds = boundsBuilder.build(); 

    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, width, height, padding); 
    map.animateCamera(cameraUpdate); 
}