MapKit基本知識

2021-06-13 17:37:12 字數 2168 閱讀 5215

user location:

mapviews 用core location 來儲存使用者的路徑並在地圖上用乙個藍色的點表示出來。 你可以開啟:mapview.showuserlocation = yes;

如果地圖跟蹤的是使用者的未知,你可以通過唯讀的屬性userlcoationvisible 來檢測使用者當前的位置是不是可見的。如果是yes,就是可見的。

你可以首先設定 showsuserlocation 為 yes來得到使用者當前指定的座標。然後訪問userlocation 屬性。這個屬性返回乙個mkuserlocation的例項變數。 mkuserlocation 是乙個物件,有乙個屬性叫做location(cllocation 型別)。 乙個cllocation 包含乙個coordinate屬性指向乙個座標的集合,所有的這些意味著你可以得到實際的座標從mkuserlocation物件裡:下屬那個:

cllocationcoordinae2d coords = mapview.userlocation.location.coordinate;

coordinate regions

如果你不告訴要顯示什麼或者找出世界上的當前某個具體的位置,那麼map view 就不那麼smart了。 通過map view, 做到這些工作的關鍵是 mkcoordinateregion, 乙個結構包含兩部分資料,同時也定義了在map view種要顯示的位置。

第乙個成員是 center 。 這是另外乙個結構型別是:cllocationcoordinate2d,  乙個cllocationcoordinate2d包含兩個浮點數值,經度和緯度。 這個點代表著map view的中間。

第二個叫做span。 是mkcoordinatespan型別的結構。 它有兩個程式叫做 latitudedelta and longitudedelta。 這兩個程式被用來設定地圖的縮放級別——在center周圍應該顯示多大的區域。

這些值代表經度和緯度的距離。如果latitudedelta and longitudedelta是很小的,地圖將會被縮放的十分密集,如果大的話,地圖將會被放大並顯示乙個較大的區域。

convert degree to distance

每乙個緯度代表69英里,或者是111km,不論你在那裡。這樣就使作為mkcoordinatespan的引數的 latitudedelta被傳遞的時候更容易計算。

mkcoordinateregionmakewithdistance() 建立乙個region。 你提供座標作為center , 距離(m)為經度和緯度的span。 例如建立乙個region 來顯示指定區域位置 1km。 通過呼叫 cllocationcoordinate2d 

mkcoordinateregion viewregion = mkcoordinateregionmakewithdistance(center, 2000, 2000);

為了顯示每個邊周圍的1km, 我們必須指定2000m 為每個span:1000m向左,1000m向右,1000m向上,1000m向下。 呼叫之後,viewregion 將會包含乙個格式化的mkcoordinateregion,當然你可以使用了。剩下的就是比率轉換問題了。

橫總比:

mkmapview 類優乙個例項方法將會適應乙個座標區域來匹配map view的橫縱比例。 regionthatfits:

使用的時候你只需在你建立的座標區域裡面傳遞,同時它會返回乙個新的座標區域來適應map view的比例。

mkcoordinateregion adjustedregion = [mapview regionthatfits:viewregion[;

設定區域顯示:

一旦建立好座標區域,你可以告訴map view 來顯示通過setregion:animated:方法建立的區域。如果你傳遞yes給第二個引數,mapview將會縮放移動等。

mkcoordinateregion viewregion = mkcoordinateregionmakewithdistance(center,2000,2000);

mkcoordinateregion adjustedregion = [mapview regionthatfits:viewregion];

[mapview setregion:adjustedregion animated:yes];

Oracle 基本知識

乙個表空間只能屬於乙個資料庫 每個資料庫最少有乙個控制檔案 建議3個,分別放在不同的磁碟上 每個資料庫最少有乙個表空間 system表空間 建立system表空間的目的是盡量將目的相同的表存放在一起,以提高使用效率,只應存放資料字典 每個資料庫最少有兩個聯機日誌組,每組最少乙個聯機日誌檔案 乙個資料...

Oracle 基本知識

乙個表空間只能屬於乙個資料庫 每個資料庫最少有乙個控制檔案 建議3個,分別放在不同的磁碟上 每個資料庫最少有乙個表空間 system表空間 建立system表空間的目的是盡量將目的相同的表存放在一起,以提高使用效率 每個資料庫最少有兩個聯機日誌檔案 乙個資料檔案只能屬於乙個表空間 乙個資料檔案一旦被...

Oracle 基本知識

oracle 文章摘要 oracle 基本知識。正文 oracle 基本知識 乙個表空間只能屬於乙個資料庫 每個資料庫最少有乙個控制檔案 建議3個,分別放在不同的磁碟上 每個資料庫最少有乙個表空間 system表空間 建立system表空間的目的是盡量將目的相同的表存放在一起,以提高使用效率 每個資...