☆地図ライブラリ
地図表示;MKMapView/MKUserLocation
MKMapViewは、その名の通り地図を表示するビューである。
地図表示には非常に多くの機能が設定できるため、自身の設定の他、多くのプロトコルや関連クラスを持っている。
地図を所定の座標を中心に、指定サイズで表示でき、また、注釈も付けることが出来る。
このビューはGoogleマップを使って実装されていたが、今はアップル独自のマップである。
が、その出来がどうであるかはここで語るまでも無かろう。
MKMapViewを初期化するときは、最初の表示地域をプロパティで指定する。
領域は、中央点と「スパン」と呼ばれる水平・垂直距離で定義される。
スパンは、与えられた点のどれだけが地図上で見えるかと拡大率を定める。
大きなスパンを指定することは広い範囲を低い拡大率で見ることを意味する。
小さなスパンは、狭い範囲をより高い拡大率で見ることを意味する。
MKMapViewクラスは、スパンを設定することに加え、地図位置と拡大率について多くの標準的な機能を与える。
ここでは、「フリック」(flick)と「ピンチ」(pinch)というジェスチャーがサポートされ、
地図のスクロールと拡大・縮小が出来る
これらの操作はデフォルトで許可されているが、scrollEnabled/zoomEnabledプロパティでON/OFFできる。
いくつかの値を変更した特別の地図を使うことも出来る。
地球の曲面を平面に映すとき、経度線が平行であるように見える地図の二次元のバージョンを得る。
この地図の場所と距離はMKMapPoint、MKMapSizeとMKMapRectデータ型を使って指定される。
これらは、地図の見える地域とオーバーレイの位置を指定するために使う。
MKMapViewは子クラス化すべきではない。地図ビューの挙動についてはデリゲートから情報を得ることが出来る。
地図に注釈を付けること
MKMapViewクラスは、カスタムの情報で地図に注釈(annotation)をつける機能を持つ。
地図は多数の注釈をもつかもしれないので、地図ビューは注釈データとビュー・オブジェクトを区別する。
注釈オブジェクトは、MKAnnotationプロトコルに従う任意のオブジェクトである。
既存のクラスを利用して実装できる。これは注釈データを直接操作できることを意味する。
各々の注釈オブジェクトは、吹き出しで表示される図形情報とともに、地図の上で注釈の場所に関する情報を含む。
注釈オブジェクトの画面上への表示は注釈ビューによって取り扱われる。それはMKAnnotationViewクラスのインスタンスである。
注釈ビューは、意味をなす方向で注釈データを提示する役割を果たす。
例えば、地図アプリケーションは、地図上の特定の地点を示すためにピンアイコンを使う
(MKPinAnnotationViewクラスを利用すればいい)。
地図のより広い部分をカバーする注釈ビューをつくることもできる。
注釈ビューは表示中のみ必要なので、MKMapViewクラスは使用中でないビューをキューイングする機構を提供する。
それらが画面から消えるとき、再利用識別子によって分離され、キューイングされる。
この機能は、少数の注釈ビューのみをメモリに置きビューを再使用することでメモリの利用率を改善する。
これはまた、地図のスクロール中は新規ビューの生成の必要性を軽減することで、スクロールの性能を改善する。
地図インターフェースを構成するときは、注釈オブジェクトの全てをすぐに追加しなければならない。
地図ビューは、対応する注釈ビューがいつ画面に現れる必要があるかについて決定するために、
各々の注釈オブジェクトで座標データを使う。注釈ビューが画面上に来るとき、
地図ビューはデリゲートに注釈ビューを生成するよう頼む。
アプリケーションが異なった種類の注釈を持つことは、異なる注釈を定義する事で可能である。
オーバーレイを地図に加える
地図の広い部分の上に内容を表示するために、「オーバーレイ」を使うことが出来る。
オーバーレイは、MKOverlayプロトコルに従う任意のオブジェクトである。
オーバレイ・オブジェクトは、その形状、大きさと地図上の位置を指定するために必要な点を含むデータオブジェクトである。
オーバレイは、円、長方形、複数領域線分、単純または複雑な多角形で表すことができる。
他の形状を作るためにカスタムオーバーレイを作ることも出来る。
画面上へのオーバーレイの表示は、MKOverlayViewクラスのインスタンスである、オーバーレイビューによって扱われる。
オーバレイ・ビューの仕事は、地図内容の上でオーバレイの形を描くことである。
たとえば、バス・ルートを表すオーバレイは、そのルートに沿って停留所を表しているアイコンに加えて
ルートの通り道を引くオーバレイ・ビューを持つかもしれない。
Mapキット・フレームワークはオーバレイ・オブジェクトの標準的なオーバレイ・ビューの形状を定める。
必要なら、更なるオーバレイ・ビューを定めることができる。
地図インターフェースを構成するとき、オーバーレイオブジェクトはいつでも追加できる
(注釈ビューが即時追加が必要だったのとは異なる)。
地図ビューは、対応するオーバレイ・ビューがいつ画面に現れる必要があるかについて決定するために、
各々のオーバレイ・オブジェクトのデータを使う。
オーバーレイが画面上で動くとき、マップビューはデリゲートにオーバーレイビューを生成するよう頼む。
MKMapView
プロパティ名 | 属性 | 内容 |
NSArray *annotations | R | レシーバーに設定されている注釈の完全なリストを返す |
CGRect annotationVisibleRect | R | 注釈ビューが現在示されている長方形 |
CLLocationCoordinate2D centerCoordinate | R | 地図ビューの中心の地図座標 |
id <MKMapViewDelegate> delegate | S | デリゲートを設定する |
MKMapType mapType | | 地図ビューで表示されるデータ種類
MKMapType(enum値)
MKMapTypeStandard | 全ての道路位置といくつかの道路名を表示する |
MKMapTypeSatellite | 衛星写真 |
MKMapTypeHybrid | 上記2つの合成 |
|
NSArray *overlays | R | 地図ビューに現在割り付けられているオーバーレイ |
MKCoordinateRegion region | | 地図ビューに現在表示されている領域 |
BOOL scrollEnabled | G=isScrollEnabled | 地図をスクロールさせるかどうか |
NSArray *selectedAnnotations | C | 現在選択されている注釈 |
BOOL showsUserLocation | | ユーザー位置を表示するかどうか |
MKUserLocation *userLocation | R | ユーザーの現在の場所を表している注釈オブジェクト |
BOOL userLocationVisible | RG=isUserLocationVisible | デバイスの現在位置が地図ビュー内で表示可能かどうか |
MKMapRect visibleMapRect | | 地図ビューで現在表示されている領域 |
BOOL zoomEnabled | G=isZoomEnabled | ピンチによる拡大を可能にするかどうか |
メソッド名 | 動作 |
-(void)addAnnotation:(id < MKAnnotation >)annotation | 注釈を追加する |
-(void)addAnnotations:(NSArray *)annotations | 配列で注釈を追加する |
-(void)addOverlay:(id < MKOverlay >)overlay | 1つのオーバーレイを追加する |
-(NSSet *)annotationsInMapRect:(MKMapRect)mapRect | 配列でオーバーレイを追加する |
-(CGPoint)convertCoordinate:(CLLocationCoordinate2D)coordinate
toPointToView:(UIView*)view | 指定された地図長方形に位置する注釈オブジェクトを返す
|
-(CLLocationCoordinate2D)convertPoint:(CGPoint)point
toCoordinateFromView:(UIView*)view | 指定されたビューで、地図座標を点に変える
|
-(MKCoordinateRegion)convertRect:(CGRect)rect toRegionFromView:(UIView *)view
| 指定されたビューの座標系での点をシステムの地図座標に変換する
|
-(CGRect)convertRegion:(MKCoordinateRegion)region toRectToView:(UIView *)view
| 指定されたビューの座標系での長方形をシステムの地図座標に変換する
|
-(MKAnnotationView *)dequeueReusableAnnotationViewWithIdentifier:(NSString*)identifier
| IDで示される再利用可能注釈を返す
|
-(void)deselectAnnotation:(id < MKAnnotation >)annotation animated:(BOOL)animated
| 指定された注釈をはずして、その吹き出しビューを隠す。
|
-(void)exchangeOverlayAtIndex:(NSUInteger)index1 withOverlayAtIndex:(NSUInteger)index2
| 2つのオーバーレイの位置を交換する
|
-(void)insertOverlay:(id < MKOverlay >)overlay
aboveOverlay:(id <MKOverlay>)sibling |
atIndex:(NSUInteger)index |
belowOverlay:(id <MKOverlay>)sibling |
|
地図ビューにオーバレイを加え、指定されたsiblingオブジェクトの上に置く |
地図上のオーバーレイオブジェクトの指定位置にオーバーレイを挿入する |
地図ビューにオーバレイを加え、指定されたsiblingオブジェクトの下に置く |
|
-(MKMapRect)mapRectThatFits:(MKMapRect)mapRect
なし |
edgePadding:(UIEdgeInsets)insets |
|
指定された地図長方形のアスペクト比を、地図ビューのフレームにはまるように調整する |
指定されたインセット値で指定された地図長方形のアスペクト比を調節する |
|
-(MKCoordinateRegion)regionThatFits:(MKCoordinateRegion)region
| 指定された領域のアスペクト比が、地図ビューのフレームをはまるよう調整する
|
-(void)removeAnnotation:(id < MKAnnotation >)annotation | 地図ビューから指定注釈を取り除く |
-(void)removeAnnotations:(NSArray *)annotations | 配列で指定した注釈を地図ビューから取り除く |
-(void)removeOverlay:(id < MKOverlay >)overlay | 1つのオーバーレイを地図から取り除く |
-(void)removeOverlays:(NSArray *)overlays | 配列で指定したオーバーレイを地図から取り除く |
-(void)selectAnnotation:(id < MKAnnotation >)annotation animated:(BOOL)animated
| 指定した注釈と吹き出しビュー表示を選択する(アニメーション付き)
|
-(void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate animated:(BOOL)animated
| 地図の中心座標を変更する(アニメーション付き)
|
-(void)setRegion:(MKCoordinateRegion)region animated:(BOOL)animated | 現在の表示可能領域を変更する(アニメーション付き) |
-(void)setVisibleMapRect:(MKMapRect)mapRect
animated:(BOOL)animate |
edgePadding:(UIEdgeInsets)insets animated:(BOOL)animate |
| 共にアニメーション付き
地図の現在見える部分を変更する |
地図の現在見える部分を変更する;端の周辺のさらなるスペースを指定できる |
|
-(MKAnnotationView *)viewForAnnotation:(id < MKAnnotation >)annotation
| 指定された注釈オブジェクトに関連した注釈ビューがあればそれを返す。
|
-(MKOverlayView *)viewForOverlay:(id < MKOverlay >)overlay
| オーバーレイオブジェクトに割り付けられたビューを返す
|
デリゲートは
MKMapViewDelegateプロトコルで実装する。
メソッド名 | 動作 |
-(void)mapView:(MKMapView *)mapView
annotationView:(MKAnnotationView *)view
calloutAccessoryControlTapped:(UIControl *)control |
nnotationView:(MKAnnotationView*)annotationView
didChangeDragState:(MKAnnotationViewDragState)newState
fromOldState:(MKAnnotationViewDragState)oldState |
didAddAnnotationViews:(NSArray *)views |
didAddOverlayViews:(NSArray *)overlayViews |
didDeselectAnnotationView:(MKAnnotationView*)view |
didFailToLocateUserWithError:(NSError *)error |
didSelectAnnotationView:(MKAnnotationView*)view |
didUpdateUserLocation:(MKUserLocation*)userLocation |
regionDidChangeAnimated:(BOOL)animated |
regionWillChangeAnimated:(BOOL)animated |
|
注釈ビューのアクセサリボタンの1つをユーザーがタップした時 |
ドラッグで注釈ビューの1つが変化した |
1つ以上の注釈ビューが地図上に追加された |
1つ以上のオーバーレイが地図上に追加された |
注釈ビューの1つが非選択になった |
ユーザーの位置が見つけられなかった |
注釈ビューの1つが選択された |
ユーザー位置が更新された |
マップビューで表示された領域が更新されたちょうどその時 |
マップビューで表示された領域が更新される時 |
|
-(MKAnnotationView *)mapView:(MKMapView *)mapView
viewForAnnotation:(id <MKAnnotation>)annotation
| 指定注釈オブジェクトに割り付けられたビューを返す
|
-(MKOverlayView *)mapView:(MKMapView *)mapView
viewForOverlay:(id <MKOverlay>)overlay
| 指定されたオーバーレイオブジェクトが表示されたとき
|
-(void)mapViewDidFailLoadingMap:(MKMapView *)mapView withError:(NSError *)error
| 指定されたビューが地図データを読み込めなかった
|
-(void)mapViewDidFinishLoadingMap:(MKMapView *)mapView
| 指定された地図ビューが地図データを読み込めた
|
-(void)mapViewDidStopLocatingUser:(MKMapView *)mapView
| マップビューがユーザー位置の追跡を止めた
|
-(void)mapViewWillStartLoadingMap:(MKMapView *)mapView
| 指定された地図ビューが若干の地図データを検索しようとしている
|
-(void)mapViewWillStartLocatingUser:(MKMapView *)mapView
| 地図ビューがユーザー位置の追跡を始める
|
従うべきプロトコルは以下の通り。
MKAnnotation
プロパティ名 | 属性 | 内容 |
CLLocationCoordinate2D coordinate | R | 注釈の中心の点(地図座標として指定される) |
メソッド名 | 動作 |
-(void)setCoordinate:(CLLocationCoordinate2D)newCoordinate | 注釈の中心点を設定する |
-(NSString *)subtitle | 注釈のサブタイトル文字列 |
-(NSString *)title | 注釈のタイトル文字列 |
MKOverlay
プロパティ名 | 属性 | 内容 |
MKMapRect boundingMapRect | R | オーバレイを含む計画された長方形 |
CLLocationCoordinate2D coordinate | R | オーバレイ域のおよその中心の点 |
メソッド名 | 動作 |
-(BOOL)intersectsMapRect:(MKMapRect)mapRect | 指定された長方形がレシーバーの形と交差するかどうか |
MKUserLocationクラスは、ユーザーの現在の場所を特定する、特異的な種類の注釈を定める。
このクラスのインスタンスを直接作ることはない。
その代わりに、既存のMKUserLocationオブジェクトを、あなたのアプリケーションで表示されている地図ビューのuserLocationプロパティ表示
から取り戻す。
MKUserLocation
プロパティ名 | 属性 | 内容 |
CLLocation *location | R | デバイスの現在位置 |
NSString *subtitle | T | ユーザー位置注釈に表示するサブタイトル |
NSString *title | T | ユーザー位置注釈に表示するタイトル |
BOOL updating | RG=isUpdating | ユーザー位置情報が現在更新されているかどうか |
地図系で使うデータ型は以下のように定義されている。
型名 | 実定義 | 内容 |
MKCoordinateSpan | 構造体 | 地図領域によるスパンの定義 |
MKCoordinateRegion | 構造体 | 地図のどの部分を示すべきかについて定める構造体 |
MKMapPoint | 構造体 | 二次元の投影法の点 |
MKMapSize | 構造体 | 二次元の投影法で測定されるサイズ情報 |
MKMapRect | 構造体 | 二次元の投影法で測定される長方形の地域 |
MKZoomScale | CGFloat | 地図の縮尺 |
地図注釈;MKAnnotationView/MKPinAnnotationView/MKShape
MKAnnotationViewクラスは、地図表示で視覚的に注釈を提示する役割を果たす。
注釈表示は対応する注釈オブジェクトにゆるく結合する。そして、それはMKAnnotationプロトコルと一致する物である。
注釈の座標点が見える地域にあるとき、地図表示はその代表に対応する注釈表示を提供するよう頼む。
注釈ビューは後でリサイクルされるかもしれなくて、地図表示によって維持される再利用キューに入れられるかも知れない。
内容を注釈表示に提供する最も効率的な方法は、そのimageプロパティに設定することである。
注釈ビューのサイズは自動的に、指定するイメージの大きさに合わせ、その内容を描画する。
それがビューであるが、しかしながら、drawRect:メソッドをオーバーライドすることで、
ビュー内容の表示をマニュアルで行うことも出来る。
drawRect:メソッドのオーバーライドを直接行い、imageプロパティでカスタムの画像を指定しないときは、
注釈ビューのフレームの幅と高さがデフォルトで0をつけられるので注意。
あなたのカスタムの内容が描画できる前に、ビューのframeプロパティで、幅と高さを0以外に設定しなければならい。
一般に、あなたの内容が完全に性的画像からなるならば、画像を自身で描画するより、imageプロパティを設定して、
必要に応じてそれを変更することが効率的である。
注釈ビューは彼らの関連する注釈オブジェクトで特定された地図の点に固定される。
それらが地図内容とともにスクロールするが、注釈ビューは分離された表示レイヤーにあって、表示可能な地図領域の大きさが変わっても
縮尺を変えない。
注釈ビューは、選択状態の概念を支える。それは、ビューが非選択、選択中、または選択されて吹き出しビューが表示されていることを決定する。
ユーザーは、注釈ビューとの相互作用を通して、選択状態を切り替える。
非選択状態では、注釈ビューは表示されても強調表示化はされない。
選択中状態では、注釈は強調表示化されるが、吹き出しは表示しない。
そして最後に、最後に、注釈は強調表示と吹き出しで表示されることができる。
タイトル情報は注釈オブジェクトから提供される。しかし、注釈ビューはどんなカスタムの制御も提供する役割を果たす。
注釈表示の再利用
注釈ビューは、ユーザーまたはアプリケーションが見える地図領域を変更したとき、再利用出来るように設計されている。
注釈ビューの再利用は、クリティカルな処理の間新しいビューオブジェクトの生成を抑えることは、スクロール性能の飛躍的な改善をもたらす。
このため、注釈ビューはその関連した注釈の内容に、きつく結合してはいけない。
その代わり、注釈ビューのプロパティー(またはsetterメソッド)が、新しい注釈オブジェクトの構成を可能にする。
新しい注釈ビューを初期化するときは、そのビューに再利用IDを常に指定しなければならない。
注釈ビューがもはや必要ないなら、地図ビューはそれを再利用キューに入れるかもしれない。
新しい注釈が地図ビューに加えられるとき、デリゲートは再利用キューから取り除き、
(新しい物を作るよりかは)存在するビューを再構成する。それにはMKMapViewのdequeueReusableAnnotationViewWithIdentifier:メソッドを使う。
子クラス化での注意
このままMKAnnotationViewクラスを使うだけでなく、必要に応じてカスタムのふるまいを提供するために、子クラスにできる。
imageプロパティーは、注釈ビューの外観を子クラス化することなく設定できる。
MKPinAnnotationView子クラスは、ピン画像で注釈ビューの内容を初期化する。
MKAnnotationViewを子クラス化するに特別な要求条件はない。
しかしながら、以下のリストは子クラス化するいくつかの理由を含み、また望む振る舞いのためにメソッドのオーバーライドが必要かもしれない
- 注釈ビューを一貫した状態に入れるために、カスタム初期化メソッドを提供しなさい。
そのカスタムの初期化メソッドは、initWithAnnotation:reuseIdentifier:メソッドを呼び出して親クラスを初期化すること。
- カスタムの吹き出しビューを提供するために、leftCalloutAccessoryViewメソッドをオーバーライドして、ビューを返すために、それを使いなさい。
後でドラッグ可能な注釈ビューをサポートするならば、子クラスはdragStateプロパティーで変更される値に責任を負う必要がある。
それは、ドラッグ操作の重要な転移点に相当する値である。
MKAnnotationView
プロパティ名 | 属性 | 内容 |
id <MKAnnotation> annotation | T | 現在のビューに割り付けらている注釈オブジェクト |
CGPoint calloutOffset | | callout吹き出しを配置するオフセット(ピクセル単位) |
BOOL canShowCallout | | 注釈ビューが拡張情報を吹き出しビューで表示できるかどうか |
CGPoint centerOffset | | ビューを表示する時のオフセット(ピクセル単位) |
BOOL draggable | G=isDraggable | 注釈ビューがドラッグ可能かどうか |
MKAnnotationViewDragState dragState | | 注釈ビューの現在のドラッグ状態
MKAnnotationViewDragState(enum値)
MKAnnotationViewDragStateNone | ドラッグ動作不可 |
MKAnnotationViewDragStateStarting | ドラッグが始まった |
MKAnnotationViewDragStateDragging | ドラッグ中で、追跡中 |
MKAnnotationViewDragStateCanceling | ドラッグがキャンセルされた |
MKAnnotationViewDragStateEnding | ビューがユーザーによりドロップされた |
|
BOOL enabled | G=isEnabled | 注釈が有効かどうか |
BOOL highlighted | G=isHighlighted | 注釈ビューが強調表示表示されるかどうか |
UIImage *image | T | 注釈ビューで表示される画像 |
UIView *leftCalloutAccessoryView | T | 標準的な吹き出しの左上への表示するビュー |
UIView *rightCalloutAccessoryView | T | 標準的な吹き出しの右上への表示するビュー |
NSString *reuseIdentifier | R | 注釈ビューの再利用ID |
BOOL selected | G=isSelected | 注釈ビューが現在選択されているかどうか |
メソッド名 | 動作 |
-(id)initWithAnnotation:(id <MKAnnotation>)annotation
reuseIdentifier:(NSString*)reuseIdentifier
| 新しい注釈ビューを初期化する
|
-(void)prepareForReuse | ビューが再利用キューから取り除かれたときに呼び出される |
-(void)setDragState:(MKAnnotationViewDragState)newDragState
animated:(BOOL)animated
| 現在の注釈ビューに現在のドラッグ状態を設定する
|
-(void)setSelected:(BOOL)selected animated:(BOOL)animated | 注釈ビューの選択状態を設定する |
MKPinAnnotationViewクラスは、具体的な注釈ビューの1つであり、
地図アプリケーションにあるピン・アイコンを表示するものである。
このクラスを使うことで、アニメーション付きで、ピンを刺すような設計をすることが出来る。
MKPinAnnotationView
プロパティ名 | 属性 | 内容 |
BOOL animatesDrop | | 注釈ビューが画面上でアニメーションするかどうか |
MKPinAnnotationColor pinColor | | ピン頭の色
MKPinAnnotationColor(enum値)
MKPinAnnotationColorRed | 赤 |
MKPinAnnotationColorGreen | 緑 |
MKPinAnnotationColorPurple | 紫 |
|
MKShapeクラスは、すべての形ベースの注釈オブジェクトのために基本的な特性を定める抽象クラスである。
このクラスは子クラスで使う物であり、このまま使われることはない。
子クラスは、幾何学的形状を定め、適当な値をMKAnnotationプロトコルから継承するcoordinateプロパティに提供する役割を果たす。
MKShape
プロパティ名 | 属性 | 内容 |
NSString *subtitle | C | 形状注釈のサブタイトル |
NSString *title | C | 形状注釈のタイトル |
地図オーバーレイ;MKOverlayView
MKOverlayViewクラスは、すべてのオーバレイビューと関連した基本的なふるまいを定義する。
オーバレイビュー、オーバレイオブジェクト(つまりMKOverlayプロトコルに従うオブジェクト)の視覚の表現を提供する。
このクラスは地図ビューによって使われる描画基盤を定義するが、実描画は行わない。
子クラスは、オーバーレイビューの内容の描画のためにdrawMapRect:zoomScale:inContext:メソッドをオーバーライドする。
地図キット・フレームワークは、オーバレイビューのいくつかの具体的事例を提供する。
具体的には、それはオーバレイビューを具体的なオーバレイオブジェクトの各々として提供する。
これらの既存のオーバレイビューのうちの1つを使うことができるが、異なった内容のオーバーレイを描画したいなら、
独自に子クラスを定めることもできる。
子クラス化での注意
カスタムの形状と内容を持ったオーバーレイを、MKOverlayViewの子クラスとして作ることが出来る。
子クラスがオーバーライドすることになっている唯一のメソッドは、drawMapRect:zoomScale:inContext:メソッドである。
しかし、あなたのクラスはが描画をすぐに始められないかもしれない。
その時はcanDrawMapRect:zoomScale: メソッドもオーバーライドし、
描画する準備ができていてできると報告するために、それを使いなさい。
drawMapRect:zoomScale:inContext: メソッドの実装は、同時に複数のスレッドで走ることが出来る様にしなければならない。
パフォーマンスの改善のために、地図ビューは十分に大きいオーバーレイにタイルを貼るかもしれない。
そして、それぞれのタイルに分割されたスレッドを割り当てるかもしれない。
MKOverlayView
プロパティ名 | 属性 | 内容 |
id <MKOverlay> overlay | R | 描画データを含んでいるオーバーレイオブジェクト |
メソッド名 | 動作 |
-(BOOL)canDrawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale
| オーバーレイが内容を描画する準備が出来ているかどうか
|
-(void)drawMapRect:(MKMapRect)mapRect
zoomScale:(MKZoomScale)zoomScale
inContext:(CGContextRef)context
| オーバーレイビューの内容を描画する
|
-(id)initWithOverlay:(id <MKOverlay>)overlay | オーバレイビューを初期化して、それを指定されたオーバレイオブジェクトと結びつける |
-(MKMapPoint)mapPointForPoint:(CGPoint)point | オーバレイビューで指定された点と一致する地図点を返す |
-(MKMapRect)mapRectForRect:(CGRect)rect | オーバレイ・ビューの座標系で長方形と一致する地図長方形を返す |
-(CGPoint)pointForMapPoint:(MKMapPoint)mapPoint | 地図の上で指定された点と一致するオーバレイビュー内の点を返す |
-(CGRect)rectForMapRect:(MKMapRect)mapRect | 地図の上で指定された長方形と一致するオーバレイビュー内の長方形を返す |
-(void)setNeedsDisplayInMapRect:(MKMapRect)mapRect
なし |
zoomScale:(MKZoomScale)zoomScale |
|
全ての地図縮尺で与えられた地図長方形内のビューを無効にする |
特定の地図縮尺でのみ、与えられた地図長方形内のビューを無効にする |
|