我想实现以下目标,我不知道是否可能.我在路上有两个点(想象就像一条终点线 - 它们是人行道的两个边缘 - 它们是直线的)我想检查用户的路线是否已经在这些点之间传递.
所以我想,我可以这样做:
如果它是纯粹的几何形状,那将很容易.我有两条线,我想知道它们之间是否有任何交叉.
我想在IOS项目中使用以下内容,如果它有任何区别.例如,我认为可能有编程方式绘制MKPolylines并查看是否存在交集.我不想在视觉上看到它,我只是需要它以编程方式.
可能吗?你能告诉我别的什么吗?
没有直接的方法来检查该交叉点。
您可以通过将纬度/经度位置转换为地图位置(应用变换以展平到标准化网格)来将问题转化为几何问题。这可以通过 来完成MKMapPointForCoordinate。
需要考虑的一件事是 GPS 报告的位置不准确。在许多情况下,您会发现 GPS 报告的轨迹实际上并不在路上,而是在路边跑步。特别是在转弯(急转弯)时,您经常会在赛道上出现大弯道。因此,您可能需要延长“终点线”的宽度来弥补这一点。
如果您只关心用户是否在设定点的一定距离内,那么您可以创建一个CLRegion来表示目标位置,然后containsCoordinate:使用当前用户位置进行调用。这会删除任何投影并直接使用纬度/经度。您还可以让系统为您监控这一情况,并在用户使用 进入或退出该区域时给您回调startMonitoringForRegion:desiredAccuracy:。同样,设置半径时需要考虑 GPS 精度。
| 归档时间: |
|
| 查看次数: |
1875 次 |
| 最近记录: |