我有一个使用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。显然这个函数只是被随机调用,因此每次都不会发生这种情况......
答案 0 :(得分:0)
确保在主线程上运行该方法。 尝试将方法实现更改为:
DispatchQueue.main.async {
...
}