我在一个数组中本地存储了大约1200个anotation数据。现在我想只添加/设置注释到当前正在查看的区域。当用户更新区域时,这将添加/设置新注释。我知道我们可以在regionChanged方法中实现它。我想要快速加载。请建议我如何实现这将是有效的。另外请建议我哪个足够快用
一次加载注释mapview.setAnnotations(annotationarray);
或以区域方式显示。应用程序的默认缩放级别是,因为一次只有2-4个注释。抱歉一次性多个问题。
答案 0 :(得分:0)
使用当前区域和latitudeDelta和longitudeDelta,您可以推断出当前地图边界框的内容(即当前地图视图的4个角的坐标)。
您应该检查每个引脚的坐标是否在边界框内,然后检查它是否在内部将其保存在单独的数组中。完成检查后,将该注释数组添加到mapview。
每次更改区域时,都应重复此操作。
我不知道这个解决方案的效率如何,但迭代1200个项目的数组并不便宜。
如果此解决方案非常慢,您还可以将坐标保存在sqlite数据库中,并且每次都执行查询。