首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MKMapView上移动/更新MKOverlay

在MKMapView上移动/更新MKOverlay
EN

Stack Overflow用户
提问于 2010-07-22 17:12:40
回答 6查看 12.3K关注 0票数 8

有没有办法更新(即移动)已经添加到MKMapView中的MKOverlay。删除一个旧的并添加一个新的是可怕的(缓慢的)。

也就是说,当屏幕上的覆盖图移动时,我想触发调用此函数的后台函数:

代码语言:javascript
复制
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay

(我认为使用MKAnnotions要好一点,但我不能使用MKPolylineMKPolygon等,而且整个信息都被压缩到一个点上)

EN

回答 6

Stack Overflow用户

发布于 2010-08-12 02:34:16

MKOverlayView具有以下方法,强制MapKit重新呈现给定的mapRect:

- (void)setNeedsDisplayInMapRect:(MKMapRect)mapRect

- (void)setNeedsDisplayInMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale

如果你使用计时器(或者定期的超文本传输协议请求或者其他一些方法来确定你的覆盖图应该被更新),在overlayView上调用上面的方法之一将导致它在地图上重新渲染那个点(即再次调用-canDrawMapRect:zoomScale:,如果前者返回YES,那么-drawMapRect:zoomScale:inContext:将被调用)。

更新:

如果您不确定需要重新渲染什么mapRect,您可以使用MKMapRectWorld常量作为mapRect -我相信这会导致整个地图上的覆盖重新加载(一旦可见)。

票数 4
EN

Stack Overflow用户

发布于 2013-09-12 08:33:49

使用MKAnnotations。您可以更改它们的坐标。只需禁用任何与触摸相关的内容。您需要自己的绘图代码来绘制注释,OpenGL可能会完成此任务。没有人会知道其中的区别。

票数 1
EN

Stack Overflow用户

发布于 2017-02-17 08:51:38

这似乎会强制地图刷新覆盖。也可能是注解。

self.mapView setCenterCoordinate:self.mapView.centerCoordinate;

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3307316

复制
相关文章

相似问题

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