00:00
各位同学大家好,接下来给大家介绍一下GE地理坐标系统在我们ready当中能够解决哪些问题,结合我们的甲烷为服务来看一下如何满足我们大厂互联网相关的行业诉求,它能够完成哪些功能,老规矩各位亲,面试题说话,大家来看一下啊,现在呢,手机在手天下我有一步,移动互联网的话呢,基本上是LBS应用,对于附近的。以及从哪到哪这样的应用是越来越多,比如说我们的交友软件当中摇一摇,摇出附近的妹妹,外卖软件当中美团APP附近的美食店,包括美团收购了摩拜单车以后,附近的自行车,那么滴滴打车,高德打车附近的车辆等等含车辆调度和路况的监控,是否堵车,那么对于这样形形色色的你自己开着手机的GPS定位你自己在哪,然后周围500米一公里以内的有叉叉叉,这样的一种功能该如何实现呢?那么在实现的过程当中,这个数据的存储我们应该放在red。
01:10
还是应该放在MYCQ呢?那么会有哪些坑,哪些问题呢?第一个问题,查询性能实时,如果并发量特别高,数据量大,这种查询是要搞垮MYSQL数据库的,因为很简单,弟兄们都清楚,MYSQL毕竟是在硬盘上,在内存里面。从实时并发性而言,肯定是强于。我们的MYSQL最经典,咱们就说高德,如果路上堵车了,每一部车上面都装着一个手机,这部手机打开,高德会收集后台的数据,那么你此时所在的坐标假设就在这个点长期不动,而且随着后面的车越积越多,在某一个坐标系当中,我们会发现手机的GPS信号越积越多,越来越强,坐标这长时间没有动,轨道数据没有更新,那么这个时候道路的颜色将会从绿色变黄色,黄色变红色,红色变深红,那么这个时候请告诉我,这样实时的访问是不是对我们的查询性能并发性的要求特别高?第二个,一般MYSQL查询是一个平面的矩形反问。
02:15
从哪到哪,从A到B,但是一般我们找附近的叉,叉叉是要以我为中心,比如说500。一公里为半径的圆形覆盖和MYSQ天生支持性不是太好。第三个精准度,地球是个圆的,不多废话,那么这种矩型计算在长期计算时是会有很大误差的,MYSQ也不合适,所以我们接下来就要满足我们的坐标器,那么这个坐标器要做到实时和精准,就要用到我们的一个东东叫经纬度,那么在这儿我们稍微拓展一下地理知识,上一次在小白篇讲的时候,部分同学对这个经度和纬度有点不感冒,那么所以说呢,我们呢,稍微介绍一下第一个经纬度,经度和纬度合成一个坐标体系,你可以把它理解为啊,它呢就是一个point,那么只不过这个里面有XY。
03:10
那么这个就是经度和纬度,OK,那么好,由它们经纬度构成地理坐标系统,利用三度空间的地球面来定义地上的空间,这样的一种球面坐标系统,我们可以在地球上表示任何一个位置,你比如说现在我们大名鼎鼎的北斗卫星,对吧,也是用这样的,那么呢,精度。和纬度的表现B然然交叉以后,就像X轴和Y轴一样有经线和纬线,那么我们未来的地球上获得确定的位置和方向,在地球仪上和地球上画出来的地面上的并线,注意和经线相垂直的线叫纬线,那么也就是纬线指示东西方向,大家就记住这一条,地球大家都知道是个椭圆的,实际上言地球一都是个圆的,对吧?那么稍微有一些形象的理解,纬线是一条长度不等的圆圈,就记这句话,最长的纬线就是赤道。
04:06
O吧,因为第二个呢,金线呢,是指是什么南北方向,所以金线又叫什么子午线,那么格林尼治天王台的原始地址啊,这个地方就是零度,所以经线也会称为本初子午线,那么地球上经线指示南北方向,纬线指示东西方向,OK好了,那么东西半球分为东经幺六零度,西经20度,那么经度和纬度在这儿我们再发现东经为正,西经为副,东西是金线。北纬是正数,南纬是负数,南北纬OK,如果实在还是不好理解,地球们,地球都给你找出来一个红色。蓝色给我记着这样的,那么就是你的纬线,赤道是不是最长的纬线,那么这样的,你就记着金线,你说杨哥还是不懂,切西瓜切过吧,你下刀的这地方完事。
05:05
一刀一刀的砍出来的西瓜,这个就是经线,讲完了,OK,好,因为上次有些同学跟我说这个地理上不大明白,所以这次呢做一次补充,OK,哎,这是没办法讲课很难的。好,那么下面复习一下如何获得某个地址的经纬度来吧,API100度我们打开这强调过了搜个地址。你找。哎,天安门,那么经纬度坐标就在这,OK,好,那么同学们得到第一个结论。我们对于叉叉叉附近的,要按照坐标体系经纬度来获得附近的某东西,就需要用到地理信息系统经纬度和我们red geo相关的背景知识。通过上一讲,我们明白了在大厂的要求,有一种LBS应用,也即地理信息上附近的叉叉叉,对于这样的一种开发和诉求,要求实时查询,多坐标体系还能够满足,那么传统的MYSQL是不OK的,对于附近的叉叉叉这样的一种功能,我们强烈推荐用red go地理坐标这样的命令来完成,那么接下来为了更好的落地帮助同学们吸收,我们呢,稍微花这么。
06:21
一点点时间复习一下我们在小白篇讲过的G的相关命令,其实说白了也就是调用template对我们G相关命令的一种调用,那么怕写到后面弟兄们懵逼,我们这花一点点时间再复习一下第二次讲解,首先123456GO最主流最常用的也就是这六大命令,好,那么同学们来吧。第一个go,那么用于存储直径的地理空间位置,说白了就是你哪一个值门板跟你的精度纬度对上,那么大家请看GODC是我们的T,那么这个是精度纬度,这个代表天安门精度纬度,故宫长承OK,那么复习一下,同学们快快的过一遍。那么大家请看这儿是不是三个没问题吧,现在天安门故宫和长城OK好了,别忘了如果说有中文乱码的话,我们要加杠杠raw这波没问题吧,那么接下来天了以后是不是要查回来,那么go position返回经纬度,那么来吧,弟兄们,这个时候我们呢,假设啊天安门和故宫,我呢就带着大家复习这些命令就不再敲了。那么大家请看在这个go position这个里面,CGO这样的类型,请告诉我天安门和故宫他们的经纬度分别是多少?那么顺便复习一下Type C,大家请看实际而言人家是什么Z。
07:49
在类型OK,明白了吗?好,那么还是我们原来所说的前面是个分数啊,只不过这个分数变成个经纬度坐标,后面才是真实的Y6值,好,这是我们的第二个命令,那么第三一个由于经纬度是两个值啊,一般而言,我们是不是用GE的哈希值表达它们两个做了一个经纬度跟一个某一个哈希串,哈希字符串的一个映射,我们先来看一下命令来同学们第三组命令漏眼天安门坐标是这么多,那么反过来天安门是不是就应该得到一个哈希编码贝斯32位的,这个之前我们在小白篇讲过,快快的复习来机由哈希算法生成贝斯32位的编码值,那么这个编码值就代表着坐标,这个坐标翻译过来就是一个编码值,三维变二维,二维变一维,那么我们前面强调过,由于地球是个圆的,你要实时的更新它的坐标经纬度,那么要将三维的变为二维的,二维的坐标转化成一。
08:49
回的点块,最后将一维的点块转换成一个二进制,再通过贝斯32编码,所以在这块如果你后续需要传递数据的话,基哈西这个是个不错的选择。那么接下来第四个distinct,两个位置之间的距离,那么来同学们搂眼,那么就说,比如我现在人在天安门。
09:08
附近。要找,那么长城离我有多少米?Kilometer是公里,OK,这个呢?第四个命令,来吧,各位亲,我们来吧,从天安门到长城,那么这个时候多少米?这个时候呢,是。多少公里?哎呀,不好意思啊,在这块,那么我们是KM,来吧,59公里。没问题,那么在这块的话。多少米多少公里?OK,好,这是我们的第四个从哪到哪两个位置之间的距离,那么这个radius半径,那么也就是我们在美团APP,高德APP附近的核酸站点啊,附近的单车等等,最主流的一个以半径为中心查找附近的查查查来吧弟兄们,这个呢比较多一些,还记不记得这长一串命令,他们以给定的经纬度为中心,我现在站在哪返回键包含的位置的元素当中,与中心距离不超过给定最大距离,所有元素的一些标识,那么假设这是个T,这个是我给定的。
10:19
坐标体系经纬度,那么现在就是我站在什么地方,一公里或者十公里范围以内,这样的一个距离以内,然后呢,With coordinate,将元素位置和经纬度也一并返回好十条记录,那么with哈希这个呢,是以52位有符号整数的形式,OK,加不加无所谓,那么这个呢是升序和降序排列,所以呢,在这块我们可以看得出。假设现在杨哥在王府井,我GP手机上GPS定位,那么王府井离天安门有多远?好,那么一圈带过来,离天安门有这么多公里,坐标值是多少多少?OK,好,那么同学们,我们简单的来执行一下,Look,我现在这个坐标,我人在王府井周围十公里范围以内,有些什么东东,那么有故沟。
11:12
王府井到故宫1.6公里对吧,然后呢,这个时候它从王府井到故宫,你对应的坐标是多少,通通给你返回来,OK,好,那接下来这两个命令是一回事,只不过刚才那个是输是坐标,那么这个呢,输的是什么?名字直接就是CT天安门附近的一回事,OK,好,那么各位同学这些搞懂了,那么接下来我们就来结合我们这些命令,又重新快快的复习了一遍,来进行一下整合我们的boot来做这个微服务的开发。
我来说两句