MKPolyline相交坐标ios

时间:2016-06-29 07:29:10

标签: objective-c mkmapview mapkit mkpolyline mkmapitem

请先检查此图片

enter image description here

我有一个lat长坐标数组,通过它我创建了一个MKPolyline现在我想要找到两个MKPolyline长的交叉点坐标。 为此我尝试了MKPolyLine Intersects或者不是方法,但它只返回bool值,而不是lat long坐标。我也试过http://www.movable-type.co.uk/scripts/latlong.html来找出2点之间的中点,但它没有用。 那么我们可以找到两个MKPolyline之间的确切交叉点。

1 个答案:

答案 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;
}