2016-04-28 3 views
3

Ich habe viele GMSPolygon innerhalb meiner Google Map. Jetzt möchte ich nach einem bestimmten Polygon suchen, das sich innerhalb (alle anderen Polygone) befindet. Außerdem müssen Sie herausfinden, welche anderen Polygone mit Grenzen zu diesem Polygon und anderen Polygonen schneiden, die sich weder innerhalb eines gegebenen Polygons schneiden noch dieses Polygon überdecken.Überprüfen, ob GMSPolygon in anderen GMSPolygon oder nicht

Kann jemand eine Idee haben, wie man das macht?

EDIT:

ich die Bibliothek/Code bekam die oben gleiche Sache für MKPolygon zu tun, können Sie sehen es hier über: https://github.com/geeksweep/MKPolygon-GSPolygonIntersections

Nun, ich denke, dass ich ganze GMSPolygon umwandeln sollte in MKPolygon und wenden Sie den Code dieser Bibliothek an, um das erforderliche Ergebnis zu erhalten. Aber ich denke, das ist kein geeigneter Weg, dies zu tun. Hat jemand eine Idee, dies auf sehr einfache Weise zu tun?

Antwort

1

Nach der Suche vieler Dinge, fand ich eine Lösung, ich denke, das ist nicht so viel richtig, aber immer noch besser als andere 3-4 Lösungen, die ich gefunden habe. Wenn jemand eine bessere Lösung findet, sag mir, wenn ich sie besser und angemessener finde, werde ich das akzeptieren und werde auch meinen Code ändern. Rightnow, ich habe folgenden Code verwendet, um dies zu tun.

GMSPath *path1=polygon1.path, *path2=polygon2.path; 
BOOL flag1= NO; 
BOOL flag2= NO; 
for (int i=0; i<path1.count; i++) 
{ 
    if (GMSGeometryContainsLocation([path1 coordinateAtIndex:i], path2, YES)==false) 
    { 
     flag1 = true; 
    } 

    if (GMSGeometryIsLocationOnPath([path1 coordinateAtIndex:i], path2, YES)==true) 
    { 
     flag2 = true; 
    } 
} 

if (flag1==false) 
{ 
    NSLog(@"polygon1 is fully inside polygon2"); 
} 
else if (flag2 == true) 
{ 
    NSLog(@"polygon1 intersects with polygon2"); 
} 
else 
{ 
    //Do the above procedure again just by switching path1 and path2 
    //and at end you can find that is polygon2 is inside polygon1 or not, 
    //and if it is not, then this means both polygon1 and polygon2 are distinct 
    //then neither intersects, nor inside each other 
} 
0

Sie diese Bibliothek verwenden kann:

http://sourceforge.net/projects/polyclipping/

, um zu sehen, welche andere Polygone schneiden Grenzen zu Ihrem Polygon

+0

Sorry zu sagen .. aber ich benötigte eine Lösung für iOS (siehe hier "GMSPolygon", auch "iOS" -Tag). Also, über die Bibliothek ist nicht für mich geeignet. –

Verwandte Themen