Android GoogleMap和getMapAsync
我正试图找到一种方法,在我的代码中正确地实现Android GoogleMap和getMapAsync,android,google-maps-android-api-2,Android,Google Maps Android Api 2,我正试图找到一种方法,在我的代码中正确地实现getmapsync(),在这里我将不得不处理很多googleMarker。正如您所知,getmapsync()在onMapReady中准备好此映射时,将返回一个非空映射 因此,基本上我必须在onMapReady中完成所有关于标记的工作。问题是,在我的各种代码中,我使用map.addMarker(newmarkeroptions())调用在onMapReady中初始化的google标记,但我不知道这些标记是否已经初始化(我可以在onMapReady中添
getmapsync()
,在这里我将不得不处理很多googleMarker
。正如您所知,getmapsync()
在onMapReady
中准备好此映射时,将返回一个非空映射
因此,基本上我必须在onMapReady
中完成所有关于标记的工作。问题是,在我的各种代码中,我使用map.addMarker(newmarkeroptions())
调用在onMapReady
中初始化的google标记,但我不知道这些标记是否已经初始化(我可以在onMapReady
中添加布尔值
,以了解我的标记
是否在初始化位置,但如果该布尔值为false
我该怎么办?不要使用标记?)
因此,基本上,我希望能够获得与同步
getMap()
方法相同的行为,但是我将确保获得一个非空映射。因为我非常确定我不能在我的主线程上添加“服务员”(例如CountdownLatch
)我找不到一种方法来等待映射准备就绪,然后再继续我的主线程中的其余代码。谢谢你解决方案确实如@Selvin所述,操作并存储MarkerOptions
变量。为了将MarkerOptions
变量的更改反映到我的映射中,我创建了一个如下方法ng:
public void reloadMarkersOnTheMap() {
if (isMapInitialised) {
map.clear();
map.addMarker(pickupMarker);
map.addMarker(dropOffMarker);
}
}
然后,解决方案是使用my
MarkerOptions
变量的修改值清除myMarker
并将其从/重新添加到GoogleMap
。如果IsMapiInitialized==false
,则我的标记将在OnMaReady()
中使用其最新修改进行初始化,这显然是一个解决方案调用“adding code”从两个位置(创建标记和onMapReady)…在“添加代码”中检查映射是否准备就绪,如果没有,将标记存储在标记变量列表(字段)…如果映射准备就绪,则添加标记并从列表中添加所有标记,清除列表…当然添加一些线程竞赛检查,如果没有,则将标记存储在标记变量列表(字段)中
markers实例通过map.addMarker(新MarkerOptions())检索
,如果我想有一个标记
实例,地图需要初始化。嗯,好的,好的…所以存储标记选项列表或创建它们所需的其他数据…但是你得到了一般概念吗?你需要一些像挂起的标记(或用于创建它们的数据)添加…这就是我所做的。但想象一下我所做的:myMarkerOption.icon(xx)
在我的MarkerOption
实例上,我认为它不会自动触发到地图上相应的标记上(无论是否已初始化),会吗?将标记选项
存储在var中对我来说是不可行的,因为使用其设置程序不会反映标记