Swift3 從入門到精通Day21:地圖

時間:6/22(四)

TIL:地圖顯示、設定地圖上的大頭針、追蹤使用者的位置

心得:地圖真的超酷的好棒,不過是跟著老師範例打的程式碼。

要記住這些龐大的知識,還是要自己實作或改寫才會學起來!


163. 結構(struct)

產生物件可使用class、enum、struct

約定成俗struct的命名方式跟class一樣第一個字為大寫

struct與class不同:class有屬性要用init方法,struct就不用在物件初始值設定就好

範例:


164. struct 跟 class 的分別

  1. struct不能有子類別,class可以。
  2. struct為實質型別value type,適合儲存簡單資料。地圖多用struct。
  3. class為參考型別refernce type,適合處理操作資料。

因為sizeClass1跟sizeClass2吃同一塊記憶體

所以sizeClass1值改變sizeClass2就會改變

看常數的例子

number1即便改成10,number2也不會修改。

因為在number1=number2的時候是把number1複製給number2

sizeStruct就像常數一樣是不會更動的。


設定地圖:

想要顯示區塊需要以下的資訊

以巴黎為例:

xScale:CLLocationDegrees跟yScale:CLLocationDegrees

數字越小放越大,但可以看下面是1跟0.01的範例。

xScale:CLLocationDegrees = 0.01
xScale:CLLocationDegrees = 1

如何取得map經緯度呢?google map

選擇“這是哪裡?”下面就會有經緯度可以使用

map.mapType是enum有列舉

分別是以下模式:hybrid、satellite、standard的預覽圖。

設定地圖上的大頭針MKPointAnnotation:

長按放下大頭針功能:

先把Long press gesture recongnizer拖曳到storyboard
偵測一根手指兩秒長按
連結到畫面上

拿著手機到某地可以知道現在位置的功能

把map拉到storyboard然後將User Location打勾
選擇Privacy — Location When In Use
寫上使用的理由
完成以下程式碼就可以了

選擇追蹤的精準度

171. 追蹤使用者的位置

模擬騎車狀態