2016-08-08 24 views
1

Ich habe Array von GMSPath und haben Koordinaten. Ich möchte herausfinden, in welchen Pfad diese Koordinate fällt. Ich bin in der Lage, totale Polygone herauszufinden, in die dieser Ort fällt. (Mit dieser https://stackoverflow.com/a/38826411/2225439) Alles funktioniert gut bis zu diesem Schritt.Finden Sie die meisten Polygon mit tatsächlichen Bereich aus dem Array von verschachtelten Polygon

Das eigentliche Problem kommt, wenn One Überlappung mit einem anderen geschlossenen GMSPath geschlossen und die Koordinate ist in überlappenden Bereich. Laut meiner Anforderung muss ich nur eine GMSPath aus diesen zwei und die kleinere Fläche als eine andere haben.

Bitte beachten Sie Bild zum besseren Verständnis.

enter image description here

Antwort

2

Sie können den Bereich von GMSPolygon unter Verwendung folgender Methode von Google Maps iOS SDK finden Sie heraus, GMSGeometryArea(), bietet es Bereich gegebenen Polygon. Jetzt haben Sie einen Bereich, damit Sie verschiedene Polygone vergleichen und den innersten Bereich finden können.

double GMSGeometryArea(GMSPath *path); 

laut Beschreibung von Google

Returns the area of a geodesic polygon defined by |path| on Earth. 
The "inside" of the polygon is defined as not containing the South pole. 
If |path| is not closed, it is implicitly treated as a closed path nevertheless and the result is the same. 
All coordinates of the path must be valid. 
If any segment of the path is a pair of antipodal points, the result is undefined -- because two antipodal points do not form a unique great circle segment on the sphere. 
The polygon must be simple (not self-overlapping) and may be concave. 
+0

Welche Einheiten ist der Bereich, in? Ich konnte nichts finden, was beschreibt, welche Maßeinheit 'doppelte GMSGeometryArea (GMSPath * Pfad);' berechnet. –

+0

Das Ergebnis sind in Quadratmetern. –