在地图的协议方法中包括地图加载事件回调,地图更新事件回调,地图手势事件回调等。在地图单击手势事件中可获得所点击的屏幕坐标,将屏幕坐标转换为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;
}
}