Наложение карты не заполняется на карте - PullRequest
0 голосов
/ 21 октября 2019

Я добавил mapView в свой контроллер представления, сделал контроллер представления делегатом и написал расширение с функцией MapView (redererFor), которая возвращает MKOverlayRenderer при вызове. Однако, когда я создаю объект многоугольника и добавляю это наложение в mapView, а затем создаю объект визуализации, который отображает это наложение, он все равно не заполняется на карте. За исключением яблочных документов, большинство других видео и учебных пособий устарели и не решают мою проблему.

func getPoints() {
        let db = Firestore.firestore()
        let ref = db.collection("Land")

        let getPolygon = ref.getDocuments { (snap, err) in
            if let err = err {
                print("Error: \(err)")
            } else {
                for document in snap!.documents {
                    var place = document
                    self.polygons.append(place)
                }
                var count = 0
                for location in self.polygons {
                    var polygonPoints: Array<CLLocationCoordinate2D> = []
                    func doIt(completion: (MKPolygon) -> ()) {
                        for data in location.data() {
                            count += 1
                            print("DATA \(data.value as! GeoPoint)")
                            var value = data.value as! GeoPoint
                            var lat = value.latitude
                            var long = value.longitude
                            var point = CLLocationCoordinate2D(latitude: lat, longitude: long)
                            polygonPoints.append(point)
                        }
                        var polygon = MKPolygon(coordinates: polygonPoints, count: 6)
                        completion(polygon)
                    }

                    doIt { (polygon) in
                        self.map.addOverlay(polygon)
                        self.renderer = MKOverlayRenderer(overlay: polygon)
                    }
                }
            }
        }
    }

Вот расширение ...

extension HomeViewController: MKMapViewDelegate {
    func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
        return MKOverlayRenderer(overlay: overlay)
    }
...