掌桥专利:专业的专利平台
掌桥专利
首页

一种共享单车跨市骑行的判断方法及介质

文献发布时间:2023-06-19 19:30:30


一种共享单车跨市骑行的判断方法及介质

技术领域

本发明涉及通信技术领域,具体涉及一种共享单车跨市骑行的判断方法及介质。

背景技术

共享单车的应用程序虽然在全国范围内是通用的,但每一辆共享单车都有自己的运营范围,通常不会超过一个市;当共享单车被骑出运营范围,则平台会向用户收取大额的违约金和租金,为避免此种情况发生,共享单车上的终端设备每10秒向服务器上传一次包含GPS位置信息的数据,服务器在得到该数据后,提取该数据中的GPS位置信息并调用第三方API获取该GPS位置信息所在的城市,服务器收到下一条数据时,重复上面的流程并比对两次GPS位置信息所在的城市是否相同,以此得出骑行路线是否跨城市;用户在骑行期间,每10秒就需要调用一次第三方API,当用户基数增加时,调用第三方API的次数也随之增加,效率下降、成本增加。

发明内容

本发明所要解决的技术问题是高频率调用第三方API导致效率低下,目的在于提供一种共享单车跨市骑行的判断方法及介质,解决了用户基数增加时,调用第三方API的次数也随之增加,判断共享单车跨市骑行的效率下降的问题。

本发明通过下述技术方案实现:

第一方面提供一种共享单车跨市骑行的判断方法,包括以下步骤:

获取共享单车的第一GPS数据,调用第三方平台获取与该第一GPS数据对应城市的经纬度数据集,关联上述城市和该城市对应的经纬度数据集,将关联后的城市以及与该城市对应的经纬度数据集存储于缓存集合;

获取上述共享单车的第二GPS数据,将上述第一GPS数据与缓存集合中的经纬度数据集进行匹配,得到与第一GPS数据对应的第一经纬度数据;

将上述第二GPS数据与缓存集合中的经纬度数据集进行匹配;

若上述缓存集合中存在与第二GPS数据对应的经纬度数据,则得到与第二GPS数据对应的第二经纬度数据;

若上述缓存集合中不存在与第二GPS数据对应的经纬度数据,则调用上述第三方平台获取与第二GPS数据对应的城市以及第二经纬度数据;

根据上述第一经纬度数据和第二经纬度数据,判断上述共享单车是否跨市骑行。

将关联后的上述城市以及与该城市对应的经纬度数据集存储于缓存集合,服务器接收到第二GPS数据后,先在缓存集合中查询是否存在与该第二GPS数据对应的纬度数据,若存在,则直接返回该经纬度数据,无需调用第三方平台;若不存在再调用第三方平台获取,减少了调用第三方平台的次数,提高了该共享单车跨市骑行的判断效率。

进一步的,调用上述第三方平台获取与第二GPS数据对应的城市以及第二经纬度数据,将获取的与第二GPS数据对应的城市与第二经纬度数据关联,将关联后的城市以及第二经纬度数据存储于缓存集合。

扩展上述缓存集合,减少调用第三方平台的次数,进一步提高该共享单车跨市骑行的判断效率。

进一步的,将上述第一GPS数据进行匹配之前,还需要对第一GPS数据进行模糊处理;

将上述第二GPS数据与缓存集合中的经纬度数据集进行匹配之前,还需要对第二GPS数据进行模糊处理。

减小上述第一GPS数据和第二GPS数据所占运行内存,进一步提高该共享单车跨市骑行的判断效率。

进一步的,每隔时间段t统计存储于上述缓存集合的数据量;

每隔时间段T统计存储于上述缓存集合的数据总量,并初始化缓存集合。

统计完上述时间段T的数据总量后,便释放缓存集合中存储的数据,增大缓存集合的运行内存,提高该共享单车跨市骑行的判断效率。

进一步的,上述时间段T由多个时间段t组成,上述时间段T统计的数据总量为第n个时间段t统计的数据量。

进一步的,对第一GPS数据进行模糊处理的具体步骤如下:

获取上一个时间段T统计的数据总量以及当前时间段T统计的数据总量;

根据上述获取的上一个时间段T统计的数据总量和当前时间段T统计的数据总量,计算当前时间段T相较于上一个时间段T的数据增长率;

判断上述数据增长率是否大于阈值;

若大于,则第一GPS数据保留N位有效数;

若小于或等于,则第一GPS数据保留N+1位有效数。

当上述数据增长率小于或等于阈值时,数据趋于稳定,增加第一GPS数据保留的有效位数,提高了数据查询的正确率;当上述数据增长率大于阈值时,当前时间段T第一GPS数据保留的有效位数与上一个时间段T第一GPS数据保留的有效位数一致。

进一步的,对第二GPS数据进行模糊处理的具体步骤如下:

获取上一个时间段T统计的数据总量以及当前时间段T统计的数据总量;

根据上述获取的上一个时间段T统计的数据总量和当前时间段T统计的数据总量,计算当前时间段T相较于上一个时间段T的数据增长率;

判断上述数据增长率是否大于阈值;

若大于,则第二GPS数据保留N位有效数;

若小于或等于,则第二GPS数据保留N+1位有效数。

当上述数据增长率小于或等于阈值时,数据趋于稳定,增加第二GPS数据保留的有效位数,提高了数据查询的正确率;当上述数据增长率大于阈值时,当前时间段T第二GPS数据保留的有效位数与上一个时间段T第二GPS数据保留的有效位数一致。

进一步的,根据上述第一经纬度数据和第二经纬度数据,判断上述共享单车是否跨市骑行,具体步骤如下:

根据上述第一经纬度数据得到第一城市,根据上述第二经纬度数据得到第二城市,比对第一城市和第二城市;

若第一城市与第二城市为相同城市,则上述共享单车未跨市骑行;

若第一城市与第二城市为不同城市,则上述共享单车跨市骑行。

进一步的,上述数据增长率的计算公式如下:

L=(B-A),

A

其中,L表示数据增长率;A表示上一个时间段T统计的存储于缓存集合的数据总量;B表示当前时间段T统计的存储于缓存集合的数据总量。

第二方面提供一种计算机可读存储介质,上述计算机可读存储介质存储计算机程序,上述计算机程序使计算机执行上述的一种共享单车跨市骑行的判断方法。

本发明与现有技术相比,具有如下的优点和有益效果:

调用第三方平台获取与第一GPS数据对应的城市以及该城市范围内的所有经纬度数据,将该城市范围内的所有经纬度数据与该城市关联,将关联后的上述城市以及与该城市对应的经纬度数据集存储于缓存集合,服务器接收到第二GPS数据后,先在缓存集合中查询是否存在与该第二GPS数据对应的经纬度数据,若存在,则直接返回纬度数据,无需调用第三方平台;若不存在,则调用第三方平台获取与第二GPS数据对应的经纬度数据,减少了调用第三方平台的次数,提高了该共享单车跨市骑行的判断效率。

附图说明

为了更清楚地说明本发明示例性实施方式的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在附图中:

图1为实施例1提供的流程图;

图2为实施例2提供的第一次上报GPS数据的流程框图;

图3为实施例2提供的第二次上报GPS数据的流程框图;

图4为实施例2提供的第三次上报GPS数据的流程框图;

图5为实施例2提供的第四次上报GPS数据的流程框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。

实施例1

本实施例1提供一种共享单车跨市骑行的判断方法,如图1所示,包括以下步骤:

S1、获取共享单车的第一GPS数据,调用第三方平台获取与该第一GPS数据对应城市的经纬度数据集,关联上述城市和该城市对应的经纬度数据集,将关联后的城市以及与该城市对应的经纬度数据集存储于缓存集合;

S2、获取上述共享单车的第二GPS数据,将上述第一GPS数据与缓存集合中的经纬度数据集进行匹配,得到与第一GPS数据对应的第一经纬度数据;将上述第二GPS数据与缓存集合中的经纬度数据集进行匹配;

S21、若上述缓存集合中存在与第二GPS数据对应的经纬度数据,则得到与第二GPS数据对应的第二经纬度数据;

S22、若上述缓存集合中不存在与第二GPS数据对应的经纬度数据,则调用上述第三方平台获取与第二GPS数据对应的城市以及第二经纬度数据;

S3、根据上述第一经纬度数据和第二经纬度数据,判断上述共享单车是否跨市骑行。

将关联后的上述城市以及与该城市对应的经纬度数据集存储于缓存集合,服务器接收到第二GPS数据后,先在缓存集合中查询是否存在与该第二GPS数据对应的纬度数据,若存在,则直接返回经纬度数据,无需调用第三方平台;若不存在再调用第三方平台获取,减少了调用第三方平台的次数,提高了该共享单车跨市骑行的判断效率。

具体的实施例,调用上述第三方平台获取与第二GPS数据对应的城市以及第二经纬度数据,将获取的与第二GPS数据对应的城市与第二经纬度数据关联,将关联后的城市以及第二经纬度数据存储于缓存集合。

扩展上述缓存集合,减少调用第三方平台的次数,进一步提高该共享单车跨市骑行的判断效率。

具体的实施例,将上述第一GPS数据进行匹配之前,还需要对第一GPS数据进行模糊处理;

将上述第二GPS数据与缓存集合中的经纬度数据集进行匹配之前,还需要对第二GPS数据进行模糊处理。

减小上述第一GPS数据和第二GPS数据所占运行内存,进一步提高该共享单车跨市骑行的判断效率。

具体的实施例,每隔时间段t统计存储于上述缓存集合的数据量;

每隔时间段T统计存储于上述缓存集合的数据总量,并初始化缓存集合。

统计完上述时间段T的数据总量后,便释放缓存集合中存储的数据,增大缓存集合的运行内存,提高该共享单车跨市骑行的判断效率。

具体的实施例,上述时间段T由多个时间段t组成,上述时间段T统计的数据总量为第n个时间段t统计的数据量。

具体的实施例,对第一GPS数据进行模糊处理的具体步骤如下:

获取上一个时间段T统计的数据总量以及当前时间段T统计的数据总量;

根据上述获取的上一个时间段T统计的数据总量和当前时间段T统计的数据总量,计算当前时间段T相较于上一个时间段T的数据增长率;

判断上述数据增长率是否大于阈值;

若大于,则第一GPS数据保留N位有效数;

若小于或等于,则第一GPS数据保留N+1位有效数。

当上述数据增长率小于或等于阈值时,数据趋于稳定,增加第一GPS数据保留的有效位数,提高了数据查询的正确率;当上述数据增长率大于阈值时,当前时间段T第一GPS数据保留的有效位数与上一个时间段T第一GPS数据保留的有效位数一致。

具体的实施例,对第二GPS数据进行模糊处理的具体步骤如下:

获取上一个时间段T统计的数据总量以及当前时间段T统计的数据总量;

根据上述获取的上一个时间段T统计的数据总量和当前时间段T统计的数据总量,计算当前时间段T相较于上一个时间段T的数据增长率;

判断上述数据增长率是否大于阈值;

若大于,则第二GPS数据保留N位有效数;

若小于或等于,则第二GPS数据保留N+1位有效数。

当上述数据增长率小于或等于阈值时,数据趋于稳定,增加第二GPS数据保留的有效位数,提高了数据查询的正确率;当上述数据增长率大于阈值时,当前时间段T第二GPS数据保留的有效位数与上一个时间段T第二GPS数据保留的有效位数一致。

具体的实施例,根据上述第一经纬度数据和第二经纬度数据,判断上述共享单车是否跨市骑行,具体步骤如下:

根据上述第一经纬度数据得到第一城市,根据上述第二经纬度数据得到第二城市,比对第一城市和第二城市;

若第一城市与第二城市为相同城市,则上述共享单车未跨市骑行;

若第一城市与第二城市为不同城市,则上述共享单车跨市骑行。

具体的实施例,上述数据增长率的计算公式如下:

L=(B-A),

A

其中,L表示数据增长率;A表示上一个时间段T统计的存储于缓存集合的数据总量;B表示当前时间段T统计的存储于缓存集合的数据总量。

例如:T=24小时,t=1小时,数据增长率=今日数据总量-昨日数据总量,上述阈值为0.001。

实施例2

共享单车上的终端设备每10秒向服务器上传一次GPS数据,通过第三方平台接口获取与该GPS数据对应的经纬度数据,利用Redis将获取的经纬度数据存储于缓存集合中,一辆共享单车向服务器上报4条GPS数据,该共享单车的初始GPS数据为(116.432735,39.894623),该城市范围的经纬度数据集为(116.430000,38.500000)~(116.460000,40.000000),判断该共享单车是否跨市骑行的详细步骤如下:

步骤1、如图2所示,终端设备第一次上报GPS数据(116.431865,39.909622),利用指令:

String longitude=String.format("%.2f",116.431865);

String longitude=String.format("%.Nf",39.909622);

对第一次上报GPS数据进行四舍五入的模糊处理,得到模糊后的GPS数据(116.43,39.91),查询缓存集合,未找到与(116.43,39.91)对应的经纬度数据,调用第三方平台的API接口,得到与(116.43,39.91)对应的第一经纬度数据(116.43,39.91)以及城市,将该城市与第一经纬度数据(116.43,39.91)存储于缓存集合。

步骤2、如图3所示,终端设备第二次上报GPS数据(116.432644,39.914437),利用指令:

String longitude=String.format("%.2f",116.432644);

String longitude=String.format("%.Nf",39.914437);

对第二次上报GPS数据进行四舍五入的模糊处理,得到模糊后的GPS数据(116.43,39.91),查询缓存集合,找到与(116.43,39.91)对应的第二经纬度数据(116.43,39.91),返回第二经纬度数据(116.43,39.91)。

步骤3、根据第一经纬度数据(116.43,39.91)和第二经纬度数据(116.43,39.91)得到第一城市和第二城市,第一城市与第二城市为相同城市,该共享单车未跨市骑行。

步骤4、如图4所示,终端设备第三次上报GPS数据(116.444021,39.913385),利用指令:

String longitude=String.format("%.2f",116.444021);

String longitude=String.format("%.Nf",39.913385);

对第三次上报GPS数据进行四舍五入的模糊处理,得到模糊后的GPS数据(116.44,39.91),查询缓存集合,未找到与(116.44,39.91)对应的第三经纬度数据(116.44,39.91),调用第三方平台的API接口,得到与(116.44,39.91)对应的第三经纬度数据(116.44,39.91)以及城市,将该城市与第三经纬度数据(116.44,39.91)存储于缓存集合。

步骤5、根据第二经纬度数据(116.43,39.91)和第三经纬度数据(116.44,39.91)得到第二城市和第三城市,第二城市与第三城市为相同城市,该共享单车未跨市骑行。

步骤6、如图5所示,终端设备第四次上报GPS数据(114.495477,38.015984),利用指令:

String longitude=String.format("%.2f",114.495477);

String longitude=String.format("%.Nf",38.015984);

对第四次上报GPS数据进行四舍五入的模糊处理,得到模糊后的GPS数据(114.50,38.02),查询缓存集合,未找到与(114.50,38.02)对应的第四经纬度数据(114.50,38.02),调用第三方平台的API接口,得到与(114.50,38.02)对应的第四经纬度数据(114.50,38.02)以及城市,将该城市与第四经纬度数据(114.50,38.02)存储于缓存集合。

步骤7、根据第三经纬度数据(116.44,39.91)和第四经纬度数据(114.50,38.02)得到第三城市和第四城市,第三城市与第四城市为不同城市,该共享单车跨市骑行。

终端设备向服务器上报GPS数据通过缓存集合获取经纬度数据的时间大概为0.5秒,通过调用第三方平台获取经纬度数据的时间大概2秒,一分钟终端设备向服务器上报6次GPS数据,一分钟节约了8秒左右,节省了大量时间,也降低了服务器的压力,通过上述方法可以优化服务器调用第三方平台API接口的次数,降低调用次数,效率上升、成本也随之下降。

实施例3

本实施例3提供一种计算机可读存储介质,上述计算机可读存储介质存储计算机程序,上述计算机程序使计算机执行上述的一种共享单车跨市骑行的判断方法。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种共享单车存放站及共享单车管理系统和方法
  • 一种基于物联网的共享单车故障报修方法及装置
  • 一种基于随机Petri网模型的共享单车分析调度方法
  • 共享单车锁的开关判断方法、共享单车锁及共享单车
  • 共享单车骑行规范的策略推荐方法、装置及共享单车
技术分类

06120115934679