请先检查此图片
我有一个lat长坐标数组,通过它我创建了一个MKPolyline
现在我想要找到两个MKPolyline
长的交叉点坐标。
为此我尝试了MKPolyLine Intersects或者不是方法,但它只返回bool值,而不是lat long坐标。我也试过http://www.movable-type.co.uk/scripts/latlong.html来找出2点之间的中点,但它没有用。
那么我们可以找到两个MKPolyline
之间的确切交叉点。
答案 0 :(得分:3)
试试这个
CGFloat m1, c1, m2, c2;
CGFloat x11, y11, x12, y12; //line 1
CGFloat x21, y21, x22, y22; //line 2
CGFloat dx, dy;
CGFloat intersection_X, intersection_Y;
dx = x12 - x11;
dy = y12 - y11;
m1 = dy / dx;
c1 = y11 - m1 * x11;
dx = x22 - x21;
dy = y22 - y21;
m2 = dy / dx;
c2 = y22 - m2 * x22;
if( (m1 - m2) == 0)
{
NSLog(@"No Intersection between the lines");
}
else
{
intersection_X = (c2 - c1) / (m1 - m2);
intersection_Y = m1 * intersection_X + c1;
}