Android Google Maps API v2-如何以编程方式设置GoogleMapOptions?

Android Google Maps API v2-如何以编程方式设置GoogleMapOptions?,android,google-maps,Android,Google Maps,我有一个GoogleMapOptions对象和一堆东西集,但我不知道如何将这些选项对象实际应用于我的地图 我使用的是support map片段,在查看文档后,我只看到一个方法,它是一个新实例,它接受一个GoogleMapOptions对象,但在我的实现中,我不能调用它 下面是一些代码,我将其缩短,以避免使这个问题变得混乱 public class Map extends SupportMapFragment { private OnMapReadyCallback callback;

我有一个GoogleMapOptions对象和一堆东西集,但我不知道如何将这些选项对象实际应用于我的地图

我使用的是support map片段,在查看文档后,我只看到一个方法,它是一个新实例,它接受一个GoogleMapOptions对象,但在我的实现中,我不能调用它

下面是一些代码,我将其缩短,以避免使这个问题变得混乱

public class Map extends SupportMapFragment
{

    private OnMapReadyCallback callback;

    public static SupportMapFragment newInstance(OnMapReadyCallback callback)
    {

        Map map = new Map();
        map.callback = callback;
        return map;
    }
这个类扩展了SupportMapFragment,我定义了自己的newInstance实现,它采用了一个OnMapReadyCallback变量。它保存在字段回调中,并传递给方法getMapAsync(回调)

然后在实现OnMapReadyCallback的主活动中,初始化googlemap对象

public class MainActivity extends ActionBarActivity implements OnMapReadyCallback
{

@Override
public void onMapReady(GoogleMap googleMap)
{

this.googleMap = googleMap;
}
}
那么我如何应用options对象呢?具体地说,我想设置初始地图位置,而不必从世界角度开始并缩放到需要的位置(这有点昂贵!)

谢谢你的阅读。请让我知道,如果有任何遗漏,我可以填写

请注意:我不能使用XML实现,因为在我的应用程序中,只有在用户明确请求的情况下才会显示Google地图。我不想使用可见性方法,因为这会浪费内存

请注意:我不能使用XML实现,因为在我的应用程序中,只有在用户明确请求的情况下才会显示Google地图


你似乎在这里解决错误的问题。如果以上是您的原因,那么您应该只在布局中保留空容器,当用户请求您的地图时,实例化地图片段并添加到布局中。然后,您的映射片段(最有可能的子类)可以使用XML布局。

我将覆盖
SupportMapFragment
静态SupportMapFragment newInstance(GoogleMapOptions选项)
方法。然后,当调用
静态SupportMapFragment newInstance(GoogleMapOptions)
方法时,可以将
GoogleMapOptions
对象作为参数传入

通过执行以下操作,可以从此
SupportMapFragment
对象获取
GoogleMap
对象:

GoogleMap map = super.newInstance(options).getMap;

它非常简单,但是GoogleMapOptions可以传递给MapFragments/MapView,MapFragments/MapView以编程方式添加了(不在布局文件/XML中):

1-创建所需的选项集合

2-通过“newInstance”传递它

像这样:

GoogleMapOptions options = new GoogleMapOptions().liteMode(true)
                .mapType(GoogleMap.MAP_TYPE_SATELLITE);

    SupportMapFragment mapFragment =
                  SupportMapFragment.newInstance(options );
在本例中,我使用的是dynamicMapFragment


但是如果您在布局文件中定义了片段,那么只需通过“onMapReady”回调函数中提供的选项进行控制:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
}

@Override
public void onMapReady(GoogleMap googleMap) {
    map = googleMap;

    map.setMapType(GoogleMap.MAP_TYPE_SATELLITE); 
    map.getUiSettings().setZoomControlsEnabled(true);
}
我希望它对某些人有用