Comment utiliser MapView dans Android en utilisant Google Map V2?

Je veux afficher une carte dans mon activité.

Dans google map v1 on utilise –

 

et étendre l’activité en utilisant la classe MapActivity.

Dans Versing 2, il utilise Fragment au lieu de mapview et doit étendre son activité par FragmentActivity à la place de Activité normale. ex-

  

Maintenant, je peux utiliser la même manière pour créer mapview au lieu de fragmenter en utilisant la version 2.

Quelqu’un peut-il utiliser MapView en utilisant V2?

oui, vous pouvez utiliser MapView dans v2 … pour plus de détails, vous pouvez obtenir de l’aide à ce sujet

https://gist.github.com/joshdholtz/4522551


SomeFragment.java

 public class SomeFragment extends Fragment implements OnMapReadyCallback{ MapView mapView; GoogleMap map; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.some_layout, container, false); // Gets the MapView from the XML layout and creates it mapView = (MapView) v.findViewById(R.id.mapview); mapView.onCreate(savedInstanceState); mapView.getMapAsync(this); return v; } @Override public void onMapReady(GoogleMap googleMap) { map = googleMap; map.getUiSettings().setMyLocationButtonEnabled(false); map.setMyLocationEnabled(true); /* //in old Api Needs to call MapsInitializer before doing any CameraUpdateFactory call try { MapsInitializer.initialize(this.getActivity()); } catch (GooglePlayServicesNotAvailableException e) { e.printStackTrace(); } */ // Updates the location and zoom of the MapView /*CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(43.1, -87.9), 10); map.animateCamera(cameraUpdate);*/ map.moveCamera(CameraUpdateFactory.newLatLng(43.1, -87.9)); } @Override public void onResume() { mapView.onResume(); super.onResume(); } @Override public void onPause() { super.onPause(); mapView.onPause(); } @Override public void onDestroy() { super.onDestroy(); mapView.onDestroy(); } @Override public void onLowMemory() { super.onLowMemory(); mapView.onLowMemory(); } } 

AndroidManifest.xml

                    

some_layout.xml

    

Échantillon plus complet d’ ici et ici .

Ou vous pouvez consulter mon exemple de mise en page. ps pas besoin de mettre la clé API dans la vue carte.

      

J’ai une méthode très simple pour le faire fonctionner à 100%

Étape 1: Créez une activité de base et supprimez toutes les fonctionnalités supplémentaires telles que l’implémentation fab et snakbar pour la garder propre.

Étape 1.5: Ajoutez-les à votre fichier XML:

  

Étape 2: Créez une variable privée par-dessus votre oncré:

 private GoogleMap googleMap; 

Étape 3: Ajoutez ceci dans votre oncreate:

 if (googleMap == null) { googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.mapNB)).getMap(); } googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); LatLng coordinate = new LatLng(21.182782, 72.830115); CameraUpdate yourLocation = CameraUpdateFactory.newLatLngZoom(coordinate, 11); googleMap.moveCamera(CameraUpdateFactory.newLatLng(coordinate)); googleMap.animateCamera(yourLocation); googleMap.setMyLocationEnabled( true ); googleMap.getUiSettings().setZoomControlsEnabled( true ); googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { somefunction(); return false; } }); 

N’oubliez pas d’append votre clé de carte api.