我正在尝试在 iPhone 应用程序中设置离线地图,但结果不是很好。
我正在使用 route-me 框架,我有一个离线文件 .db(由 tiles2sqlite 创建),并且地图视图受坐标约束(使用 setConstraintsSW:NE:)。
缩小(捏合手势)时出现我的问题,此错误消息“缩放将使地图超出范围:无缩放”始终存在,并且当您不在地图的真实中心附近时很难缩小。
是否有与地图具有良好滚动视图行为的 Offmaps(iOS 应用程序)具有相同结果的解决方案?
干杯。
西里尔
相反,您可以使用设置 setConstraintsSW:NE:我们可以将 RMMapview 设置为,
RMDBMapSource *mapSrc = [[[RMDBMapSource alloc] initWithPath:@"mapDB.sqlite"] autorelease];
[[RMMapContents alloc] initWithView:mapView tilesource:mapSrc centerLatLon:mapSrc.centerOfCoverage zoomLevel:17 maxZoomLevel:18 minZoomLevel:15 backgroundImage:image screenScale:10 ];
这将使您能够根据设置的参数进行缩放
我不得不编辑 RMMapView.m 源代码来快速修复。查找- (void)zoomByFactor: (float) zoomFactor near:(CGPoint) center animated:(BOOL)animated
方法(靠近 300 行)。它具有约束逻辑,我将其关闭:
- (void)zoomByFactor: (float) zoomFactor near:(CGPoint) center animated:(BOOL)animated
{
if ( _constrainMovement && false ) // turn constraint checks off
{
//check that bounds after zoom don't exceed map constraints
//the logic is copued from the method zoomByFactor,
float _zoomFactor = [self.contents adjustZoomForBoundingMask:zoomFactor];
float zoomDelta = log2f(_zoomFactor);
...
}
...
}
现在地图可以平滑缩放,但此修复可能会产生副作用。