2016-06-29 18 views
1

Bitte aktivieren Sie dieses Bild zuerstMKPolyline Schneidene Koordinaten ios

enter image description here

Ich habe ein Array von lat lange Koordinaten durch die ich erstellt ein MKPolyline jetzt will ich koordiniert den Schnittpunkt finden lat lang von zwei MKPolyline. Dafür habe ich MKPolyLine Intersects oder nicht Methode versucht, aber es gibt nur den bool Wert, nicht lat lange Koordinaten. Ich habe auch http://www.movable-type.co.uk/scripts/latlong.html versucht, den mittleren Punkt zwischen 2 Punkten herauszufinden, aber es funktioniert nicht. So können wir den genauen Schnittpunkt zwischen zwei MKPolyline finden.

+0

Versuchen Sie, was Sie jetzt verwenden? Kannst du das im Detail erklären? –

+0

Ich arbeite an einer Rennanwendung, bei der der Benutzer den gesamten GPS-Punkt mit einem externen GPS-Gerät protokolliert und wenn er mit meiner Anwendung eine Verbindung zu diesem GPS-Gerät herstellt, kann der Kartenansicht-Benutzer den gesamten zurückgelegten Weg sehen Von wo man die Startlinie (Rennstrecke) markiert und basierend auf Startlinie muss ich herausfinden, wie viele Runden Benutzer gereist sind und andere Dinge. http://i.stack.imgur.com/H2znR.png In diesem Bild Blaue Linie ist Benutzer reiste Pfad und weiße Linie ist Benutzer Markierte Linie Also brauche ich die Schnittpunktkoordinaten zwischen beiden PolyLine. –

Antwort

2

Diese

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; 
} 
+0

Vielen Dank dir mein Freund deine Lösung funktioniert für mich !!!!! –

+0

Wenn es für dich funktioniert, akzeptiere bitte die Antwort –

+0

Akzeptiert mein Freund, noch einmal Vielen Dank für die Hilfe :-) –