3

アプリで 2 つのマップを表示したいと考えています。ビュー内の 1 つの大きなマップと、「ミニ マップ」としての別のビュー内の別のマップ。ミニマップは静的である必要があります。

私の問題は、大きな地図でこの地図をスクロールし、ミニ マップがある別のビューに戻ると、ミニ マップの座標が大きな地図と同じになることです。

ビッグマップコード:

self.placeMapView = [[SKMapView alloc] init];
self.placeMapView.frame = CGRectMake(0.0f, 0.0f, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame));
self.placeMapView.delegate = self;
self.placeMapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.placeMapView.settings.poiDisplayingOption = SKPOIDisplayingOptionNone;
[self.view addSubview:self.placeMapView];



//set the map region
SKCoordinateRegion region;
region.center = CLLocationCoordinate2DMake(40.758637, -73.986171);
region.zoomLevel = 17;
self.placeMapView.visibleRegion = region;

ミニマップコード:

self.miniMap = [[SKMapView alloc] init];
self.miniMap.frame = CGRectMake(0.0f, 0.0f, CGRectGetWidth(self.showMap.frame), CGRectGetHeight(self.showMap.frame));
self.miniMap.delegate = self;
self.miniMap.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.miniMap.mapScaleView.hidden = YES;
self.miniMap.settings.showCompass = NO;
[self.showMap setUserInteractionEnabled:NO];
[self.showMap addSubview:self.miniMap];


//set the map region
SKCoordinateRegion region;
region.center = CLLocationCoordinate2DMake(40.758637, -73.986171);
region.zoomLevel = 15;
self.miniMap.visibleRegion = region;

これらのスニペットは、同じビューにも同じコードにもありません!

どうすればこの動作を防ぐことができますか?

編集: わかりました。簡単でした。なぜ手に入れるまでに時間がかかるのかわからない。viewWillAppear メソッドでコード/関数を実行するだけです。それで解決!

4

1 に答える 1

1

編集:わかりました。簡単でした。なぜ手に入れるまでに時間がかかるのかわからない。viewWillAppear メソッドでコード/関数を実行するだけです。それで解決!

これは解決されません。表示する前に表示したいマップの座標をリセットして、問題を非表示にするだけです。

私はAndroid+iOS SDk 2.2.0でも同じ問題を抱えているので、現在の位置を一時的に追跡して、後で復元するようにしていますが、誰かがこれを解決する方法を知っているなら、それは良いでしょう. 2 つの異なるインスタンスがプロパティを共有するのは普通ではないように思えるからです。

ところで、マップのピンチ/パン/回転を無効にしても、他のマップのプロパティは変更されないため、マップのレンダリングに関するプロパティのみが共有されているようです。奇妙な点は、Skobbler のソース コードに見られるように、SKMapSurfaceView の各インスタンスが独自のレンダリング オブジェクトをインスタンス化することです。

...
this.a = new MapRenderer();
...
于 2014-09-16T14:38:44.530 に答える