android – 使用.GetMapAsync代替.getMap方法与Google Play服务(Xamarin)

前端之家收集整理的这篇文章主要介绍了android – 使用.GetMapAsync代替.getMap方法与Google Play服务(Xamarin)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
代码以这种方式完美运行:
  1. LatLng location = new LatLng (myClass.myLocation.Latitude,myClass.myLocation.Longitude);
  2. CameraPosition.Builder builder = CameraPosition.InvokeBuilder ();
  3. builder.Target (location);
  4. builder.Zoom (18);
  5. CameraPosition cameraPosition = builder.Build ();
  6. MapsInitializer.Initialize (this);
  7. CameraUpdate cameraUpdate = CameraUpdateFactory.NewCameraPosition (cameraPosition);
  8. MapFragment googleMap = FragmentManager.FindFragmentById<MapFragment> (Resource.Id.map);
  9. theMap = googleMap.Map;
  10. if (theMap != null) {
  11. theMap.MapType = GoogleMap.MapTypeNormal;
  12. theMap.MoveCamera (cameraUpdate);
  13. }

但是现在.Map已经过时并且已弃用,我必须以某种方式使用.GetMapAsync:

  1. theMap = googleMap.GetMapAsync (IOnMapReadyCallback);

但我不明白怎么做.

有人可以帮助我吗?

解决方法

您的地图片段类必须实现OnMapReadyCallback并覆盖onMapReady():
  1. @Override
  2. public void onMapReady(final GoogleMap map) {
  3. this.map = map;
  4. map.setMyLocationEnabled(true);
  5. }

在onCreateView中使用getMapAsync()来设置片段的回调:

  1. MapFragment mapFragment = (MapFragment) getFragmentManager()
  2. .findFragmentById(R.id.map); mapFragment.getMapAsync(this);

您需要实现谷歌地图V2所需的一切:
https://developers.google.com/maps/documentation/android/map

猜你在找的Android相关文章