我有一个已确定的坐标区域,其中包含我想为我的应用显示的内容的限制。我已将其设置为具有中心点纬度、经度和跨度的 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
Swift 3 版本的firstresponder的回答:
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 回答