【问题标题】:iOS MapView show current location and annotation in the visibleRectiOS MapView 在 vi​​sibleRect 中显示当前位置和注释
【发布时间】:2014-12-08 02:45:49
【问题描述】:

我有一个小问题。 我只想在地图视图的中心显示当前用户位置。并且地图视图缩放到可以同时显示注释和用户位置的区域。 mapview 的 showAnnotation 函数似乎有帮助,而用户位置不在 mapview 的中心。

【问题讨论】:

  • 地图视图覆盖的区域是region。设置区域由您决定。你可以在中心指定你想要的点,你可以指定区域。因此,将用户位置显示为中心,但指定一个足够大的区域以包含注释。

标签: ios mkmapview


【解决方案1】:

你可以使用:

 _mapView.userTrackingMode  = MKUserTrackingModeFollow

MKUserTrackingMode 将使地图跟随用户的位置

【讨论】:

    【解决方案2】:
                var userLoc = self.mapView.userLocation
    
                let newDistance = CLLocation(latitude: userLoc.coordinate.latitude, longitude: userLoc.coordinate.longitude).distanceFromLocation(CLLocation(latitude: annotation.latitude, longitude: annotation.longitude))
                let region = MKCoordinateRegionMakeWithDistance(userLoc.coordinate,2 * newDistance, 2 * newDistance)
                let adjustRegion = self.mapView.regionThatFits(region)
                self.mapView.setRegion(adjustRegion, animated:true)
    

    上面的代码解决了我的问题。我只是忘记将距离乘以 2。 ...

    【讨论】:

      【解决方案3】:
      - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
      {
          MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 800, 800);
          [self.mapView setRegion:[self.mapView regionThatFits:region] animated:YES];
      }
      

      以上代码行指示地图视图放大用户位置周围 800 x 800 米的区域。

      【讨论】:

        猜你喜欢
        • 2015-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多