2016-10-01 73 views
0

我正在制作一个高尔夫应用程序,该应用程序应该能够放大到一个洞的绿色。不幸的是,我为此使用了Apple的MapKit。在某些课程中,当尝试使用绿色的中心坐标和边界来设置区域时,应用程序不会一直缩放到洞中,如果直接尝试再次尝试,则会放大一点但不是全部,就好像它无法放大卫星图像未完全加载的区域一样。iOS MKMapView setRegion withAnimation:false会产生一个大于预期区域的区域

在堆栈溢出中有很多类似于这个问题的提及,但没有实际的解决方案。看起来苹果的MapKit对于显示小区域(即小于100米)没有用处。真气是我可以很容易地使用普通的捏缩放行为缩放到更小的区域,但如果我试图将区域设置为完全相同的缩放级别,它只能放大一半。

我已经浪费了很多时间来解决这个问题我已经考虑只是将我的整个地图切换到谷歌的地图视图库。

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

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) 

回答

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

我想你应该尝试这一个变焦..

+0

我已经试过这一点。我的问题似乎涉及setRegion方法本身,而不是我获得方法内使用的MKCoordinateRegion的方式。 – jmc