Swift Practice # 147 SwiftUI 取得位置資訊與標註地點

Dogpa Chen
Apr 17, 2022

--

上一篇知道了如何透過套件把相機當作條碼掃瞄機,是目前想到的一個專案的預設功能。

這篇則要研究專案的另一個功能,因為需要取得使用者的位置所以要透過SwiftUI研究如何取得使用者位置後顯示在Map上。

學習資源:

這次透過iOS youtuber Sean Allen 大神的教學來理解SwiftUI取得地理位置的方式以及App Coda得知標注方式。

1 Simulator使用客製化地理位置:

1–1建立專案後先開Run Simulator後,點選Features>Location>Current Location。

1–2:輸入自己指定的經緯度座標,在這裡我是設定25.07167 / 121.52216,往下看應該就可以看到是在哪裡了。

2 取得使用者地理資訊權限:

因為隱私權關係,所以我們必須設定使用者在首次點開App後詢問使用者是否提供位置,跟取得相機的權限一樣。

2–1 :plist中新增Privacy — Location When In Use Usage Description並輸入自己想出現的提示文字。

3 地點標註的Struct:

跟著Sean Allen 與 App Coda的程式碼改寫成自己的內容。首先建立關於地圖標註的Struct,後續要透過這個Struct來帶入這個Struct顯示標註地點。

4 定位的ViewModel與初始的地理位置資訊enum以及圖示比例尺大小:

5 ContentView實作View:

可以看到剛剛在plist要求的請求權限出現了。

來看看實際的結果:

另外我們可以來看看MKCoordinateSpan設定不同的值地圖顯示的大小差異。

下圖從左至右分別為latitudeDelta, longitudeDelta都設定為0.1 / 0.01 / 0.005可以依照自己設定的需求來進行調整。可以看到我最初設定的位置是圓山花博公園。可以設定其他的位置來看看Map是否有跟著設定不同的經緯度而改變。

左0.1 / 中0.01 / 右0.005

以上就是透過網路資源將地理位置與標註的位置顯示在Map上的方法,之後可以找看看Google Map做為底層的顯示方式。持續加油!!

--

--

Dogpa Chen
Dogpa Chen

Written by Dogpa Chen

Smile Coding / iOS轉職路ING

No responses yet