Я реализую собственный стиль для своего представления карт Google для приложения автобусного транзита, которое я разрабатываю в XCode 9 с Swift 4. Всякий раз, когда я загружаю вид карты, загрузка всегда занимает чуть меньше секунды пользовательский стиль, и я не уверен, что вызывает это.
Вот эффект, который я описываю:
Как вы можете видеть, фон загара является стилем по умолчанию для просмотра карты Google, и он виден только в течение небольшого периода времени.
Вот мой код, который реализует вид карты:
class StopPredictionVC: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
setUpMapView()
}
private func setUpMapView() {
let stopLatitude = Double(stop!.lat)
let stopLongitude = Double(stop!.lon)
let camera = GMSCameraPosition.camera(withLatitude: stopLatitude!, longitude: stopLongitude!, zoom: 16.4)
let frame = CGRect(x: 0, y: 0, width: self.view.bounds.width, height: self.view.bounds.height)
mapView = GMSMapView.map(withFrame: frame, camera: camera)
let nightModeEnabled = APIWrapper.sharedInstance.settings.nightMode!
if nightModeEnabled {
mapView.mapStyle(withFilename: "nightStyle", andType: "json")
} else {
mapView.mapStyle(withFilename: "mapStyle", andType: "json")
}
let marker = GMSMarker()
marker.icon = #imageLiteral(resourceName: "marker")
marker.appearAnimation = .pop
marker.position = CLLocationCoordinate2D(latitude: stopLatitude!, longitude: stopLongitude!)
marker.title = "Bus Stop Name"
marker.snippet = "Example description"
marker.map = mapView
buildRoute(routePath: routeConfig!.path)
view.addSubview(mapView)
}
}
extension GMSMapView {
func mapStyle(withFilename name: String, andType type: String) {
do {
if let styleURL = Bundle.main.url(forResource: name, withExtension: type) {
self.mapStyle = try GMSMapStyle(contentsOfFileURL: styleURL)
} else {
NSLog("Unable to find style.json")
}
} catch {
NSLog("One or more of the map styles failed to load. \(error)")
}
}
}
buildRoute(routePath:)
- это функция, которая строит синюю дорожку на дороге, если кому-то интересно.
Очевидно, что это не очень большая ошибка, но это довольно неприятно видеть каждый раз, когда я загружаю вид карты. Кто-нибудь видел что-нибудь в моем коде, что может быть причиной этого?