【问题标题】:Google Maps .getMap() deprecated谷歌地图 .getMap() 已弃用
【发布时间】:2017-08-24 20:49:07
【问题描述】:

我在我的 Android 应用上使用 Google 地图。在对新版本的 Google Play 服务进行 gradle 之前,它使用以下代码来获取片段:

GoogleMap googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

自从我更新到 9.2.1 版后,.getMap() 是红色的(已弃用)。声明片段有新做法吗?

感谢您的每一个回复?

【问题讨论】:

    标签: java android gradle maps


    【解决方案1】:

    您应该将 getMap() 替换为 getMapAsync()。

    根据官方文档,获取地图异步需要回调,这是你做主要谷歌地图的地方。看看下面的sn-p。

     public class MapPane extends Activity implements OnMapReadyCallback {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map_activity);
    
        MapFragment mapFragment = (MapFragment) getFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }
    
    @Override
    public void onMapReady(GoogleMap map) {
    //DO WHATEVER YOU WANT WITH GOOGLEMAP
     map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
            map.setMyLocationEnabled(true);
            map.setTrafficEnabled(true);
            map.setIndoorEnabled(true);
            map.setBuildingsEnabled(true);
            map.getUiSettings().setZoomControlsEnabled(true);
        }
    }
    

    希望对你有所帮助。

    【讨论】:

      【解决方案2】:

      getMapAsync() 看起来很合适。不过,您将不得不调整您的实现。调用是异步的,您不会立即获得地图。另一方面,您不会因为开始使用地图时未加载地图而遇到问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多