如何在我的 MKMapView 中获得更细粒度的跨度
Posted
技术标签:
【中文标题】如何在我的 MKMapView 中获得更细粒度的跨度【英文标题】:How can I get a finer grained span in my MKMapView 【发布时间】:2013-02-07 20:28:19 【问题描述】:我正在使用 MKMapView,我正在像这样初始化:
homeLocation.latitude = 42.033126;
homeLocation.longitude = -70.168621;
[self.mapView setCenterCoordinate:homeLocation animated:NO];
MKCoordinateRegion viewRegion;
viewRegion.center = homeLocation;
viewRegion.span = MKCoordinateSpanMake(1.7, 1.7);
[self.mapView setRegion:[self.mapView regionThatFits:viewRegion] animated:NO];
这是我的应用程序
这很好,除了我的应用程序我需要把它缩小一点。但是当我尝试这个时:
viewRegion.span = MKCoordinateSpanMake(1.8, 1.8); // use span of 1.8, not 1.7
我明白了:
它被缩小了。如果我查看 MKMapView 的区域,latitudeDelta 我是 3.54981,longitudeDelta 是 3.51562。
如何将跨度设置为 1.7 到 3.5 之间的值?对于这个特定的应用程序,我希望能达到 2.25 左右。
注意:mapview 捏缩放到我想要的任何跨度都很好。
【问题讨论】:
【参考方案1】:MKCoordinateSpanMake 使用度数,1 度大约是 69 英里。如果您想要更细粒度的设置,请改用 MKCoordinateRegionMakeWithDistance。
CLLocationCoordinate2D homeLocation;
homeLocation.latitude = 42.033126;
homeLocation.longitude = -70.168621;
[self.mapView setCenterCoordinate:homeLocation animated:NO];
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance( homeLocation, 200000, 200000);
// 200000 meter is approximately 1.8 degree
[self.mapView setRegion:[self.mapView regionThatFits:viewRegion] animated:NO];
【讨论】:
地图区域仍然在量子调整大小,而不是平滑。【参考方案2】:您在设备上试过了吗?有时我在设备上的缩放级别比在模拟器上的控制更多。
【讨论】:
哦,是的,对不起,我的帖子更清楚了。当您捏放大或缩小时,它工作正常。我只是无法将地图视图初始化为我想要的跨度。 是的。我不是在谈论缩放,而是在谈论设置区域。我有一个动画,我每秒多次设置该区域 - 一个带有轻微曲线的自定义放大 - 在模拟器上它只在每 50 次左右更新中更改一次缩放,但在设备上它总是更新缩放。 哦!我明白你的意思,是的,我明天去看看。感谢您的提示! 不,在真机上测试没有帮助。以上是关于如何在我的 MKMapView 中获得更细粒度的跨度的主要内容,如果未能解决你的问题,请参考以下文章
如何使用蓝点在我的 MKMapView 上显示我当前的位置和区域?
SpringCloud实战(十七)-基于Ribbon动态路由实现:调用链控制/版本控制/灰度发布(粒度更细,可以控制到每一个微服务模块版本的路由)
SpringCloud实战(十七)-基于Ribbon动态路由实现:调用链控制/版本控制/灰度发布(粒度更细,可以控制到每一个微服务模块版本的路由)