iOS中的GMS标记有时不显示

时间:2017-12-01 00:38:57

标签: ios swift google-maps

我有一个使用Google Maps API显示标记的应用,但有时它不会显示标记。我检查了调试器,代码正在执行,但没有显示。这是代码:

func showPickupMarker(lat: Double, lon:Double){

pickupMarker = GMSMarker(position: CLLocationCoordinate2D(latitude: lat, longitude: lon))
pickupMarker!.icon = GMSMarker.markerImage(with: UIColor.init(colorLiteralRed: 0/255, green: 164/255, blue: 223/255, alpha: 1))
pickupMarker!.map = self.mapView
let camera = GMSCameraPosition.camera(withLatitude: lat, longitude: 
lon, zoom: 15.0)
let update = GMSCameraUpdate.setCamera(camera)
self.mapView.moveCamera(update)

}

它大部分时间都有效,但每隔一段时间它就会......不会。地图不会移动,并且引脚不会显示。如果这会产生影响,则会从另一个ViewController调用该函数。

我还检查了标记在没有显示时是否为零,但事实并非如此。根据我的应用程序,有一个标记,但它没有显示。

找到解决方案 我在locationManager didChangeAuthorizationStatus中意外地在原始文件的顶部加载了另一个GMSMapView。显然这个函数只是被随机调用,因此每次都不会发生这种情况......

1 个答案:

答案 0 :(得分:0)

确保在主线程上运行该方法。 尝试将方法实现更改为:

DispatchQueue.main.async {
...
}