gpt4 book ai didi

iphone - 在 MKMapView 上移动/更新 MKOverlay

转载 作者:行者123 更新时间:2023-12-03 18:36:10 25 4
gpt4 key购买 nike

有没有办法更新(即移动)已添加到 MKMapViewMKOverlay。删除旧的并添加新的非常糟糕(慢)。

即我想在屏幕上移动覆盖层时触发调用此函数的后台函数:

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay

(我认为使用 MKAnnotions 会好一点,但我不能使用 MKPolylineMKPolygon 等,并且整个信息会减少到一个点)

最佳答案

MKOverlayView 有以下方法强制 MapKit 重新渲染给定的 mapRect:

- (void)setNeedsDisplayInMapRect:(MKMapRect)mapRect

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

如果您使用计时器(或定期 HTTP 请求或某种其他方法来确定您的叠加层应更新),则在overlayView上调用上述方法之一将导致它重新渲染该点 map (即-canDrawMapRect:zoomScale:将被再次调用,然后-drawMapRect:zoomScale:inContext:将被调用,如果前者返回YES)。

<小时/>

更新:

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

关于iphone - 在 MKMapView 上移动/更新 MKOverlay,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3307316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com