我的Google地图显示在我的ios应用中,我的多边形在地图上成功地使用以下代码在我的视图控制器中绘制:
stmnt := 'insert into p100_stg1_site_measurement (site_id, col_name, measurement)
values (:site_id, :col, :measurement)';
execute immediate stmnt using my_rec.row_name, cols(i), my_rec.measurement;
我也在视图控制器中实现GMSMapViewDelegate,并将以下函数作为视图控制器的一部分:
let camera = GMSCameraPosition.camera(withLatitude: 37.886080, longitude: -122.137585, zoom: 7.0)
mapView = GMSMapView.map(withFrame: CGRect(x: screenWidth*0.03, y: 245, width: screenWidth*0.94, height: screenHeight*0.45), camera: camera)
self.view.addSubview(mapView)
let rect = GMSMutablePath()
rect.add(CLLocationCoordinate2D(latitude: 37.886080, longitude: -122.137585))
rect.add(CLLocationCoordinate2D(latitude: 37.899356, longitude: -122.130203))
rect.add(CLLocationCoordinate2D(latitude: 37.900101, longitude: -122.104282))
rect.add(CLLocationCoordinate2D(latitude: 37.879644, longitude: -122.101192))
let polygon = GMSPolygon(path: rect)
polygon.fillColor = UIColor.flatWatermelonDark.withAlphaComponent(0.5)
polygon.strokeColor = .black
polygon.strokeWidth = 2
polygon.isTappable = true
polygon.map = mapView
我的理解是因为我将多边形变量的.isTappable值设置为true,当多边形被点击时,应该调用委托方法并打印“耶稣爱你”和被点击的叠加层。当我点击多边形时,没有这样的打印,这意味着没有调用didTap委托方法。我在设置中遗漏了什么吗?
答案 0 :(得分:3)
我是个白痴。
未在viewDidLoad中将地图视图的委托属性设置为self。
mapView.delegate = self
现在问题解决了!