在地图的协议方法中包括地图加载事件回调,地图更新事件回调,地图手势事件回调等。在地图单击手势事件中可获得所点击的屏幕坐标,将屏幕坐标转换为Fengmap地图坐标,即可获取当前坐标值。
#pragma mark - FMKMapViewDelegate - (void)mapView:(FMKMapView *)mapView didSingleTapWithPoint:(CGPoint)point { // 点击的地图坐标 FMKGeoCoord coord = [_mapView coverPoint:point]; }
若FMKLayer相应图层实现元素的拾取事件,当点击地图拾取到相应的元素,如模型、图片标注物等,可通过相应的接口获取元素的地图坐标。
- (void)onMapClickNode:(FMKNode *)nodeinLayer:(FMKLayer *)layer gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer { if ([layer isKindOfClass:[FMKModelLayer class]]) { // 点击的是模型图层的节点 FMKModel *model = (FMKModel *)node; //获取模型的地图中心点坐标 FMKGeoCoord coord = [model getModelCenterByMapPath:_mapPath]; } else if ([layer isKindOfClass:[FMKImageLayer class]]) { // 点击的是图片标注物图层的节点 FMKImageMarker * imageMarker = (FMKimageMarker *)node; //获取图片标注物的地图坐标 FMKMapPoint imageMarkerPosition = imageMarker.mapCoord; } }