谷歌地图.getMap()已弃用

时间:2016-07-23 12:51:27

标签: java android gradle maps

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

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

自从我更新到9.2.1版以后,.getMap()为红色(不建议使用)。是否有新的做法来声明片段?

感谢您的每一个回复?

2 个答案:

答案 0 :(得分:4)

你应该用getMapAsync()替换getMap()。

根据官方文档,获取地图异步需要回调,这是主要谷歌地图的东西。看看下面的片段。

 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);
    }
}

希望这会对你有所帮助。

答案 1 :(得分:1)

getMapAsync()看起来很合适。您必须调整您的实现。该调用是异步的,您不会立即拥有该映射。另一方面,由于在开始使用地图时未加载地图,因此不会出现问题。