原本要補在昨天的後面,但為了騙稿費(哪有這種東西?)只好勉為其難地再開一篇。
想解決的問題:如何在 google map 讓兩點之間連成線?
首先 Google Map iOS SDK 並沒有直接畫線的 function ,舉例來說 andriod 裡面有 .drawRoute() 可以直接調用,但是 iOS 裡面 並、沒、有 所以只好自己包一層了。
1.先取到第一個點和第二個點的經緯度
2. 然後在 url 裡面帶入相關參數去請求,下來利用一般解析 JSON 的方法去取資料,
3. 最後在用 GMSPath 和 GMSPolyLine 去畫線
4. 過來就設定 PolyLine 的屬性
5. 最後就大功告成了 棒棒!~~
6. 過來就可以吃皮薩ㄌ
要判斷距離可以這樣寫一個 helper:
static func distanceFrom(lat1:Double, lng1:Double, lat2:Double, lng2:Double) -> Double {
guard let degressLat1 = CLLocationDegrees(exactly: lat1) else { return 0 }
guard let degressLng1 = CLLocationDegrees(exactly: lng1) else { return 0 }
guard let degressLat2 = CLLocationDegrees(exactly: lat2) else { return 0 }
guard let degressLng2 = CLLocationDegrees(exactly: lng2) else { return 0 }
let location1 = CLLocation(latitude: degressLat1, longitude: degressLng1)
let location2 = CLLocation(latitude: degressLat2, longitude: degressLng2)
return location1.distance(from: location2)