我试图在我的代码中找到一种正确实施getMapAsync()
的方法,我将不得不与Google Marker
进行大量交易。您可能知道getMapAsync()
在onMapReady
准备好此地图时会返回非空地图。
所以基本上我将不得不在onMapReady
中完成关于标记的所有内容。问题在于,在我的代码的各个部分中,我使用onMapReady
在map.addMarker(new MarkerOptions())
中初始化我的谷歌标记,但我不知道这些标记是否已经初始化(我可以添加一个boolean
onMapReady
Marker
知道我的false
是否已初始化,但在此布尔值为getMap()
的情况下我应该做什么?对我的标记无效?)。
所以基本上我希望能够获得与同步CountdownLatch
方法但相同的行为,我确保获得非空地图。因为我很确定我不能添加一个"服务员"在我的主线程(例如@
)上,在找到主线程中的其余代码之前,我无法找到等待映射准备好的方法。谢谢
答案 0 :(得分:0)
解决方案的确如@Selvin所述,操纵并存储MarkerOptions
变量。为了将MarkerOptions
变量的变化反映到我的地图中,我创建了一个类似如下的方法:
public void reloadMarkersOnTheMap() {
if (isMapInitialised) {
map.clear();
map.addMarker(pickupMarker);
map.addMarker(dropOffMarker);
}
}
然后,解决方案是清除我的Marker
并将GoogleMap
重新添加到MarkerOptions
,并修改我isMapInitialised == false
个变量的值。如果onMapReady()
,那么我的标记将在//CREATE THE ARRAY
$chName = array();