【发布时间】:2010-08-31 18:24:11
【问题描述】:
谁能确认 setRegion “捕捉”到预定义的缩放级别,以及这种行为是否符合设计(尽管未记录)或已知错误?具体来说,setRegion 似乎会捕捉到与用户双击地图时使用的缩放级别相对应的相同缩放级别。
我正在尝试恢复以前保存的区域,但如果保存的区域是通过捏拉缩放而不是双击缩放设置的,则此行为将导致无法恢复。
如果我在地图的 current 区域上调用 regionThatFits,对我来说,mapkit 方面出现问题的一个重要线索是。它应该返回相同的区域(因为它显然适合地图的框架),但它会返回对应于下一个更高的预定义缩放级别的区域。
setVisibleMapRect 的行为类似。
任何进一步的见解或信息将不胜感激。
我找到了这些相关的帖子,但没有提供解决方案或明确确认这实际上是一个 mapkit 错误:
MKMapView setRegion: odd behavior?
MKMapView show incorrectly saved region
编辑:
这是一个演示问题的示例。所有值都对我的地图视图的纵横比有效:
MKCoordinateRegion initialRegion;
initialRegion.center.latitude = 47.700200f;
initialRegion.center.longitude = -122.367109f;
initialRegion.span.latitudeDelta = 0.065189f;
initialRegion.span.longitudeDelta = 0.067318f;
[map setRegion:initialRegion animated:NO];
NSLog(@"DEBUG initialRegion: %f %f %f %f", initialRegion.center.latitude, initialRegion.center.longitude, initialRegion.span.latitudeDelta, initialRegion.span.longitudeDelta);
NSLog(@"DEBUG map.region: %f %f %f %f", map.region.center.latitude, map.region.center.longitude, map.region.span.latitudeDelta, map.region.span.longitudeDelta);
输出:
DEBUG initialRegion: 47.700199 -122.367111 0.065189 0.067318
DEBUG map.region: 47.700289 -122.367096 0.106287 0.109863
注意纬度/经度增量值的差异。地图的值几乎是我要求的两倍。较大的值对应于用户双击地图时使用的缩放级别之一。
【问题讨论】: