我正在给我的片段充气:
GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.MapFragment_map_Fragment)).getMap();
在这里我有我的选择:
GoogleMapOptions options = new GoogleMapOptions();
options.mapType(GoogleMap.MAP_TYPE_SATELLITE);
在documentation我看到我需要使用它:
要在创建地图时应用这些选项,请执行以下操作之一 以下内容:
如果您使用的是MapFragment,请使用 MapFragment.newInstance(GoogleMapOptions options)静态工厂 构造片段并传入自定义配置的方法 选项。
但我不明白我怎么想用这个。
答案 0 :(得分:13)
我认为只有在以编程方式创建地图视图时才能使用GoogleMapOptions
(将选项传递给MapFragment.newInstance()
方法 - docs)。您正在从xml中膨胀MapFragment
,因此您无法以这种方式使用它们。在您的情况下,您仍然可以使用GoogleMap
制定者或UiSettings
来更改地图选项。
例如:
GoogleMap googleMap = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map_fragment)).getMap();
googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
googleMap.getUiSettings().setMyLocationButtonEnabled(true);
答案 1 :(得分:2)
我以编程方式使用LiteMode,而不是在XML文件中设置MapView和MapFragment的属性。试试这个:
GoogleMapOptions googleMapOptions = new GoogleMapOptions().liteMode(true);
googleMap.setMapType(googleMapOptions.getMapType());
或者用XML:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.mapslastapp.MapsActivity"
map:liteMode="true"
map:cameraZoom="16"
map:mapType="normal"/>