本发明专利技术公开了一种基于矢量叉积运算的公交站点上下行方向判定方法,该方法包括以下步骤:利用Requests库获取网页内容;提取公交线路json数据中的公交线路名称及对应的公交uid,得到处理后的公交线路名称;获取各条公交线路的线路信息及到达该线路的站点信息,并对站点及线路拐点坐标进行多线程坐标转换;采用计算几何矢量叉积算法判定公交站点上下行方向;对公交站点进行几何中心计算;基于ArcPy将线路Excel数据表格及站点Excel数据表格转换为ArcMap线要素和点要素。本发明专利技术实现了公交站点上下行方向判定,并生成导航地图公交站点及公交线路数据库。公交线路数据库。公交线路数据库。
【技术实现步骤摘要】
一种基于矢量叉积运算的公交站点上下行方向判定方法
[0001]本专利技术涉及公交站点上下行方向判定
,具体来说,涉及一种基于矢量叉积运算的公交站点上下行方向判定方法。
技术介绍
[0002]《智慧城市时空大数据平台建设技术大纲》中提出时空大数据应包括基础时空数据、公共专题数据、物联网实时感知数据、互联网在线抓取数据,及其驱动的数据引擎和多节点分布式大数据管理系统。其中,互联网在线抓取数据作为智慧城市时空大数据的重要组成部分之一,以此来补充所缺失的数据。
[0003]已有学者对公交数据的获取进行了研究,如采用动态网页技术基于导航地图获取了某城市公交数据,提取了公交站点密度,并分析了站点与服务场所属性的相关性,文中并未涉及如何区分站点的上下行方向。学者从公交查询网站获取了某城市公交站点信息,并对信息进行了去重处理,该方法只能将空间位置或属性信息完全一致的站点去重,会导致站点误删。学者基于导航地图开发者平台的“Web服务API”获取POI数据(包括公交数据),并对其进行数据清洗、坐标统一等操作,该方法只能获取到站点,其属性信息不完善,且不能与公交线路进行关联。以上研究均只获取到公交站点数据,并无关联的公交线路空间信息及站点的上下行方向数据。
[0004]针对相关技术中的问题,目前尚未提出有效的解决方案。
技术实现思路
[0005]针对相关技术中的问题,本专利技术提出一种基于矢量叉积运算的公交站点上下行方向判定方法,以克服现有相关技术所存在的上述技术问题。
[0006]为此,本专利技术采用的具体技术方案如下:一种基于矢量叉积运算的公交站点上下行方向判定方法,该方法包括以下步骤:S1、基于python网络爬虫技术,利用Requests库获取网页内容,并对网页内容进行解析,获取线路名称;S2、提取公交线路json数据中的公交线路名称及对应的公交uid,并进行去重处理,得到处理后的公交线路名称;S3、将公交uid作为参数,获取各条公交线路的线路信息及到达该线路的站点信息,并对站点及线路拐点坐标进行多线程坐标转换;S4、采用计算几何矢量叉积算法判定公交站点上下行方向;S5、基于公交站点的上下行方向,对公交站点进行几何中心计算;S6、基于ArcPy将线路Excel数据表格及站点Excel数据表格转换为ArcMap线要素和点要素,并存储至地理数据库中。
[0007]进一步的,所述基于python网络爬虫技术,利用Requests库获取网页内容,并对网页内容进行解析,获取线路名称包括以下步骤:
S11、利用Beautiful Soup解析库对网页内容进行解析;S12、结合样式class及id属性的设置对html容器进行识别,获取网页内容中公交线路json数据;S13、利用json.loads(content)语句将公交线路json数据的字符串转换为dict字典类型,并采用键值对的方式获取线路名称。
[0008]进一步的,所述Requests库用于获取网页内容;其中,所述网页内容包括图片网页资源、html网页资源及json网页资源;所述Beautiful Soup解析库用于解析前端页面。
[0009]进一步的,所述提取公交线路json数据中的公交线路名称及对应的公交uid,并进行去重处理,得到处理后的公交线路名称包括以下步骤:S21、将线路名称作为搜索关键词,从公交线路json数据中提取公交线路名称及对应的公交uid;S22、对公交线路名称及公交uid进行去重处理,得到处理后的公交线路名称。
[0010]进一步的,所述将公交uid作为参数,获取各条公交线路的线路信息及到达该线路的站点信息,并对站点及线路拐点坐标进行多线程坐标转换包括以下步骤:S31、将公交uid作为参数,获取各条公交线路的线路信息及到达该线路的站点信息;S32、分别对线路信息及站点信息的双重循环将站点信息存储到Excel表格中,并得到线路Excel数据表格及站点Excel数据表格;S33、对站点及线路拐点坐标进行多线程坐标数据转换。
[0011]进一步的,所述线路信息包括线路名称、行驶方向、起终站点、票价、运营时间及线路拐点坐标;所述站点信息包括站点uid、名称、所在线路站点序号、所在线路名称及百度米制坐标。
[0012]进一步的,所述对站点及线路拐点坐标进行多线程坐标数据转换包括以下步骤:S331、创建用于存放转换内容的队列;S332、利用导航地图API将百度米制坐标转化为百度经纬度坐标系,将百度经纬度坐标系转换成火星坐标系,并将火星坐标系转换为国家2000坐标系;S333、将Python的Queue模块及多线程Thread模块相结合,进行多线程同步坐标数据转换。
[0013]进一步的,所述采用计算几何矢量叉积算法判定公交站点上下行方向包括以下步骤:S41、获取公交前一站点、公交当前站点及公交下一站点的经纬度坐标;S42、计算经纬度坐标的差值,若差值大于0时,公交下一站点标记为上行方向,若差值小于0时,则标记为下行方向。
[0014]进一步的,所述基于公交站点的上下行方向,对公交站点进行几何中心计算包括以下步骤:S51、判定完上下行方向后,对多个同一站点且不同坐标进行几何中心计算;S52、根据预设的区别阈值,对空间位置不重叠的重复站点的站点名称、站点的上
下行方向及距离进行分组;S53、利用算术平均值计算出每组的几何中心点坐标,并将几何中心点坐标作为该站点的坐标。
[0015]进一步的,所述将百度经纬度坐标系转换成火星坐标系的转换公式为:
[0016]式中,z表示中间向量,X
B
表示导航地图中的经度,Y
B
表示导航地图中的纬度,X
H
表示在火星坐标系中的经度,Y
H
表示在火星坐标系中的纬度。
[0017]本专利技术的有益效果为:本专利技术通过网络信息抓取技术获取公交线路及站点数据,并对数据进行清洗、集成、转换等操作,得到结构化的公交数据后,采用计算几何矢量叉积算法判定公交站点上下行方向,并基于几何中心的计算方法对同一站点的多个数据进行化处理,最终得到符合现实的公交数据。
[0018]本专利技术结合网络爬虫技术、多线程坐标转换技术、矢量叉积算法和几何中心计算方法,通过数据获取、坐标转换、上下行方向判定、几何中心计算、格式转换的步骤,实现了公交站点上下行方向判定,并生成导航地图公交站点及公交线路数据库。
附图说明
[0019]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0020]图1是根据本专利技术实施例的一种基于矢量叉积运算的公交站点上下行方向判定方法的流程图;图2是根据本专利技术实施例的一种基于矢量叉积运算的公交站点上下行方向判定方法的数据获取与处理流程图;图3是根据本专利技术实施例的一种基本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于矢量叉积运算的公交站点上下行方向判定方法,其特征在于,该方法包括以下步骤:S1、基于python网络爬虫技术,利用Requests库获取网页内容,并对网页内容进行解析,获取线路名称;S2、提取公交线路json数据中的公交线路名称及对应的公交uid,并进行去重处理,得到处理后的公交线路名称;S3、将公交uid作为参数,获取各条公交线路的线路信息及到达该线路的站点信息,并对站点及线路拐点坐标进行多线程坐标转换;S4、采用计算几何矢量叉积算法判定公交站点上下行方向;S5、基于公交站点的上下行方向,对公交站点进行几何中心计算;S6、基于ArcPy将线路Excel数据表格及站点Excel数据表格转换为ArcMap线要素和点要素,并存储至地理数据库中。2.根据权利要求1所述的一种基于矢量叉积运算的公交站点上下行方向判定方法,其特征在于,所述基于python网络爬虫技术,利用Requests库获取网页内容,并对网页内容进行解析,获取线路名称包括以下步骤:S11、利用Requests库获取网页内容,并利用Beautiful Soup解析库对网页内容进行解析;S12、结合样式class及id属性的设置对html容器进行识别,获取网页内容中公交线路json数据;S13、利用json.loads(content)语句将公交线路json数据的字符串转换为dict字典类型,并采用键值对的方式获取线路名称。3.根据权利要求2所述的一种基于矢量叉积运算的公交站点上下行方向判定方法,其特征在于,所述Requests库用于获取网页内容;其中,所述网页内容包括图片网页资源、html网页资源及json网页资源;所述Beautiful Soup解析库用于解析前端页面。4.根据权利要求1所述的一种基于矢量叉积运算的公交站点上下行方向判定方法,其特征在于,所述提取公交线路json数据中的公交线路名称及对应的公交uid,并进行去重处理,得到处理后的公交线路名称包括以下步骤:S21、将线路名称作为搜索关键词,从公交线路json数据中提取公交线路名称及对应的公交uid;S22、对公交线路名称及公交uid进行去重处理,得到处理后的公交线路名称。5.根据权利要求1所述的一种基于矢量叉积运算的公交站点上下行方向判定方法,其特征在于,所述将公交uid作为参数,获取各条公交线路的线路信息及到达该线路的站点信息,并对站点及线路拐点坐标进行多线程坐标转换包括以下步骤:S31、将公...
【专利技术属性】
技术研发人员:王勇,邢策梅,周松,周秀华,
申请(专利权)人:江苏省测绘工程院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。