Android Google Maps API v2-如何以编程方式设置GoogleMapOptions?
我有一个GoogleMapOptions对象和一堆东西集,但我不知道如何将这些选项对象实际应用于我的地图 我使用的是support map片段,在查看文档后,我只看到一个方法,它是一个新实例,它接受一个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;
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);
}
我希望它对某些人有用