今天罗孚为大家推荐一种经纬度编码的方法——plus code,原名open location code,是Google于2014年发明的,旨在将表示地理位置的经纬度通过算法推导成一个字符串。plus code的用途
用一串字符表示地球上的任一位置
发明plus code的初衷,就是希望能够通过一个编码标识地球的任何一个地方。
我们最常用的位置编码是地址编码,通过行政区划、道路和门牌号等信息找到具体的位置信息,这在日常生活中非常常见,比如送快递。
但若你在京东或天猫上买东西,直接送回乡下老家,怎么办?还能记得门址信息吗?一方面城市化进程变迁,也许门址早已不是当初的门址,另一方面即便有门牌号,一个陌生人能否顺利找到,也是未知问题。
门址无法找到,那我们用经纬度,经纬度是一个非常精确的位置信息。没错,但除了电影中会有通过十几个数字(即经纬度)来寻找目标的场景,我们在日常生活中有用到吗?加上国家的法律因素,连通过经纬度导航都不是一个可行的方法。
世界上确实有无法使用门址表示的地方,而经纬度的数值也超出了常人的可记忆范畴,所以Google希望通过一种编码方法,简单明了地表示世界上任一位置。
使用字符串编码来表示经纬度,其实有多种编码方案,但plus code有什么优势?我们后面再讲。只是,罗孚使用plus code并不仅仅为了表示地球上的位置这么简单。
基于位置范围的检索
在电子地图的使用过程中,我们可能经常需要查询酒店、餐饮、景点等数据,也就是我们常说的POI检索。其检索方式,除了名称查询外,可能会有周边查询或沿途搜索,比如“徐家汇周围10公里范围内的奥迪4S店”。
周边查询和沿途搜索,都是一种基于经纬度范围的检索,最常规的检索方法,就是一条sql语句,限定一下范围即可,比如:where lat > 31 and lat121 and lon