我正在使用适用于iOS的谷歌地图API,我想这样做,当你点击GMSCircle时,它会弹出我在其他地方编码的小东西。我已将圆圈设置为“tappable”但我无法找到我需要设置或制作以收听水龙头的内容。我该用什么?
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_;
答案 0 :(得分:9)
您需要使用委托方法didTapOverlay:
- (void) mapView: (GMSMapView *) mapView didTapOverlay: (GMSOverlay *) overlay
此处参数叠加层表示已点按的叠加层。所以你需要检查它是否等于circ。
编辑:添加有关如何在didTapOverlay中检查圈子的详细信息
将GMSCircle
添加到地图后,还会创建相应的GMSPolygon
。如果将圆圈设置为tappable,则在点击它时,传递给didTapOverlay
方法的叠加层是此相关多边形而不是圆圈。因此,无法直接比较叠加层和圆圈。因此,正如Raspu所指出的,您可以使用circ.title =
在标题中设置值,然后在didTapOverlay中,您可以检查overlay.title
是否与circ.title
相同。这是因为圆的title属性在相应的多边形内,因此将出现在overlay参数中。