gpt4 book ai didi

ios - MapKit 是否泛化了 MKOverlays?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:42:09 26 4
gpt4 key购买 nike

更具体地说...iOS 的 MapKit 框架是否在渲染之前内置了 MKPolyline 和 MKPolygon 叠加层的泛化?

模拟器看起来很粗糙,显示的是几条由数百个点组成的折线。我是否达到了 iPhone 的绘制性能的峰值,或者 MapKit 是否没有被编程为自动概括数据从而达到设备的绘制性能的峰值?

我知道我可以制作一个测试用例来进行比较,但是为测试用例创建/集成这样的算法非常耗时。我希望在我需要求助于此之前有人对此有一些了解。

谢谢!

最佳答案

我不知道 generalize 部分,但您可以通过使用另一种方法来保持性能:

多个 MKPolygons 等在 map 上绘制时会导致大量内存使用。这是由于 MapKit 没有重用叠加层。由于注释具有 reuseWithIdentifier,因此覆盖却没有。每个叠加层都会在 map 上创建一个新层作为 MKOverlayView,其中包含叠加层。这样一来,内存使用率将上升得相当快,滚动变得……可以说是缓慢到几乎不可能。

因此有一个解决方法:您可以将所有 MKOverlays(在您的例子中是 MKPolygons 和 MKPolylines)添加到一个 MKOverlayView,而不是单独绘制每个叠加层。这样,您实际上只创建了一个 MKOverlayView,因此无需重复使用。

this question中的答案包含指向 Apple 开发者论坛的链接以及解决方法。

我在多个 MKPolygons 中使用了这种方法,效果很好。我还计划在未来为我的应用程序使用 MKPolylines。我相信可以将它们全部绘制在一个 MKOverlayView...

使用这种方法,您可能不需要generalize MKPolygon 叠加层的绘制。实现和测试 IMO 也容易得多;-)

关于ios - MapKit 是否泛化了 MKOverlays?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17535651/

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