【问题标题】:GMSMapView (google map) GMSGeometryContainsLocation method is crashing in iOS?GMSMapView(谷歌地图)GMSGeometryContainsLocation方法在iOS中崩溃?
【发布时间】:2016-03-18 18:52:32
【问题描述】:

我在 GMSMapView iOS(谷歌地图)中使用这个 GMSGeometryContainsLocation() 方法。

当我检查当前坐标是否在我的 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;

【问题讨论】:

  • 你能分享一下这堂课的其余部分吗?也许 userLocation.coordinateself.path 为 nil?
  • 两者都有值,我已经检查过了
  • 如果没有更多的封闭代码,很难进一步调试。

标签: ios objective-c google-maps coordinates


【解决方案1】:

崩溃的原因是,GMSMutablePath。我使用的是 GMSMutablePath 而不是 GMSPath。

 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.");

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多