Dimitris Togias

add directions url

...@@ -25,6 +25,7 @@ class MapsViewController: UIViewController, MKMapViewDelegate { ...@@ -25,6 +25,7 @@ class MapsViewController: UIViewController, MKMapViewDelegate {
25 // public 25 // public
26 public var couponSet: swiftApi.CouponSetItemModel? 26 public var couponSet: swiftApi.CouponSetItemModel?
27 var merchantsArray:Array<swiftApi.MerchantModel> = [] 27 var merchantsArray:Array<swiftApi.MerchantModel> = []
28 + var selectedMerchant: swiftApi.MerchantModel?
28 29
29 // 30 //
30 var loading: Bool = false 31 var loading: Bool = false
...@@ -112,6 +113,24 @@ class MapsViewController: UIViewController, MKMapViewDelegate { ...@@ -112,6 +113,24 @@ class MapsViewController: UIViewController, MKMapViewDelegate {
112 113
113 @IBAction func directionsButtomAction(_ sender: Any) { 114 @IBAction func directionsButtomAction(_ sender: Any) {
114 115
116 + guard let lon = selectedMerchant?._longitude, let lat = selectedMerchant?._latitude else {
117 + return
118 + }
119 +
120 + // guard your URL instances
121 + guard let googleMapsUrl = URL(string: String(format: "https://www.google.com/maps/@%.6f,%.6f,6z", lat, lon)),
122 + let appleMapsUrl = URL(string: String(format: "http://maps.apple.com/?ll=%.6f,%.6f", lat, lon)) else {
123 + print("Error creating URLs")
124 + return
125 + }
126 +
127 + // check if link can be opened with google maps.
128 + guard UIApplication.shared.canOpenURL(googleMapsUrl) else {
129 + UIApplication.shared.open(appleMapsUrl, options: [:], completionHandler: nil)
130 + return
131 + }
132 +
133 + UIApplication.shared.open(googleMapsUrl, options: [:], completionHandler: nil)
115 } 134 }
116 135
117 private func loadMapPins() { 136 private func loadMapPins() {
...@@ -122,6 +141,8 @@ class MapsViewController: UIViewController, MKMapViewDelegate { ...@@ -122,6 +141,8 @@ class MapsViewController: UIViewController, MKMapViewDelegate {
122 } 141 }
123 142
124 private func loadPinDetailsView(_ annotation: MerchantAnnotation) { 143 private func loadPinDetailsView(_ annotation: MerchantAnnotation) {
144 + self.selectedMerchant = annotation.model
145 +
125 self.titleView.text = "INTERSPORT" 146 self.titleView.text = "INTERSPORT"
126 self.nameImageView.image = UIImage(named: "intersport") 147 self.nameImageView.image = UIImage(named: "intersport")
127 self.nameView.text = "Intersport Χαλάνδρι" 148 self.nameView.text = "Intersport Χαλάνδρι"
...@@ -138,6 +159,8 @@ class MapsViewController: UIViewController, MKMapViewDelegate { ...@@ -138,6 +159,8 @@ class MapsViewController: UIViewController, MKMapViewDelegate {
138 } 159 }
139 160
140 private func hidePinDetailsView() { 161 private func hidePinDetailsView() {
162 + self.selectedMerchant = nil
163 +
141 self.infoTopConstraint.constant = 0 164 self.infoTopConstraint.constant = 0
142 UIView.animate(withDuration: 2.0) { 165 UIView.animate(withDuration: 2.0) {
143 self.view.layoutIfNeeded() 166 self.view.layoutIfNeeded()
......