【发布时间】:2012-01-25 22:31:19
【问题描述】:
我有一个应用程序,它读取带有值(即纬度、经度、值)的网格坐标数据,然后将这些数据绘制在地图上。绘制的地图使用朗伯等角圆锥投影,因此所有坐标数据都必须从纬度/经度转换为东/北。这一切都很好,但是在读取多个数据文件时存在明显的性能问题。由于所有数据文件都包含相同的点集(尽管不一定以相同的顺序),我认为某种查找表对坐标转换很有用。但是,我以前从未使用过查找表,并且在弄清楚设计时遇到了一些麻烦。
简而言之 - 假设坐标对之间存在 1:1 关系,任何关于采用 lat/lon 坐标对(浮点值)并查找相应的 E/N 对(浮点值)的最快方法的建议,没有缺失值等?
由于 lat/lon 是浮点值,我不能将它们用作数组索引(例如:lookup_array[lat][lon]),所以这确实是我最容易出错的地方。
注意:此解决方案可以是 C 或 C++,以具有最佳解决方案为准。
【问题讨论】:
-
@DanielFischer,问得好,因为如果是,一个简单的表就是 table[int(factorlat),int(factorlon)]=value。如果它不是均匀分布的,你可以用一个函数替换因子
-
@DanielFischer - 是的,纬度/经度是均匀分布的。
-
好吧,那么如果你有足够的空间,
lookup[round((x-xoff)/step)][round((y-yoff)/step)]是最简单的。
标签: c++ c lookup-tables