iOS MKMapView setRegion withAnimation:false会产生一个始终大于预期区域的区域

时间:2016-10-01 08:47:56

标签: ios mkmapview mapkit

我正在制作一款高尔夫应用程序,应该可以直接放大到洞的绿色。不幸的是,我正在使用Apple的MapKit。在某些课程中,当尝试使用绿色的中心坐标和边界设置区域时,应用程序不会一直缩放到孔中,如果我之后再次尝试,它会稍微放大一点但不是一直放大,好像它无法放大到卫星图像未满载的区域。

在堆栈溢出方面有许多类似于此问题的提及,但没有实际的解决方案。似乎Apple的MapKit对于显示小区域(即小于约100米)毫无用处。令人气愤的是我可以使用正常的缩放缩放行为轻松缩放到更小的区域,但如果我尝试将setRegion设置为完全相同的缩放级别,它只会放大一半左右。

我浪费了太多时间试图解决这个问题我考虑过将整个地图切换到谷歌的地图视图库。

我的项目是在Swift 2.2中,但我在使用Objective-C的单独项目中遇到了完全相同的问题。我的Swift代码如下所示:

    let holeBounds: CGRect = courseSingleton!.findGreenBounds(statsSingleton!.hole)
    let center = CLLocationCoordinate2DMake(Double(holeBounds.origin.y + holeBounds.size.height/2), Double(holeBounds.origin.x + holeBounds.size.width/2));

    let coordinateRegion = MKCoordinateRegionMake(center, MKCoordinateSpanMake(Double(holeBounds.size.height), Double(holeBounds.size.width)))

    mapView.setRegion(coordinateRegion, animated: false)

1 个答案:

答案 0 :(得分:0)

 let address : CLLocationCoordinate2D = self.getLocation(String(txtSearchlocation.text))
 let region = MKCoordinateRegionMakeWithDistance(address, 0.05, 0.05)
 MapView.setRegion(region, animated: true)

我认为你应该尝试这个放大..