当前位置: 首页 > 后端技术 > PHP

geo

时间:2023-03-29 17:44:38 PHP

redis日常使用参考网站redis命令php操作redis环境要求首先确保redis已安装并启动确保php已安装redis扩展php-m|member[longitudelatitudemember…]命令详解-顾名思义,这是一个添加命令1.向geo类型的有序集合中添加数据2.可以传入多个参数同时添加3.经纬度limitvalidlongitudeisbetween-180degrees有效纬度介于-85.05112878度和85.05112878度之间180度和180度之间。2.成功添加到key的空间元素不包括已经存在但被更新的元素。注意事项:1.必须遵循x,y格式。经度是第一位的。Latitude灾后命令使用-先打开客户端正确添加#geoaddmyplace116.58079939.929301me116.58069139.929007you116.5810139.928931其他错误演示#geoaddtest181181callinonephp//实例化redis对象/\Redis(new)Linkredislocal主机地址默认端口号$redis->connect('127.0.0.1',6379);//插入正确的数据$successRes=$redis->geoAdd('myplace',//键值116.580799,39.929301,'me',//第一个元素的经纬度和对应的名称116.580691,39.929007,'you',116.58101,39.928931,'other');//插入错误数据$faildRes=$redis->geoAdd('test',181,181,'一个');var_dump($successRes);var_dump($faildRes);GEOPOS获取指定元素的位置命令:GEOPOSkeymember[member…]命令详情:-获取位置百度翻译说pos可能是位置1的缩写,返回给定元素在key2中的位置。参数可以按倍数传递3.返回参数各由两个元素组成。第一个元素是经度,第二个元素是纬度。4.如果给定的元素不存在,返回nil。命令使用正确。使用#geoposmyplaceme你其他的是错误的。Usegetone元素不存在#geoposmyplaceonePHPuse//实例化redis对象$redis=new\Redis();//链接redis本地主机地址默认端口号$redis->connect('127.0.0.1',6379);//得到正确的数据$successRes=$redis->geoPos('myplace',//键值'me'//元素名称);//得到错误的数据$faildRes=$redis->geoPos('myplace',//keyvalue'one'//不存在的元素);var_dump($successRes);var_dump($faildRes);GEODIST获取两个元素之间的距离命令:GEODISTkeymember1member2[unit]命令详解-获取两个元素之间的距离distDistance1.参数是固定的,只能计算两个元素之间的距离。2、最后一个参数unit表示单位默认为米(m)。有以下几个参数:m表示单位为米,km表示单位为千米。mi表示单位是英里。ft表示单位为英尺返回值:计算出的距离将以双精度浮点数的形式返回如果给定的位置元素(任意一个)不存在,则命令返回空值注意:此命令将在计算距离时假设地球是完美的球形,在极端情况下,这假设最大误差为0.5%命令用于获取两个元素之间的距离(以米为单位)#geodistmyplaceme你错误地使用了一个元素texist#geodistmyplacemenotuseinmPHP//实例化redis对象$redis=new\Redis();//链接redis本地主机地址默认端口号$redis->connect('127.0.0.1',6379);//得到正确的数据$successRes=$redis->geoDist('myplace',//键值'me',//元素'you',//元素'm'//距离单位);//得到错误的数据$faildRes=$redis->geoDist('myplace',//键值'me',//元素'not'//不存在的元素);var_dump($successRes);var_dump($faildRes);GEORADIUSgetsallCommandforallelementsspecifyingaspecificdistanceinlatitudeandlongitude:GEORADIUSkeylongitudelatituderadiusm|km|ft|mi[WITHCOORD][WITHDIST][WITHHASH][ASC|DESC][COUNTcount]详细解释命令:-获取指定经纬度范围内的半径元素信息radiusradius1.经度和纬度必须在经度和纬度之后指定。2.可以指定范围范围单位如下:m表示单位是米km表示单位是千米mi表示单位是英里ft表示单位是英尺3.getandgive纬度和经度之间的距离需要参数WITHDIST单位要和给定的距离单位一样4.获取返回元素的经纬度需要参数WITHCOORD5.可以用距离排序ASC从近到远DESC从远到近6.的个数returns返回值:使用get-a-element返回一个数组命令像素显示距离显示坐标中给定坐标特定距离内的所有元素显示坐标从近到远显示3项#georadiusmyplace116.57848639.927244200kmWITHCOORDWITHDISTASCCOUNT3在PHP中使用//实例化redis对象$redis=new\Redis();//链接redis本地主机地址默认端口号$redis->connect('127.0.0.1',6379);$options[]='WITHDIST';//距离$options[]='WITHCOORD';//经纬度$options[]='ASC';//排序ASC|DESC$options['COUNT']=3;//项目数//得到正确的数据$successRes=$redis->geoRadius('myplace',//keyvalue'116.578486',//longitude'39.927244',//latitude'200',//distance'km',//距离单位$options//其他可选参数);var_dump($successRes);GEORADIUSBYMEMBER获取指定元素一定距离内的所有元素命令:GEORADIUSBYMEMBERkeymemberradiusm|km|ft|mi[WITHCOORD][WITHDIST][WITHHASH][ASC|DESC][COUNTcount]命令详解-根据keyvalue获取指定距离内的元素的一个元素相当于另一个版本的GEORADIUS命令1.需要指定元素而不是经纬度注意:元素必须是keyvalue中已经存在的元素返回值也会包含选中的元素返回值:array该命令用于获取元素指定范围内的元素。选中的元素me距离200单位m,返回3个经纬度从近到远#georadiusbymembermyplaceme200mWITHCOORDWITHDISTASCCOUNT3在PHP中使用//实例化redis对象$redis=new\Redis();//链接redis本地机器主机地址默认端口号$redis->connect('127.0.0.1',6379);$options[]='WITHDIST';//距离$options[]='WITHCOORD';//纬度和经度$options[]='ASC';//排序ASC|DESC$options['COUNT']=3;//项目数//得到正确的数据$successRes=$redis->geoRadiusByMember('myplace',//键值'me',//元素'200',//距离'km',//距离单位$options//其他可选参数);var_dump($successRes);GEOHASH获取一个元素的地理哈希值命令:GEOHASHkeymember[member…]命令详解-获取地理1的哈希值,可以同时获取多个元素的哈希值。注意:返回的数据需要和返回值对应:array数组的每一项都是一个geohash命令。使用getgeohash#geohashmyplacemeyouotherPHPuses//实例化redis对象$redis=new\Redis();//链接redis本地主机地址默认端口号$redis->connect('127.0.0.1',6379);//获取正确的数据$successRes=$redis->geoHash('myplace',//key'me',//element'you',//element'other'//element);var_dump($successRes);