【发布时间】:2011-01-17 20:23:09
【问题描述】:
我有一个以这种方式制作的坐标(纬度和经度)数组:
[0] = "45.01234,9.12345"
[1] = "46.11111,9.12345"
[2] = "47.22222,9.98765"
[...] etc
在一个循环中,将这些坐标转换为米(UTM 北/UTM 东),然后我将这些坐标转换为屏幕上的像素(X / Y)(输出设备是 iPhone),以在自定义地图。
[0] = "512335.00000,502333.666666"
[...] etc
返回的像素被传递给在屏幕上画线的方法(模拟路线计算)。
[0] = "20,30"
[1] = "21,31"
[2] = "25,40"
[...] etc
由于坐标(纬度/经度)太多,我需要截断纬度/经度数组,以消除未填充地图边界的值(屏幕上地图的可见部分)。
地图边界是 2 对坐标纬度/经度、左上角和右下角。
现在,在这个数组上循环(未排序)并检查一个值是否在绑定中并在删除外部值之后的最佳方法是什么?
要返回一个只包含屏幕上可见坐标的干净数组?
注意:坐标数组是一个非常大的数组。 4000/5000 几个项目。
这是一个应该在每次拖动或缩放时循环的方法。
如何优化此数组中的搜索和控件?
【问题讨论】:
-
这有一个相当具体的技术答案,而不是一个主观的答案。我建议将其迁移到 SO。
-
@Gary: 帖子可以迁移到 SO(我只见过相反的方向)?
-
是的,帖子可以迁移到 SO。这就是这个最终的结果。
-
仅仅消除窗外的那些点并不能解决问题;考虑一个窗口“0,0”..“320,480”和这些点:“-10,240”,“400,240” - 你仍然需要画线,否则会丢失一些东西
-
你应该改进你的标题。写一些更具描述性的东西