• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - MapKit 是否泛化了 MKOverlays?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 12:23:42 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

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

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

谢谢!



Best Answer-推荐答案


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

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

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

this question 中的答案包含指向 Apple 开发者论坛的链接。

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

使用这种方法,您可能不需要概括 MKPolygon 覆盖的绘图。此外,实现和测试 IMO 也容易得多;-)

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

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap