Quando meu mapa é exibido, ele sempre começa em um local fixo (perto da África).
Em seguida, uso o seguinte código para centralizar o mapa no local que desejo.
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(loc.getLatitude(), loc.getLongitude()), 14.0f));
Minha pergunta é se eu poderia definir um local padrão e um nível de zoom antes que o mapa apareça?
Porque não quero que meus usuários vejam a animação no início.
Obrigado.
android
google-maps
google-maps-api-3
dong221
fonte
fonte
moveCamera
é a melhor solução para issoRespostas:
você pode usar isso para ampliar diretamente sem a animação:
fonte
MyLocation
para poder mover e ampliar o mapa até a localização do usuário. Como o mapa é inicializado no XML, não consigo descobrir como evitar que o salto aconteça. O ideal é esconder o mapa até queMyLocation
seja encontrado e, em seguida, mostrá-lo.Dê uma olhada na documentação aqui:
https://developers.google.com/maps/documentation/android-api/map#configure_initial_state
A maneira de fazer isso é ligeiramente diferente, dependendo se você está adicionando o mapa via XML ou programaticamente. Se estiver usando XML, você pode fazer da seguinte maneira:
Se estiver fazendo isso de forma programática, você pode fazer o seguinte:
fonte
Unexpected namespace prefix "map" found for tag fragment
Apenas no caso de você querer carregar
Google Map
em qualquerLocation
programa inicial , então você pode usar este pedaço de códigoAdicione este trecho de código para
layout
Isso irá carregar
GoogleMap
em particularLocation
diretamente, ou seja, initialLatLng.fonte
Criei um identificador para
SupportMapFragment
e configureivisibility
paraView.INVISIBLE
usarSupportMapFragment.getView().setVisibility()
. Então, noonLocationChanged
retorno de chamada que minha classe implementa, eu verifico seINVISIBLE
e configuro paraVISIBLE
se verdadeiro. Isso elimina os saltos que você vê durante a carga e permite inicializar dinamicamente a posição inicial. No meu caso, estou centralizando a câmera em torno da localização do usuário, issoonLocationChanged
é chamado imediatamente por causa desetMyLocationEnabled(true)
.Seus requisitos podem ser diferentes, mas de qualquer forma, você só precisa definir a visibilidade
INVISIBLE
e, em seguida, encontrar um bom lugar para definirVISIBLE
após o carregamento dos dados apropriados.fonte
você pode usar o Directy CameraUpdate usando latlong estático
fonte