annotate GeoQuiz/Logic/MapController.swift @ 19:f140bb277c96

refactor code
author Dennis C. M. <dennis@denniscm.com>
date Sun, 23 Oct 2022 00:11:38 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 //
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2 // MapController.swift
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 // GeoQuiz
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 //
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 22/10/22.
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 //
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 import Foundation
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9 import MapKit
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11 class MapController: ObservableObject {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12 @Published var image: UIImage? = nil
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
13
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 func getMapImage(lat: Double, lon: Double) {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15 let region = MKCoordinateRegion(
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16 center: CLLocationCoordinate2D(latitude: lat, longitude: lon),
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17 span: MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1)
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18 )
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
20 // Map options
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
21 let mapOptions = MKMapSnapshotter.Options()
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
22 mapOptions.region = region
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 mapOptions.size = CGSize(width: 500, height: 500)
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24 mapOptions.pointOfInterestFilter = .excludingAll
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26 // Create the snapshotter and run it
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 let snapshotter = MKMapSnapshotter(options: mapOptions)
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
28 snapshotter.start { (snapshot, error) in
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
29 if let snapshot = snapshot {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
30 self.image = snapshot.image
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
31 } else if let error = error {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
32 print(error.localizedDescription)
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
33 }
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
34 }
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
35 }
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
36 }