谷歌地图视图如何在地图缩放时获取原始点或框进行注释?

Posted

技术标签:

【中文标题】谷歌地图视图如何在地图缩放时获取原始点或框进行注释?【英文标题】:Google map view how can i get original point or frame for annotation while map zoom? 【发布时间】:2011-12-16 14:03:16 【问题描述】:

我在点击注释时在地图中设置了自定义注释针我得到了这个方法的调用

(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view NS_AVAILABLE(NA, 4_0)

在那个方法中,我想打开弹出框,所以我想要框架形式 (MKAnnotationView *)view 我在正常模式下映射时得到正确的框架。

但是当我缩放地图并单击注释时,当时我得到错误的帧,x 和 y 值很大,所以我得到任何偏移或缩放因子的任何解决方案,所以我据此划分,所以我获取实际的注释框架。

【问题讨论】:

显示您在该方法中拥有的代码。 【参考方案1】:

试试这个:

CGPoint annotationPoint = [mapView convertCoordinate:view.annotation.coordinate 
                                   toPointToView:mapView];
float boxDY = annotationPoint.y - 35;
float boxDX = annotationPoint.x - 1;
CGRect box = CGRectMake(boxDX, boxDY, 1, 1);
[popoverControllerDetail presentPopoverFromRect:box 
                                         inView:mapView 
                       permittedArrowDirections:(UIPopoverArrowDirectionDown|
                                                 UIPopoverArrowDirectionLeft|
                                                 UIPopoverArrowDirectionRight) 
                                       animated:YES];

【讨论】:

以上是关于谷歌地图视图如何在地图缩放时获取原始点或框进行注释?的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用滚动缩放。谷歌地图嵌入 API [重复]

如何设置谷歌地图缩放级别以显示所有标记?

如何在滚动视图中设置谷歌地图片段

如何更新我的功能,以便无论缩放和视图如何,谷歌地图上总是有 10 个标记(混搭使用 CS50)

地图缩放时,别针上的弹出框不移动

对于给定的缩放级别和视图,谷歌地图中像素的宽度是多少?