Тогда как сделать это упражнение, если мы удалим эту строку?

виваюсьMapview на быстром языке. Для того, что я загружаю файл geojson в мой mapview, его загрузка успешно. Я загружаю сGEOSwift библиотека. Работает нормально, но, что происходит, при загрузке данных представление карты зависает / застревает на несколько секунд в пользовательском интерфейсе, а затем показывает данные. Даже в то время как время масштабирования также останавливает пользовательский интерфейс на несколько секунд.

Я загружаюLineString введите данные с координатами около 7000 данных.

Даже я делаю анализ данных только в фоновом потоке.

У меня есть две 3 вкладки для загрузки разных данных в моей карте с 3geojson

файлы. Даже при переключении одних данных на другие они замерзают.

При отладке следуют ошибки печати при увеличении / уменьшении масштаба карты.

 [VKDefault] Tile 11720.7599.14 (128) in current unloaded state for 0.01 seconds - Raster Overlays Above Labels - Failed to decode (terminal) (0.01 sec)

Мой код выглядит следующим образом.

@IBAction func mapDataAction(_ sender: Any) {
        let overlays = mapView.overlays
        mapView.removeOverlays(overlays)

        self.mapView.removeAnnotations(mapView.annotations)


        DispatchQueue.global(qos: .background).async {
            if let geoJSONURL = Bundle.main.url(forResource: “LineString”, withExtension: "geojson") {
                do {
                    var overlays = [MKPolyline]()
                    let features = try Features.fromGeoJSON(geoJSONURL)
                    for item in features! {
                        if  let item = item.geometries![0] as? LineString {
                            let polyLine = item.mapShape() as! MKPolyline
                            overlays.append(polyLine)
                        }
                    }
                    DispatchQueue.main.async {
                        // add overlays to map
                        self.mapView.addOverlays(overlays)
                    }

                } catch {
                    //handle error
                }
            }
        }
    }

И однажды приложение выходит из строя со следующим сообщением, брошенным в консоль.

Terminated due to memory issue

И это берет огромную память от процессора устройства.

При прокрутке вида карты или ее увеличении / уменьшении всегда вызывается метод делегата, что приводит к зависанию вида карты.

public func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
    if let polyline = overlay as? MKPolyline {
        let renderer = MKPolylineRenderer(polyline: polyline)
        //renderer.fillColor = UIColor.blue.withAlphaComponent(0.5)
        renderer.strokeColor = UIColor.blue.withAlphaComponent(0.8)
        renderer.lineWidth = 5
         print("MKPolylineRenderer delegate calling")
        return renderer
    }


    return MKOverlayRenderer(overlay: overlay)

 //   fatalError("Unexpected overlay type")
}

Как я могу решить это?

Ответы на вопрос(0)

Ваш ответ на вопрос