MKMapViewで,マップを表示している範囲を知りたかった

マップを利用しているとき,ビューに表示されているマップの範囲,つまり,左上(NorthWest)の緯度経度と右下(SouthEast)の緯度経度を知りたいというときがあります.

表示している範囲内にだけ処理を施したいとか,そういう時ですね.

こういうときには,MKMapViewの

convertPoint:(CGPoint)toCoordinateFromView:(MKMapView*)

というメソッドが役に立ちます.
例えばマップビュー左上の緯度経度を求めるには,MKMapViewのインスタンスがmapViewであるとすると,

CGPoint northWest = CGPointMake(mapView.bounds.origin.x,mapView.bounds.origin.y);
CLLocationCoordinate2D nwCoord = [mapView convertPoint:northWest toCoordinateFromView:mapView];

右下の緯度経度は,

CGPoint southEast = CGPointMake(mapView.bounds.origin.x+mapView.bounds.size.width,mapView.bounds.origin.y+mapView.bounds.size.height);
CLLocationCoordinate2D seCoord = [mapView convertPoint:southEast toCoordinateFromView:mapView];

でそれぞれ取得することが可能です.

カテゴリー: iOSアプリ開発, 技術的なこと パーマリンク