2010-12-05 79 views
0

目前我在开发一些特别的东西时遇到了Objective C的问题。根据用户的位置在MKMapView上显示注释

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

有没有人有一个想法如何显示那些在屏幕上可见的注释,以尽可能保持高性能。用户滚动地图后 - 它应该再次调用方法来查找数据库阉也有需要加以显示的其他点......

非常感谢您在您的帮助,

亲切的问候,

多米尼克

+0

我能够收到我需要的东西。谢谢`nevan`和`deanWombourne`的帮助! – thedom 2010-12-06 08:49:37

回答

1

你将需要做一些事情。

1)让您的地图的中心 - 用你的MKMapView

2)的centerCoordinate财产提出您的数据库中的所有项目在一定距离内从地图的中心。

3)显示他们

这是(2)这是棘手的一个 - 你需要将返回所有项目接近你有纬度经度的方法。

This link有一个方便的实现如何做到这一点:)

希望有所帮助。

+0

感谢您的链接!我认为我的解决方案将基于该:)。当我清楚如何解决所有问题时会再次发布。 – thedom 2010-12-05 13:58:09

1

几个要点:

如果您使用iOS4的,的MapView行为已更改,以便它自动创建仅其在可见视图中的注释可以节省内存。其次,就像你可以用数千个单元格创建tableview一样,仍然可以顺利滚动,离线注释不会影响性能。你应该保持你的注释非常小,以免消耗太多内存。注释视图是占用内存的视图。

用户缩小时会出现问题,同时可以看到太多的注释视图。放大时,您不必过分担心屏幕外注释。

+0

感谢您的回答!是的,我正在使用iOS 4 - 所以这是迄今为止的优势:))。但我需要一种方法,例如显示用户位置的最近四个点,并根据该区域重新定位所有内容。所以我必须做一些数学运算,我猜... – thedom 2010-12-05 13:57:19

相关问题