更小的MapKit Zoom Interval iPhone

时间:2011-07-12 17:56:58

标签: ios iphone zoom mapkit

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

有谁知道更准确的设置方法? (我尝试在长/纬度跨度上使用相同的测试应用程序 - 具有相同的边界)。

提前致谢

3 个答案:

答案 0 :(得分:2)

MapKit只允许设置整体缩放级别。 File an enhancement request表示非整数缩放级别。

答案 1 :(得分:0)

原则上,您应该可以使用setVisibleMapRect:animated:setRegion:animated:设置任意缩放级别。 然而,MapKit中似乎有一个错误“向上”到下一个完整缩放级别,因为你已经注意到了......非常讨厌的行为。我前段时间向Apple报告过,根据错误报告系统,它仍然是开放的。很抱歉,我无法找到任何解决方法。

答案 2 :(得分:0)

是的,这是一个问题,但你可以尝试找到适合你需要的价值观。数字可能与您想要的完全不同。你需要通过查看地图来弄明白。今天我必须这样做,我这样做了:

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

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

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

    我希望这会对你有所帮助。