文章标题

来源:互联网 发布:matlab solve 数组 编辑:程序博客网 时间:2024/06/11 10:20

最近几年,各类移动终端迅速普及,基于地理位置的服务(LBS)和相关应用也逐渐增加,而支撑这些应用的最基础技术之一,就是基于地理位置信息的处理。我所在的公司也正从事相关系统的开发,同事淼哥主要负责这一块的整体方案。大概了解了各传统处理方式的优劣后,他放弃了GeoHash,自己单独做了一套解决方案。
【方案简单介绍】
该方法把地球表面划分为(4^24)*20个形状和面积近似的三角形, 每个三角形用唯一的整数编码.
以下说明如何得到这些三角形:
假设地球是一个正球体, 其中有一个内接正二十面体, 它的12个顶点与球体表面相交, 它的每个表面
都是一个正三角形.
以一个正三角形为例, 找到三条边的中点, 从球心到这三个中点的向量交于球体表面的三个点.
连接这三个交点和正三角形的顶点, 得到四个较小的三角形, 并编码为
00, 01, 10, 11.
对这四个小三角形做同样的操作,得到十六个更小的三角形, 并编码为
0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111,
1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111.
对正二十面体的每个正三角形都做24次这样的操作,最终得到(4^24)*20个形状和面积近似的三角形.
在细分过程中,较小三角形的编码前缀正是前次细分较大三角形的编码, 这一特性可以用于按不同精度
检索地理数据.

<script src="https://code.csdn.net/snippets/1625256.js"></script>
0 0
原创粉丝点击