Estou criando uma activity e um fragment pra usar a API do Google Maps. Já fiz os procedimentos de gerar a credential, registrar no manifest, adicionar a dependencies, etc.
Essa é a minha activity:
public class MapaActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mapa);
MapaFragment mapaFragment = new MapaFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.map_frag_id, mapaFragment);
transaction.commit();
}
}
Esse é meu fragment:
public class MapaFragment extends SupportMapFragment {
@Override
public void onResume() {
super.onResume();
GoogleMap mapa = getMap();
}
}
Meu problema é que o getMap() está depreciado, e não entendi direito como se usa o getMapAsync.
Outra dúvida é, como posso fazer pro mapa ter posição inicial ser a posição do usuário e atualizar essa posição conforme ele anda?
Desde já agradeço.
Criando pelo xml na minha opnião acho mais facil, segue:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="pacote.MainActivity" >
<fragment
android:id="@+id/mapFrag"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
Criado o xml abra sua Actvity:
public class TesteActvity extends FragmentActivity implements OnMapReadyCallback {
private SupportMapFragment mapFrag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_teste_actvity);
GoogleMapOptions opcoes = new GoogleMapOptions();
opcoes.zOrderOnTop(true);
mapFrag = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapFrag);
mapFrag.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
GoogleMap map = googleMap;
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
//......
}
}
1 curtida
Não foi uma solução pra todo o problema, mas pelo menos ajudou com a exibição do mapa!
Brigadão ai!