Lorsque ma carte s'affiche, elle commence toujours à un emplacement fixe (près de l'Afrique).
Ensuite, j'utilise le code suivant pour centrer la carte sur l'emplacement souhaité.
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(loc.getLatitude(), loc.getLongitude()), 14.0f));
Ma question est la suivante: pourrais-je définir un emplacement et un niveau de zoom par défaut avant que la carte ne s'affiche?
Parce que je ne veux pas que mes utilisateurs voient l'animation au début.
Merci.
android
google-maps
google-maps-api-3
dong221
la source
la source
moveCamera
est la meilleure solution pour celaRéponses:
vous pouvez utiliser ceci pour zoomer directement sans l'animation:
la source
MyLocation
pour pouvoir déplacer et agrandir la carte vers l'emplacement de l'utilisateur. Comme la carte est initialisée dans le XML, je ne peux pas comprendre comment empêcher le saut de se produire. Idéalement, je cacherais la carte jusqu'à ce qu'elleMyLocation
soit trouvée, puis je la montrerais.Jetez un œil à la documentation ici:
https://developers.google.com/maps/documentation/android-api/map#configure_initial_state
La façon de procéder 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:
Si vous le faites par programme, vous pouvez effectuer les opérations suivantes:
la source
Unexpected namespace prefix "map" found for tag fragment
Juste au cas où vous voudriez charger
Google Map
à n'importe quelLocation
programme initial , vous pouvez utiliser ce morceau de code,Ajoutez ce morceau de code pour
layout
Cela se chargera
GoogleMap
en particulierLocation
directement, c'est-à-dire initialLatLng.la source
J'ai créé une poignée
SupportMapFragment
et l' ai définievisibility
surView.INVISIBLE
usingSupportMapFragment.getView().setVisibility()
. Ensuite, dans leonLocationChanged
rappel que ma classe implémente, je vérifie siINVISIBLE
et je mets àVISIBLE
si vrai. Cela élimine les sauts que vous voyez en charge tout en vous permettant d'initialiser dynamiquement la position de départ. Dans mon cas, je centre la caméra autour de l'emplacement de l'utilisateur, elleonLocationChanged
est donc appelée immédiatement à cause desetMyLocationEnabled(true)
.Vos exigences peuvent être différentes, mais dans tous les cas, il vous suffit de définir la visibilité sur
INVISIBLE
, puis de trouver un bon emplacement à définir uneVISIBLE
fois que vos données appropriées ont été chargées.la source
vous pouvez utiliser directement CameraUpdate en utilisant latlong statique
la source