我正在尝试缩放到特定区域。我遇到的问题是,据我所知,以编程方式,您只能设置为固定的缩放级别。我做了一个测试应用来证明这一点。我正在使用固定的中心坐标,然后改变以米为单位的大小。在1000和4000之间的测试中,缩放级别是aprrox:< 1000< 1940,1940< 3865,3865< 4000+。这是只有三个缩放级别,它可以让你从1000-4000。我遇到的问题是我想要的缩放级别介于1940和3865之间,仅仅因为在1940年以下,我的注释不适合,并且大于3865,与较小的缩放相比,图像看起来非常差,真正令人沮丧的是,我可以通过放大应用程序,使用注释拟合和图像看起来很好,而不是通过以编程方式设置它来设置它。
有谁知道更准确的设置方法? (我尝试在长/纬度跨度上使用相同的测试应用程序 - 具有相同的边界)。
提前致谢
答案 0 :(得分:2)
MapKit只允许设置整体缩放级别。 File an enhancement request表示非整数缩放级别。
答案 1 :(得分:0)
原则上,您应该可以使用setVisibleMapRect:animated:
和setRegion:animated:
设置任意缩放级别。 然而,MapKit中似乎有一个错误“向上”到下一个完整缩放级别,因为你已经注意到了......非常讨厌的行为。我前段时间向Apple报告过,根据错误报告系统,它仍然是开放的。很抱歉,我无法找到任何解决方法。
答案 2 :(得分:0)
是的,这是一个问题,但你可以尝试找到适合你需要的价值观。数字可能与您想要的完全不同。你需要通过查看地图来弄明白。今天我必须这样做,我这样做了:
实现了mapView:regionDidChangeAnimated:记录了地图的当前区域。我得到0.26 ...和0.24 ...作为跨度,但即使我把这些值,我没有得到相同的缩放级别。
由于我缩小了比我想要的更多,我开始减少这些值,最后使用0.2和0.18。
目前想到的唯一解决方案是反复试验。您还可以通过手动捏合获得所需的缩放级别值。然后使用这些值以编程方式设置区域。如果地图缩小得更多,请尝试按比例减少纬度和经度增量。如果它放大了它会尝试按比例增加它们。
我希望这会对你有所帮助。