2011-07-12 31 views
2

我想缩放到特定区域。我遇到的问题是,据我所知,以编程方式,您只能设置为固定缩放级别。我制作了一个测试应用程序来演示这一点。我正在使用固定的中心坐标,然后以米为单位改变大小。在1000到4000之间的测试中,缩放级别为aprrox: 1940,1940 < 3865,3865 < 4000+。这些只有三个缩放级别,它可以让你从1000-4000进入。我遇到的问题是我想要的缩放级别在1940年到3865年之间,因为在1940年以下,我的注释不适合,而且大于3865,与较小的缩放相比,图像看起来很差,真正令人沮丧的是,我可以把它设置得恰到好处,通过缩放应用程序来使注释适合和图像看起来很好,但不是通过程序设置。较小的MapKit缩放间隔iPhone

有没有人知道更准确的方式来设置? (我已经尝试在长/长跨度上使用我的相同测试应用程序 - 具有相同的边界)。

在此先感谢

+0

有谁知道如果同样的事情发生在MKMapRect,并设置可见的矩形? - 我真的失去了如何让地图缩小,就好像被捏住了一样? –

+0

如果有人可以告诉我如何做到这一点,即使它没有明确设置MapKit缩放(如触摸模拟),那将是非常好的... –

+0

现在你如何设置缩放? – Anomie

回答

2

MapKit只允许设置积分缩放级别。非积分缩放级别为File an enhancement request

+0

谢谢,如果它可以通过触摸来完成,你是否可以不向mapkit发送手动触摸事件? –

0

原则上你应该能够设置一个任意的缩放级别setVisibleMapRect:animated:setRegion:animated:但是,MapKit似乎存在一个bug,它会“向上移动”到下一个完整的缩放级别,正如您已经注意到的那样...非常恼人的行为。我前一段时间向苹果公司报告,根据错误报告系统,它仍然是开放的。抱歉,我无法找到任何解决方法。

+0

感谢您的明确表达 - 我只是觉得奇怪,用户如何比开发人员拥有更多的控制权! –

0

是的,这是一个问题,但你可以尝试找到适合你需要的值。这些数字可能与您想要的完全不一样。你需要通过查看地图来弄清楚它。我有今天如此做,我这样做:

  1. 实现的MapView:regionDidChangeAnimated:登录地图的当前区域。我得到0.26 ...和0.24 ...作为跨度,但即使我把这些值,我没有得到相同的缩放级别。

  2. 由于我比我想要的更加缩小,我开始减少这些值,最终使用了0.2和0.18。

目前想到的唯一解决方案是反复试验。您还可以通过手动捏合获取您想要的缩放级别的值。然后使用这些值以编程方式设置区域。如果地图更加缩小,请尝试按比例减少纬度和经度增量。如果它缩放,则尝试按比例增加它们。

我希望这可以帮助你。