Utiliser .GetMapAsync à la place .getMap méthode avec Google Play Services (Xamarin)

Un ancien code fonctionne parfaitement de cette manière:

LatLng location = new LatLng (myClass.myLocation.Latitude, myClass.myLocation.Longitude);
CameraPosition.Builder builder = CameraPosition.InvokeBuilder ();
builder.Target (location);
builder.Zoom (18);
CameraPosition cameraPosition = builder.Build ();
MapsInitializer.Initialize (this);
CameraUpdate cameraUpdate = CameraUpdateFactory.NewCameraPosition (cameraPosition);
MapFragment googleMap = FragmentManager.FindFragmentById<MapFragment> (Resource.Id.map);
theMap = googleMap.Map;
if (theMap != null) {
    theMap.MapType = GoogleMap.MapTypeNormal;
    theMap.MoveCamera (cameraUpdate);
}

mais maintenant que le .Map est désuet et obsolète, je doit utiliser .GetMapAsync d'une certaine façon:

theMap = googleMap.GetMapAsync (IOnMapReadyCallback);

Mais je ne comprends pas comment.

Il y a quelqu'un qui peut m'aider?

  • Je sais le faire en java: mapFragment.getMapAsync(nouveau OnMapReadyCallback() { @Override public void onMapReady(GoogleMap googleMap) { mGoogleMap = googleMap; moveMapAddBounds(); } }); mais je suis nouveau en C#
  • en C#, il n'y a pas de place implémentation de l'interface ... vous devez créer une classe qui implémente l'interface et de passer à cette fonction public class VeryNaiveImpl : IOnMapReadyCallback { public Action<GoogleMap> Callback; public void onMapReady(GoogleMap googleMap) { if(Callback != null) Callback(googleMap); } } puis l'utiliser comme googleMapFrag.GetMapAsync( new VeryNaiveImpl { Callback = (map)=> { /* map is ready*/ }});
  • Maintenant, j'ai compris merci, mais j'ai une erreur sur la classe publique: le compilateur dit que je ne l'ai pas mis en œuvre la Android.Gsm.Cartes.IOnMapReadyCallback.OnMapReady!!!!
  • rappelez-vous, une question de taille 😛
  • Sérieux s'il vous plaît.... 😀 je suis fou... il n'y a pas de documentation sur ce nouveau problème!!!!!!!!!! Avec ce code: public class waitingMap : IOnMapReadyCallback { l'Action publique<GoogleMap> Rappel; public void OnMapReady (GoogleMap googleMap) { if(Rappel != null) Rappel(googleMap); } } j'ai résolu d'un seul des trois problèmes, mais restent deux: 1) je n'implémente pas l'interface membre 'Android.Moment de l'exécution.IJavaObject.Poignée de.get' 2) je n'implémente pas l'interface membre du Système.Jetable.Dispose()
  • Laissez-nous continuer cette discussion dans le chat.
  • je ne vais pas vous apprendre le C# ... ideone.com/7PoSdp
  • Ok est droit. Que dieu vous bénisse. A été d'une aide précieuse! Merci beaucoup...
  • Jetez un oeil ici que j'ai récemment mis à jour la mienne: github.com/jamesmontemagno/BikeNow/blob/lollipop/BikeNow/...
  • Bonjour James. Je vous remercie beaucoup. J'ai beaucoup apprécié

InformationsquelleAutor Blasco73 | 2015-01-27