3

我正在使用适用于 iOS 的 Google Maps API,我想这样做,所以当您点击 GMSCircle 时,它​​会弹出我在其他地方编码的一些小东西。我已将圆圈设置为“可点击”,但我找不到需要设置或制作的内容来监听点击。我用什么?

    CLLocationCoordinate2D circleCenter = CLLocationCoordinate2DMake(10,10);
GMSCircle *circ = [GMSCircle circleWithPosition:circleCenter
                                         radius:10];
circ.tappable = true;
[circ setFillColor:[UIColor colorWithRed:1 green:0 blue:0 alpha:.5]];

circ.map = mapView_;
4

1 回答 1

9

您需要使用委托方法didTapOverlay

- (void) mapView: (GMSMapView *) mapView  didTapOverlay: (GMSOverlay *) overlay 

这里的参数 overlay 表示被点击的覆盖。所以你需要检查它是否等于 circ。

编辑:添加有关如何在 didTapOverlay 中检查圆圈的详细信息

GMSCircle添加到地图时,GMSPolygon也会创建相应的。如果圆被设置为可点击,那么在点击它时,传递给didTapOverlay方法的叠加层是这个相关的多边形而不是圆。因此,无法直接比较叠加层和圆形。因此,正如 Raspu 所指出的,您可以在 title 中使用circ.title =然后在 didTapOverlay 中设置一个值,您可以检查是否overlay.titlecirc.title. 这是有效的,因为圆形的标题属性在相应的多边形内,因此将出现在覆盖参数中。

于 2013-07-31T17:46:01.607 回答