我正在使用适用于 iOS 的 Google 地图 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_;
您需要使用委托方法didTapOverlay https://developers.google.com/maps/documentation/ios/reference/protocol_g_m_s_map_view_delegate-p#a3a2bf2ff4481528f931183cb364c0f4b :
- (void) mapView: (GMSMapView *) mapView didTapOverlay: (GMSOverlay *) overlay
这里参数overlay表示被点击的overlay。所以你需要检查它是否等于 circ。
EDIT:添加有关如何在 didTapOverlay 中检查圆圈的详细信息
When GMSCircle
被添加到地图上,对应的GMSPolygon
也被创建。如果圆圈设置为可点击,则点击它时,覆盖层将传递到didTapOverlay
方法是这个相关的多边形而不是圆。因此,无法直接比较覆盖层和圆圈。因此,正如 Raspu 所指出的,您可以使用以下命令在标题中设置一个值circ.title =
然后在 didTapOverlay 里面,你可以检查是否overlay.title
与circ.title
。这是有效的,因为圆的标题属性位于相应的多边形内,因此将出现在覆盖参数中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)