124 votes

Google Maps v2 - définir les deux mon emplacement et effectuer un zoom avant

Ma question est, est-ce que quelqu'un sait comment mettre google maps, ouvert à la fois à mon endroit et à un zoom en vue?

Actuellement, la vue s'ouvre sur l'Afrique, à la manière d'un zoom arrière.

Et j'ai donc été à la recherche pour les jours maintenant, et tout ce que je peux trouver sont:

1) Vous ne pouvez pas animer deux choses (comme le zoom dans et aller à mon emplacement) dans une carte google? Donc, si je peux comprendre comment régler le zoom avant de mettre l'animer, ce problème serait résolu. Qui ont tendance ont tendance à être le problème, vous pouvez modifier l'un, mais pas les deux.

2) j'ai trouvé d'autres classes qui pourraient être utiles, mais il n'y a pas d'aide sur la façon de configurer le code de sorte que la classe peut manipuler la carte google.

C'est le code que j'ai été tenue sur, jusqu'à présent, certaines œuvres, certains ne le sont pas. Certains, je pensais peut-être utile plus tard.

package com.MYWEBSITE.www;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;

public class MainActivity extends FragmentActivity {
private GoogleMap map;  

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_layout);

    map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
    map.setMyLocationEnabled(true);

    //LocationSource a = (LocationSource) getSystemService(Context.LOCATION_SERVICE);
    //LocationManager b = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    //map.setLocationSource(a);

    Criteria criteria = new Criteria();
    LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    String provider = locationManager.getBestProvider(criteria, false);
    Location location = locationManager.getLastKnownLocation(provider);
    double lat =  location.getLatitude();
    double lng = location.getLongitude();
    LatLng coordinate = new LatLng(lat, lng);

    //CameraPosition.Builder x = CameraPosition.builder();
    //x.target(coordinate);
    //x.zoom(13);

    //Projection proj = map.getProjection();
    //Point focus = proj.toScreenLocation(coordinate);

    //map.animateCamera(CameraUpdateFactory.newLatLng(coordinate));
    map.animateCamera(CameraUpdateFactory.zoomBy(13));
    //map.moveCamera(CameraUpdateFactory.newLatLng(coordinate));


    ////LatLngBounds bounds = mMap.getProjection().getVisibleRegion().latLngBounds;
}
}

206voto

CommonsWare Points 402670

Vous ne pouvez pas animer deux choses (comme le zoom dans et aller à mon emplacement) dans une carte google?

À partir d'un codage point de vue, vous ne leur ferait de manière séquentielle:

    CameraUpdate center=
        CameraUpdateFactory.newLatLng(new LatLng(40.76793169992044,
                                                 -73.98180484771729));
    CameraUpdate zoom=CameraUpdateFactory.zoomTo(15);

    map.moveCamera(center);
    map.animateCamera(zoom);

Ici, je déplace la caméra d'abord, puis d'animer la caméra, bien que les deux pourraient être animateCamera() des appels. Si GoogleMap regroupe dans un seul cas, je ne peux pas dire, qu'il va trop vite. :-)

Voici un exemple de projet à partir de laquelle j'ai tiré le code ci-dessus.


Désolé, cette réponse est erronée. Voir Rob réponse à un moyen de véritablement faire d'un seul coup, par la création d'un CameraPosition , puis la création d'un CameraUpdate de cette CameraPosition.

168voto

Rob Points 845

Il est possible de changer d’emplacement, zoom, azimut et inclinaison dans un aller. Il est également possible de définir la durée sur l’appel d’animatecamera.

Jetez un oeil à la documentation ici :

https://Developers.google.com/maps/documentation/Android/views?hl=fr-fr#moving_the_camera

54voto

Mubeen1992 Points 425

Il s’agit d’une solution simple pour votre question

13voto

Khobaib Points 525

Essayer de cette façon-

}

7voto

organillero Points 75

Vous pouvez également définir ces deux paramètres comme,

Cela permet de localiser votre carte sur une position spécifique et le zoom. J’utilise ceci sur la mise en place ma carte.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X