1

iPhone アプリでオフライン マップをセットアップしようとしていますが、うまくいきません。

route-me フレームワークを使用しています。オフライン ファイル .db (tiles2sqlite によって作成) があり、マップ ビューは座標で制限されています (setConstraintsSW:NE: を使用)。

ズームアウト (ピンチ ジェスチャ) すると問題が発生します。「ズームするとマップが範囲外に移動します: ズームなし」というエラー メッセージが常に表示され、マップの実際の中心に近くない場合にズームアウトするのは非常に困難です。

マップのスクロールビュー動作が優れている Offmaps (iOS アプリ) と同じ結果になるソリューションはありますか?

乾杯。

シリル

4

2 に答える 2

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 ];

これにより、設定したパラメータに応じたズームが可能になります

于 2012-04-11T12:19:16.987 に答える
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);
        ...
    }
    ...
}

マップがスムーズにズームされるようになりましたが、この修正により副作用が生じる可能性があります。

于 2012-05-17T14:59:49.540 に答える