Google Maps v2 - définir à la fois ma position et le zoom
Ma question est, est-ce que quelqu'un sait comment mettre google maps, pour ouvrir mon emplacement et un zoom en vue?
Actuellement, la vue s'ouvre sur l'Afrique, tout le chemin de zoom.
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;
}
}
Vous devez vous connecter pour publier un commentaire.
À partir d'un codage point de vue, vous ne leur ferait de manière séquentielle:
Ici, je déplace la caméra d'abord, puis d'animer la caméra, bien que les deux pourraient être
animateCamera()
appels. SiGoogleMap
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épondre de façon à véritablement faire d'un seul coup, par la création d'un
CameraPosition
et ensuite, la création d'unCameraUpdate
à partir de ceCameraPosition
.Il est possible de modifier l'emplacement, le zoom, l'azimut et l'inclinaison en une seule fois. Il est également possible de définir la durée de
animateCamera()
appel.Ont un coup d'oeil à la doc ici:
https://developers.google.com/maps/documentation/android/views?hl=en-US#moving_the_camera
c'est la solution la plus simple pour votre question
Essayer de cette façon -
}
Vous pouvez aussi définir les deux paramètres comme,
Ce situe votre carte sur une position spécifique et de zoom. - Je l'utiliser sur la configuration de ma carte.
Son une réponse tardive mais je pense que ça va aider. Utilisez cette méthode:
Utiliser cette méthode après le chargement de la carte. Cheers!
La plus simple façon de le faire est d'utiliser CancelableCallback. Vous devriez vérifier la première action est terminée, puis d'appeler la deuxième:
1.Ajoutez le code xml dans votre mise en page pour afficher les cartes.
2.Activer l'api google maps puis obtenir la clé api endroit que ci-dessous.
3.Ajouter ce code dans oncreate.
4.Ajoutez le code suivant après oncreate. alors accéder à l'emplacement actuel de l'aide d'un marqueur
placée dans un
@CommonsWare la réponse n'est pas réellement. J'ai trouvé que cela fonctionne correctement :
Vous ne pouvez pas animer deux choses (comme le zoom dans et aller à mon emplacement) dans une carte google.
Utilisez donc les déplacer et de les animer de la Caméra à zoom