ios – 扩展MKPolylines还是创建多个MKPolylines?

ios – 扩展MKPolylines还是创建多个MKPolylines?,第1张

概述我正在编写一个iOS 5应用程序,可以实时跟踪用户的位置,在MKMapView上绘制他们的课程.每当进行GPS读取时,我希望在当前位置和旧位置之间绘制折线,最终形成用户已经行进的轨道(或面包屑). 我很乐意使用MKPolyline和MKPolylineView绘制轨道,假设我事先拥有所有CLLocationCoordinate2D坐标,使用类似下面的代码: MKPolyline *route = 我正在编写一个iOS 5应用程序,可以实时跟踪用户的位置,在MKMapVIEw上绘制他们的课程.每当进行GPS读取时,我希望在当前位置和旧位置之间绘制折线,最终形成用户已经行进的轨道(或面包屑).

我很乐意使用MKpolyline和MKpolylineVIEw绘制轨道,假设我事先拥有所有CLLocationCoordinate2D坐标,使用类似下面的代码:

MKpolyline *route = [MKpolyline polylineWithCoordinates:coordinates count:[self.coordinateArray count]];        [mapVIEw addOverlay:route];

但是,由于我只是实时获取CLLocationCoordinate2D坐标(因为locationManager:dIDUpdatetoLocation:fromLocation:delegate方法被调用),我不确定绘制新折线的最佳方法.

我可以扩展现有的线(即添加到基于C的坐标数组 – 没有太多的C经验我不确定如何做到这一点)或者我是否需要在接下来的两个坐标之间创建一个新的折线(尽管我听说过在地图上有太多单独的折线会影响性能和内存使用情况……)?

提前致谢.

解决方法 首先,请参阅 how to update MKPolyline / MKPolylineView?,尤其是 Breadcrumb示例代码的链接.这可能是您需要的一个很好的起点.

但是,你会发现它的CrumbPath对象的一个​​重要部分是对realloc的调用.所以是的,如果想要有效地存储点数组,你需要知道如何管理C风格的数组.是的,这并不容易.是的,C风格的数组 *** 作是内存泄漏的邀请.

Breadcrumb示例使用realloc来调整其数组的大小.通过使用NSMutableData类型分配数组使用的内存,可以更安全一些.建议作为Is it ok to use “classic” malloc()/free() in Objective-C/iPhone apps?的答案.阅读其他解决方案,看看常规的C malloc()和free()函数做同样的工作.请注意,NSMutableData有一个非常方便的increaseLengthBy:方法.

当你理解为什么每个C学生都试图错误地使用sizeof() – 以及如何正确使用它 – 你就会理解C内存管理.

总结

以上是内存溢出为你收集整理的ios – 扩展MKPolylines还是创建多个MKPolylines?全部内容,希望文章能够帮你解决ios – 扩展MKPolylines还是创建多个MKPolylines?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1068404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存