首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SKMaps显示多个映射

SKMaps显示多个映射
EN

Stack Overflow用户
提问于 2014-07-03 12:59:06
回答 1查看 196关注 0票数 3

我想在我的应用程序中显示两张地图。一张大地图在一个视图中,另一个在另一个视图中作为一个“迷你地图”。迷你地图应该是静态的。

我的问题是,当我在大地图上滚动这张地图,回到另一个小地图所在的视图时,小地图的坐标和大地图上的坐标一样。

大地图代码:

代码语言:javascript
复制
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;

迷你地图代码:

代码语言:javascript
复制
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方法中执行代码/函数即可。所以它解决了!

EN

回答 1

Stack Overflow用户

发布于 2014-09-16 14:38:44

编辑: Ok,这很简单。不知道为什么我要花这么多时间才能拿到它。只需在viewWillAppear方法中执行代码/函数即可。所以它解决了!

这还没有解决,您只需在地图出现之前重置要显示的地图的坐标,就可以隐藏问题。

我对Android+iOS SDk 2.2.0也有同样的问题,所以我暂时保持当前位置的跟踪,以便像您正在做的那样恢复它,但是如果有人知道如何解决这个问题,那就好了,因为在我看来,两个不同的实例共享属性是不正常的。

顺便说一句,只有有关地图呈现的属性似乎是共享的,因为禁用map上的夹点/平移/旋转并不会改变这些属性。奇怪的是,SKMapSurfaceView的每个实例都实例化自己的呈现对象,如Skobbler的源代码所示:

代码语言:javascript
复制
...
this.a = new MapRenderer();
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24554371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档