Comment puis-je définir l'emplacement par défaut et le niveau de zoom pour google map api v2?

Lorsque ma carte montre, elle commence toujours à un emplacement fixe (près d'Afrique).

Ensuite, j'utilise le code suivant pour centrer la carte vers l'emplacement que je souhaite.

  • Écouteur de changement de mode Ringer Récepteur de diffusion?
  • C # Web - localhost: le port fonctionne, 127.0.0.1: le port ne fonctionne pas
  • Android comment utiliser Environment.getExternalStorageDirectory ()
  • Comment incluez-vous un nom d'utilisateur lors du stockage de courrier électronique et de mot de passe en utilisant Firebase (BaaS) dans une application Android?
  • Obtenir le nom du chemin absolu, la sous-chaîne de la dernière barre oblique, l'Android java
  • Erreur: Arrêt du serveur ADB échec (code -1) {Installation de l'API - SDK Android}
  • mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(loc.getLatitude(), loc.getLongitude()), 14.0f)); 

    Ma question est que je pourrais définir un emplacement par défaut et un niveau de zoom avant que la carte ne s'affiche?

    Parce que je ne veux pas que mes utilisateurs puissent voir l'animation au début.

    Merci.

    5 Solutions collect form web for “Comment puis-je définir l'emplacement par défaut et le niveau de zoom pour google map api v2?”

    Vous pouvez l'utiliser pour zoomer directement sans l'animation:

     map.moveCamera( CameraUpdateFactory.newLatLngZoom(new LatLng(xxxx,xxxx) , 14.0f) ); 

    Consultez la documentation ici:

    https://developers.google.com/maps/documentation/android-api/map#configure_initial_state

    La façon de le faire est légèrement différente selon que vous ajoutez la carte via XML ou par programme. Si vous utilisez XML, vous pouvez le faire comme suit:

     <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="http://schemas.android.com/apk/res-auto" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment" map:cameraBearing="112.5" map:cameraTargetLat="-33.796923" map:cameraTargetLng="150.922433" map:cameraTilt="30" map:cameraZoom="13"/> 

    Si vous le faites par programme, vous pouvez faire ce qui suit:

     CameraPosition cameraPosition = new CameraPosition.Builder() .target(new LatLng(-33, 150)) .zoom(13) .build(); MapFragment.newInstance(new GoogleMapOptions() .camera(camera)); 

    J'ai créé une poignée pour SupportMapFragment et définis sa visibility sur View.INVISIBLE utilisant View.INVISIBLE SupportMapFragment.getView().setVisibility() . Ensuite, dans le onLocationChanged rappel que ma classe implémente, je vérifie si INVISIBLE et définie à VISIBLE si vrai. Cela permet de débarrasser le saut que vous voyez sur la charge tout en vous permettant d'initialiser dynamiquement la position de départ. Dans mon cas, je centrage la caméra autour de l'emplacement de l'utilisateur, alors onLocationChanged s'appelle immédiatement en raison de setMyLocationEnabled(true) .

    Vos besoins peuvent être différents, mais de toute façon, il vous suffit de définir la visibilité sur INVISIBLE , puis de trouver un bon endroit pour définir VISIBLE fois que vos données appropriées ont été chargées.

    Dans le cas où vous souhaitez charger Google Map à n'importe quel Location initial par programme, vous pouvez utiliser ce code,

     FragmentManager fm = getFragmentManager(); // getChildFragmentManager inside fragments. CameraPosition cp = new CameraPosition.Builder() .target(initialLatLng) // your initial co-ordinates here. like, LatLng initialLatLng .zoom(zoom_level) .build(); SupportMapFragment mapFragment = SupportMapFragment.newInstance(new GoogleMapOptions().camera(cp)); fm.beginTransaction().replace(R.id.rl_map, mapFragment).commit(); 

    Ajouter ce code pour la layout

     <RelativeLayout android:id="@+id/rl_map" android:layout_width="fill_parent" android:layout_height="fill_parent" /> 

    Cela va charger GoogleMap à un Location particulier directement, c'est-à-dire initialLatLng.

    Vous pouvez utiliser CameraUpdate directy à l'aide de latlong statique

      LatLong latlong = new LatLong(lat, long); CameraUpdate cameraPosition = CameraUpdateFactory.newLatLngZoom(latLong, 15); mGoogleMap.moveCamera(cameraPosition); mGoogleMap.animateCamera(cameraPosition); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.