我想在我的应用程序中显示两张地图。一张大地图在一个视图中,另一个在另一个视图中作为一个“迷你地图”。迷你地图应该是静态的。
我的问题是,当我在大地图上滚动这张地图,回到另一个小地图所在的视图时,小地图的坐标和大地图上的坐标一样。
大地图代码:
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;这些片段不在同一个视图中,也不在同一个代码中!
我怎样才能防止这种行为?
编辑: Ok,这很简单。不知道为什么我要花这么多时间才能拿到它。只需在viewWillAppear方法中执行代码/函数即可。所以它解决了!
发布于 2014-09-16 14:38:44
编辑: Ok,这很简单。不知道为什么我要花这么多时间才能拿到它。只需在viewWillAppear方法中执行代码/函数即可。所以它解决了!
这还没有解决,您只需在地图出现之前重置要显示的地图的坐标,就可以隐藏问题。
我对Android+iOS SDk 2.2.0也有同样的问题,所以我暂时保持当前位置的跟踪,以便像您正在做的那样恢复它,但是如果有人知道如何解决这个问题,那就好了,因为在我看来,两个不同的实例共享属性是不正常的。
顺便说一句,只有有关地图呈现的属性似乎是共享的,因为禁用map上的夹点/平移/旋转并不会改变这些属性。奇怪的是,SKMapSurfaceView的每个实例都实例化自己的呈现对象,如Skobbler的源代码所示:
...
this.a = new MapRenderer();
...https://stackoverflow.com/questions/24554371
复制相似问题