利用MongoDB进行地理空间索引
在当今这个时代,位置敏感信息变得越来越重要。如果你身处伦敦,你可能会想了解当地的新闻、优惠活动、餐厅,甚至是附近的朋友。已经有不少服务可以满足这些需求,比如Foursquare、Gowalla(现在与Facebook合作)、谷歌地图以及Facebook。
1. 地理定位基础
地理定位的基本概念是尽可能精确地确定位置,并提供与该位置相关的服务。地理空间索引则是一种从数据库中利用这些信息的方式,对坐标进行索引可以加快查询速度。
1.1 什么是地理定位
“地理定位”(geolocation)这个词可以拆分为“geo”(地球)和“location”(位置),它指的是我们在地球上的位置。地球被划分为纬度和经度,纬度范围从90°到 -90°,经度范围从180°到0°。0°纬度是赤道,0°经度经过英国的格林威治。通过经纬度,我们可以将地球划分为不同的区域,从而确定地球表面上的每一个位置。
在赤道上,经度每一度之间的距离约为111.3公里,随着纬度向北或向南移动,这个距离会逐渐减小。例如,在60°纬度处,经度每一度之间的距离为55.65公里。
1.2 地理定位的精度
要确定一个位置,我们需要知道纬度和经度。但经纬度之间的距离太大,无法精确到几米的范围。为了提高精度,每一度的纬度和经度又被进一步划分为60分钟,每分钟再划分为60秒。这样可以更精确地确定位置,但要注意,每一秒的经纬度之间的距离是不同的。
在赤道(0°纬度)上,纬度相差一秒的距离约为30.715米,随着向两极移动,这个距离会减小。赤道上经度相差一秒的距离是30.92米,在30°纬度处,经度相差
超级会员免费看
订阅专栏 解锁全文
1025

被折叠的 条评论
为什么被折叠?



