GoogleMap和getMapAsync

时间:2015-09-29 14:12:07

标签: android google-maps-android-api-2

我试图在我的代码中找到一种正确实施getMapAsync()的方法,我将不得不与Google Marker进行大量交易。您可能知道getMapAsync()onMapReady准备好此地图时会返回非空地图。

所以基本上我将不得不在onMapReady中完成关于标记的所有内容。问题在于,在我的代码的各个部分中,我使用onMapReadymap.addMarker(new MarkerOptions())中初始化我的谷歌标记,但我不知道这些标记是否已经初始化(我可以添加一个boolean onMapReady Marker知道我的false是否已初始化,但在此布尔值为getMap()的情况下我应该做什么?对我的标记无效?)。

所以基本上我希望能够获得与同步CountdownLatch方法相同的行为,我确保获得非空地图。因为我很确定我不能添加一个"服务员"在我的主线程(例如@)上,在找到主线程中的其余代码之前,我无法找到等待映射准备好的方法。谢谢

1 个答案:

答案 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();

中进行最新修改