使用受限于坐标的RMMapView进行缩放

时间:2012-04-04 13:08:23

标签: ios xcode map route-me

我正在尝试在iPhone应用中设置离线地图,但效果不是很好。

我正在使用route-me框架,我有一个脱机文件.db(由tiles2sqlite创建),地图视图用坐标约束(使用setConstraintsSW:NE:)。

我的问题出现在缩小(捏合手势)时,此错误消息“缩放将移动地图越界:无缩放”始终存在,当您不在真正的中心附近时缩小非常困难地图。

是否有解决方案可以获得与Offmaps(iOS应用)相同的结果,其中地图具有良好的滚动视图行为?

干杯。

西里尔

2 个答案:

答案 0 :(得分:0)

相反,您可以使用设置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 ];

这样可以根据您设定的参数进行缩放

答案 1 :(得分:0)

我必须编辑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);
        ...
    }
    ...
}

现在地图平滑缩放,但此修复可能会产生副作用。