Google 地图 .getMap() 已弃用
Google Maps .getMap() deprecated
我在 Android 应用程序上使用 Google 地图。在 gradle 新版本 Google Play Services 之前,它使用以下代码获取片段:
GoogleMap googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
自从我更新到版本 9.2.1 后,.getMap() 为红色(已弃用)。是否有声明片段的新做法?
感谢您的每一个回复?
getMapAsync()
看起来很合适。不过,您将不得不调整您的实施。该调用是异步的,您不会立即获得地图。另一方面,您不会因为开始使用地图时未加载地图而遇到问题。
您应该将 getMap() 替换为 getMapAsync()。
根据官方文档,get map async 需要一个回调,这是你做主要 google 地图内容的地方。看看下面的片段。
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);
}
}
希望对您有所帮助。
我在 Android 应用程序上使用 Google 地图。在 gradle 新版本 Google Play Services 之前,它使用以下代码获取片段:
GoogleMap googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
自从我更新到版本 9.2.1 后,.getMap() 为红色(已弃用)。是否有声明片段的新做法?
感谢您的每一个回复?
getMapAsync()
看起来很合适。不过,您将不得不调整您的实施。该调用是异步的,您不会立即获得地图。另一方面,您不会因为开始使用地图时未加载地图而遇到问题。
您应该将 getMap() 替换为 getMapAsync()。
根据官方文档,get map async 需要一个回调,这是你做主要 google 地图内容的地方。看看下面的片段。
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);
}
}
希望对您有所帮助。