2016-03-18 6 views
1

GMSMapView iOS(Googleマップ)でこのGMSGeometryContainsLocation()メソッドを使用しています。GMSMapView(Googleマップ)GMSGeometryContainsLocationメソッドがiOSでクラッシュしていますか?

現在の座標が自分のGMSPolygonの下にあるかどうかをチェックすると、クラッシュします。

if (GMSGeometryContainsLocation(userLocation.coordinate, self.path, YES)) { 

     NSLog(@"YES: you are in this polygon."); 

    } else { 

     NSLog(@"You do not appear to be in this polygon."); 

    } 

EXC_BAD_ACCESSでクラッシュする。助けてください。

これはパスに座標を追加する方法で、マップ内のすべてのポリゴンを見ることができます。

for(int i = 0; i < [[polygon valueForKey:@"polygon_coordinates"] count]; i++){ 

        [self.path addCoordinate:CLLocationCoordinate2DMake([[[[polygon valueForKey:@"polygon_coordinates"] objectAtIndex:i] objectAtIndex:1] floatValue],[[[[polygon valueForKey:@"polygon_coordinates"] objectAtIndex:i] objectAtIndex:0] floatValue])]; 
       } 



      GMSPolygon *rectangle = [GMSPolygon polygonWithPath:self.path]; 
      rectangle.fillColor = [UIColor colorWithRed:255.0/255.0 green:0.0/255.0 blue:0.0/255.0 alpha:0.4]; 
      rectangle.title = RESTRICTED_AREA_PICKUP; 
      rectangle.map = self.mapView; 
+0

このクラスの残りの部分を教えてください。おそらく** userLocation.coordinate **または** self.path **はnilですか? –

+0

はどちらも値を持っていますが、私はそれをチェックしました – Bangalore

+0

それ以上のコードを含まずにデバッグするのは難しいです。 –

答えて

0

クラッシュの原因は、GMSMutablePathです。私はGMSPathの代わりにGMSMutablePathを使用していました。

if (GMSGeometryContainsLocation(userLocation.coordinate,(GMSPath *)self.path, NO)) { 

     NSLog(@"YES: you are in this polygon."); 
    } else { 
     NSLog(@"You do not appear to be in this polygon."); 

    }