10
votes

Comment zoomer Caméra pour couvrir le chemin dans Android Googlemap?

J'ai couvert plusieurs emplacements dans Google Map Code> Utilisation Latlng.Builder Code> et ça marche. Y a-t-il un moyen de couvrir l'ensemble du chemin entre deux emplacements dans Google Map CODE>?

Mon code Current Pour inclure plusieurs emplacements P>

builder = new LatLngBounds.Builder();
builder.include(LatLng1);
builder.include(LatLng2);
googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(builder.build(), 17));


3 commentaires

Calculez la moyenne de vos deux endroits et animez votre appareil photo à cet emplacement.


Votre code n'est-il pas affiché dans une zone de chemin complète?


Merci pour vos réponses ... Je l'ai résolu en ajoutant chaque point dans la route vers l'objet lettlngbounds.builer puis déplaçant la caméra .


3 Réponses :


7
votes

La solution était simple

Cela pourrait aider quelqu'un à l'avenir si vous recherchez ce type de fonctionnalité.

Cette méthode est appelée après le Google direction API renvoie le Route de Localisation A à B . DirectionPoints est la liste des points de l'itinéraire. xxx

Mise à jour

la réponse JSON de la direction Google API xxx

donc j'ai utilisé ce lat et lng comme paramètre sur letlngbounds.builder . xxx

et inclus ces points dans letlngbounds.builder


1 commentaires

Comment obtenez-vous des points de contrôle



11
votes

Je sais que vous trouvez déjà la réponse, mais voici ma méthode pour résoudre le problème

boolean hasPoints = false;
        Double maxLat = null, minLat = null, minLon = null, maxLon = null;

        if (polyline != null && polyline.getPoints() != null) {
            List<LatLng> pts = polyline.getPoints();
            for (LatLng coordinate : pts) {
                // Find out the maximum and minimum latitudes & longitudes
                // Latitude
                maxLat = maxLat != null ? Math.max(coordinate.latitude, maxLat) : coordinate.latitude;
                minLat = minLat != null ? Math.min(coordinate.latitude, minLat) : coordinate.latitude;

                // Longitude
                maxLon = maxLon != null ? Math.max(coordinate.longitude, maxLon) : coordinate.longitude;
                minLon = minLon != null ? Math.min(coordinate.longitude, minLon) : coordinate.longitude;

                hasPoints = true;
            }
        }

        if (hasPoints) {
            LatLngBounds.Builder builder = new LatLngBounds.Builder();
            builder.include(new LatLng(maxLat, maxLon));
            builder.include(new LatLng(minLat, minLon));
            map.moveCamera(CameraUpdateFactory.newLatLngBounds(builder.build(), 48));
        }


0 commentaires

1
votes

0 commentaires