将一个引脚放到MapView iOS中2点之间的线上

时间:2015-04-04 04:54:11

标签: ios objective-c annotations location mapkit

我遇到了问题:我有商店位置 1针注释,Radius = 2km。当用户移动引脚注释超过距离商店位置2km的半径。我想从商店位置和旧引脚注释跳转线上的引脚,以便圆半径始终覆盖商店位置。我怎样才能做到这一点?请给我一些建议。非常感谢。

1 个答案:

答案 0 :(得分:0)

保持商店位置覆盖意味着将销钉限制在商店周围2公里的圆圈内。如果商店位于(0,0)而你的点位于(dx,dy),那么找到距离:    R = sqrt(dx * dx + dy * dy)。

现在如果R> 2km,找到缩放距离的因子:   s = 2km / R.

现在将点移动到(s * dx,s * dy),这将完全位于商店周围2公里的圆圈上,因此商店将位于销钉周围2公里的圆周上。