iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
0

原本要補在昨天的後面,但為了騙稿費(哪有這種東西?)只好勉為其難地再開一篇。

想解決的問題:如何在 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)

上一篇
有了 Google Map 我將不在迷路
下一篇
Class func vs Static func
系列文
iOS 開發:燃燒吧! 從初心者到超級初心者的轉職之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言