根据用户位置在MKMapView上显示注释

时间:2010-12-05 11:27:36

标签: iphone objective-c mkmapview cllocationmanager

我目前在开发一些特别的东西时遇到了Objective C的问题。

所以 - 在初始化MKMapView并显示用户位置之后,我想实现一种方法来显示用户位置旁边的注释。我已将所有必要的点存储在特殊表中的SQLite数据库中。我有两个字段 - 即lonlat - 我认为很清楚这是什么意思。

有没有人知道如何显示那些在屏幕上可见的注释尽可能高效。在用户滚动地图后 - 它应该再次调用该方法以在数据库中查找,还有其他需要显示的点......

非常感谢您的帮助,

亲切的问候,

多米尼克

2 个答案:

答案 0 :(得分:1)

你需要做一些事情。

1)获取地图的中心 - 使用MKMapView的centerCoordinate属性

2)向您的数据库询问距离地图中心一定距离内的所有项目。

3)显示它们

这是(2)这是一个棘手的问题 - 你需要一种能够将所有物品都归还给你所拥有的物品的方法。

This link有一个方便的实现方法:)

希望有所帮助。

答案 1 :(得分:1)

有几点:

如果您使用的是iOS4,则mapview行为已更改,以便仅通过创建可见视图中的注释来自动保存内存。

其次,就像你可以创建一个包含数千个单元格的桌面视图并且仍然可以平滑滚动一样,屏幕外的注释也不会影响性能。你应该保持注释非常小,这样它们就不会消耗太多内存。注释视图是占用内存的视图。

当用户缩小并且同时显示太多注释视图时,您的问题就会出现。当您放大时,您不必过多担心屏幕外注释。