【问题标题】:MkmapView UsersLocationMkmap查看用户位置
【发布时间】:2014-03-28 08:36:02
【问题描述】:

我正在开发一个基于MKMapView的App,App的要求是检测userLocation(用蓝点表示)是在屏幕的可视区域还是在可视屏幕之外面积。

在地图加载开始时,它会自动将其位置设置为用户的位置,但我想在用户滚动地图视图后检测当前位置是否在屏幕的可见区域内。

请提供有用的解决方案并帮助我。

提前致谢。

【问题讨论】:

标签: ios objective-c mkmapview cllocationmanager


【解决方案1】:

只需使用userLocationVisible(我不记得但@Volker 提醒了我)


任何注释:

获取位置并检查像素坐标是否可见

  1. 从地图中获取用户位置
  2. 获取它的坐标
  3. 将其转换为地图点 (MKMapPointForCoordinate)
  4. 获取地图视图的可见 mapRect
  5. 使用 MKMapRectContainsPoint

    MKMapRect visibleRect = self.mapView.visibleMapRect;
    MKMapPoint pt = MKMapPointForCoordinate(self.mapview.userLocation.coordinate);
    
    BOOL visible = MKMapRectContainsPoint(visibleRect, pt);
    

【讨论】:

  • 为什么不直接使用userLocationVisible
  • @Volker :D 因为我不记得了
  • 这是我自己问题的答案:- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated { if (!mapView.userLocationVisible) NSLog(@"userlocation is not可见的”); else NSLog(@"用户位置现在可见"); }
  • 感谢您的 Volker 和 Daij-Djan 的回答,这帮助我实现了我想要实现的目标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-07
  • 1970-01-01
  • 1970-01-01
  • 2016-11-25
  • 1970-01-01
  • 2018-05-13
相关资源
最近更新 更多