Swift Practice # 147 SwiftUI 取得位置資訊與標註地點
上一篇知道了如何透過套件把相機當作條碼掃瞄機,是目前想到的一個專案的預設功能。
這篇則要研究專案的另一個功能,因為需要取得使用者的位置所以要透過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是否有跟著設定不同的經緯度而改變。
以上就是透過網路資源將地理位置與標註的位置顯示在Map上的方法,之後可以找看看Google Map做為底層的顯示方式。持續加油!!