アプリに表示したいものの制限が含まれていると判断した座標領域があります。これを、中心点の緯度、経度、スパンを持つMKCoordinateRegionとして設定しました。現在のuserLocationが座標領域内にあるかどうかを確認するにはどうすればよいですか?
2682 次
3 に答える
9
マップ長方形を使用します。これは、マップの現在表示されている四角形を使用した例です。あなたの質問に関しては、あなたは最初にあなたの地域を事前convertRegion:toRectToView:
に変換するために使うことができます。MKMapRect
MKMapPoint userPoint = MKMapPointForCoordinate(mapView.userLocation.location.coordinate);
MKMapRect mapRect = mapView.visibleMapRect;
BOOL inside = MKMapRectContainsPoint(mapRect, userPoint);
于 2012-03-27T05:44:43.010 に答える
2
ファーストレスポンダーの答えのSwift3バージョン:
let userPoint = MKMapPointForCoordinate(mapView.userLocation.coordinate)
let mapRect = mapView.visibleMapRect
let inside = MKMapRectContainsPoint(mapRect, userPoint)
ほぼ同じです。このAPIはまだSwift化されていません(つまり、Swift API設計ガイドラインに準拠するように更新されています)。それは本当にあるべきです...
let userPoint = mapView.userLocation.coordinate.mapPoint
let inside = mapView.visibleMapRect.contains(userPoint)
于 2017-01-01T13:08:42.207 に答える
0
エリアがレイキャスティングアルゴリズムを使用してポリゴンによって与えられている場合、ポイントがエリア内にあるかどうかを判断する簡単な解決策があります。http://en.wikipedia.org/wiki/Point_in_polygonを参照してください。
出発点として、(地理的な)北極など、地域の外側にあることが保証されている場所を使用します。
于 2012-02-01T07:55:13.843 に答える