【问题标题】:iOS MapKit get actual visible area of MKMapView when mapView is 3D当mapView为3D时,iOS MapKit获取MKMapView的实际可见区域
【发布时间】:2014-11-13 23:49:01
【问题描述】:

在区域更改后,我尝试了以下方法来获取 MKMapView 的实际可见区域。 在用户旋转地图后,都没有产生所需的结果。

  1. 使用mapView.bounds 和mapView.convertPoint 获取NE 和SW CLLocationCoordinate2D。
  2. 使用 mapView.visibleRect 创建 NE 和 SW MKMapPoints 并将这些点转换为 NE 和 SW CLLocationCoordinate2D。
  3. 使用mapView.centerCoodinate和mapView.region.span经纬度delta计算NE和SW经纬度,然后用于新的NE和SW CLLocationCoordinate2D。

#1 and #2 come from this post,在用户旋转地图之前,这 3 个都可以正常工作,这会通过改变其标题来发挥 mapView.camera 的作用。一旦发生这种情况,mapView.visibleRect 与实际可见区域不匹配。我敢肯定,改变高度和音高也会有类似的问题。我理解为什么 MKMapView 上的属性一旦变为 3D 就没有意义,但我不知道如何解释 mapView.camera。在对this post 中提出的答案之一的评论中提到了这一点,但没有提供解决方案。

我的问题是,如何通过 mapView.camera 获取用户实际可见的区域,并考虑航向、高度和俯仰角? p>

【问题讨论】:

    标签: ios mkmapview


    【解决方案1】:

    我正在寻找类似情况的答案,并找到了this。对于我的项目,我解决了如下问题。希望这会有所帮助。

        let northWestCoordinate = self.mapView.convert(CGPoint(x: 0, y: 0), toCoordinateFrom: self.mapView)
        let southEastCoordinate = self.mapView.convert(CGPoint(x: self.mapView.frame.size.width, y: self.mapView.frame.size.height), toCoordinateFrom: self.mapView)
    

    【讨论】:

      猜你喜欢
      • 2015-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多