本发明涉及地理信息数据处理领域,特别是涉及一种地址云服务平台。
背景技术:
地理信息系统(GIS,Geographic Information System)是一种基于计算机的工具,它可以对在地球上存在的东西和发生的事件进行成图和分析。GIS技术把地图这种独特的视觉化效果和地理分析功能与一般的数据库操作(例如查询和统计分析等)集成在一起。这种能力使GIS与其他信息系统相区别,从而使其在广泛的公众和个人、企事业单位中解释事件、预测结果、规划战略等中具有实用价值。
因此,可以利用GIS平台在进行各种业务地址上图的操作,生成各种进行可视化的业务地图。然而,目前各机构单位系统内的业务系统仍然存在大量的无空间的业务地址,而无空间坐标的地址无法实现在地图动态展现。
因此,迫切需要解决如何将无空间坐标的业务地址进行智能匹配,从而进行上图操作。
技术实现要素:
本发明的目的在于克服现有技术的缺点与不足,提供了一种地址云服务平台,可以将无空间坐标进行智能匹配,以完成业务上图操作。
本发明通过以下的方案实现:一种地址云服务平台,包括
数据源管理模块,用于对数据源进行配置;
地址匹配模块,用于对无空间坐标的地址进行匹配;
任务调度模块,用于定时对匹配任务进行调度;
成果数据管理模块,用于在匹配任务完成后,对匹配的成果进行管理记录。
进一步,所述数据源管理模块,包括:
数据列表查询模块,用于根据业务名称、状态查询已经配置好的数据源;
数据源添加模块,用于配置新的数据源连接,配置的连接信息包括业务名称、数据源类型、数据库连接、数据库服务名称、服务器IP、端口、用户、密码、是否启用、备注;
数据源修改模块,用于对配置源信息进行修改;
数据源删除模块,用于对数据源连接信息进行物理删除;
数据源测试模块,用于测试配置是否正确;
连接状态控制模块,用于控制是否启用连接。
进一步,所述地址匹配模块包括:
数据读取模块,用于读取需要进行地址匹配的数据;
数据匹配模块,用于对无空间坐标的地址进行匹配;
匹配测试模块,用于抽取部分数据进行匹配测试,获得匹配率。
进一步,所述数据读取模块,通过读取数据库进行数据读取,或通过接收文件导入进行数据读取。
进一步,所述数据匹配模块包括:
正向地址匹配模块,用于根据业务地址名称与标准地址的名称进行匹配;
反向地址匹配模块,用于根据业务地址坐标与标准地址的坐标进行匹配;
管理辖区归属匹配模块,用于对业务地址进行空间分析,实现业务地址辖区归属分类,
行政区划归属匹配模块,用于对业务地址与标准行政区划进行空间分析,实现业务地址与标准行政区划归属分类。
进一步,所述正向地址匹配模块包括:
第一判断模块,用于判断数据类型;若所述数据包含信息点时,则转到第一匹配模块;若所述数据具备详址,则转到第二匹配模块;若所述数据不具备信息点和详址,则转到第三匹配模块;
第一匹配模块,用于执行信息点匹配;
第二匹配模块,用于进行词组拆分,获得拆分词组列表,再执行详址匹配;
第三匹配模块,用于行政区划补全和标准化字段处理,再执行没有详址和信息点的匹配。
进一步,所述反向地址匹配模块包括:
搜索模块,用于根据地址经纬度坐标和搜索半径参数,进行信息点搜索;
判断模块,用于判断半径范围内是否有信息点,若有,则返回距离最近的信息点的地址信息;若否,则设置匹配状态为未匹配到适当地址的结果对象。
进一步,所述管理辖区归属匹配模块包括:
行政编码列表组装模块,用于根据地址片段对象,组装行政编码列表,以行政区划从小到大顺序排列;
管理辖区关联关系查询模块,用于根据传入的行政区划编码列表第一个编码进行管理辖区关联关系查询;
乡镇、居村委查找模块,用于通过街路巷与乡镇、居村委的光线关系,找到对应的乡镇、居村委;
添加模块,用于将获得的乡镇代码加到原先的行政编码列表,以行政区划从小到大排列;
Solr空间查询模块,用于根据传入的经纬度坐标进行solr空间查询。
进一步,所述任务调度模块包括:
定时调度模块,用于通过定时扫描配置匹配任务信息,实现匹配任务定时调度;
任务管理模块,用于对匹配任务实现启动、停用、刷新和执行操作;
任务编辑模块,用于对配置任务的每个节点进行编辑;
日志生成模块,用于生成任务调度日志。
进一步,所述成果数据管理模块包括:
列表显示模块,用于通过列表形式显示匹配的结果;
地图显示模块,用于在地图上进行定位显示匹配的结果。
相比于现有技术,本发明可以实现通过业务地址匹配,将匹配率最高的标准地址与业务地址进行关联,从而实现无空间坐标的业务地址能够在地图上展现。
为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
图1是本发明的地址云服务平台的模块连接框图。
图2是本发明的数据源管理模块的连接框图。
图3是地址匹配模块的内部连接框图。
图4是数据匹配模块的内部连接框图。
图5是正向地址匹配模块的内部连接框图。
图6是第一匹配模块的内部连接框图。
图7是第二匹配模块的模块框图。
图8是本发明的第一重新标准化模块的连接框图。
图9是第三匹配模块的模块连接框图。
图10是第二重新标准化模块的内部连接框图。
图11是反向地址匹配模块的内部连接框图。
图12是管理辖区归属匹配模块的内部连接框图。
图13是任务调度模块的内部连接框图。
图14是成果数据管理模块的内部连接框图。
具体实施方式
本发明主要针对当用户在利用GIS系统制作业务地图时,各机构单位系统内的业务系统仍然存在大量的无空间的业务地址。由于所采用的并非标准的地址,因此无法直接实现上图操作。针对这种情况,本发明提供了一种能够对地址进行智能匹配的地址云服务平台。
以下结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
请参阅图1,其为本发明的地址云服务平台的模块连接框图。
本发明提供了一种地址云服务平台,包括数据源管理模块1、地址匹配模块2、任务调度模块3和成果数据管理模块4。
所述数据源管理模块1,用于对数据源进行配置。
所述地址匹配模块2,用于对无空间坐标的地址进行匹配。
所述任务调度模块3,用于定时对匹配任务进行调度。
所述成果数据管理模块4,用于在匹配任务完成后,对匹配的成果进行管理记录。
进一步请参阅图2,其为本发明的数据源管理模块的连接框图。所述数据源管理模块1,包括:数据列表查询模块11、数据源添加模块12、数据源修改模块13、数据源删除模块14、数据源测试模块15和连接状态控制模块16。
所述数据列表查询模块11,用于根据业务名称、状态查询已经配置好的数据源。
所述数据源添加模块12,用于配置新的数据源连接,配置的连接信息包括业务名称、数据源类型、数据库连接、数据库服务名称、服务器IP、端口、用户、密码、是否启用、备注。
具体的,本发明可以支持多种数据库类型的数据源(oracle、mysql、sqlserver等数据库)。
所述数据源修改模块13,用于对配置源信息进行修改。
所述数据源删除模块14,用于对数据源连接信息进行物理删除。
所述数据源测试模块15,用于测试配置是否正确。
所述连接状态控制模块16,用于控制是否启用连接。
进一步请参阅图3,其为地址匹配模块的内部连接框图。所述地址匹配模块2包括:数据读取模块21、数据匹配模块22和匹配测试模块23。
所述数据读取模块21,用于读取需要进行地址匹配的数据。具体的,所述数据读取模块21,通过读取数据库进行数据读取,或通过接收文件导入进行数据读取。
具体的,操作用户在新建匹配任务时,需要指定业务数据源信息。系统支持数据库与文件导入两种方式。操作用户需要指定业务数据源、业务实体、关键字段、更新字段等信息以实现业务地址匹配上图。填写任务名称,相应的会生成任务编号作为唯一标识。
其中,在使用数据库连接时,需要执行以下的配置。
第一、源数据表设置,具体包括:
1、直接选择已经配置好的数据库连接信息进行连接数据库,同时系统也提供了新增配置功能,系统连接所需的信息后,进行数据库连接,连接成功后进行保存。
2、新增配置界面同数据源管理同样具有新增与修改功能,连接需要配置的信息包括:业务名称、数据库连接、数据库类型、服务名称、IP、端口、用户名、密码、备注。
3、连接后点击测试连接,可测试连接是否成功。连接失败要给出失败原因提示。
4、数据库连接成功后,系统自动将该用户下的所有表全部读取出来,选择要连接的用户表,并可预览数据源,预览数据源可选择预览前多少行数据。
约束:oracle用户如果没有权限读取表和视图,应该要给出对应提示。
第二、目标表配置:
1、配置要抽取到的目标表,前端可直接下拉选择目标表,后台对目标表进行配置管理。
2、选取目标表后,系统自动将源数据表和目标里所有的字段全部读取并进行映射,前端展示目标字段的英文和中文,方便用户选择。
3、用户可以手动选择需要映射的字段,在选择映射字段的过程中,注意业务数据的唯一标识、地址等字段必须进行抽取,可选择一个或多个组合。
约束:
1、选择源数据表和目标表以后,系统默认是自动映射、隐藏已经匹配的源字段、隐藏已经匹配的目标字段已经勾选。
3、映射的字段如果数据结构不一致,要给出相应的提示并以红字标识映射的字段;
第三、数据源表和目标表的主键要标识出来。
第三、关键字段设置:配置源数据与目标数据的比对字段和更新时间字段,比对字段是配置数据增量抽取的唯一标识字段,可以实现数据的实时抽取,同步。更新时间字段可以提高数据抽取的效率,即每次抽取时判断上一次抽取时间后的数据新增或更新。
所述数据匹配模块22,用于对无空间坐标的地址进行匹配。
进一步请参阅图4,其为数据匹配模块的内部连接框图。所述数据匹配模块22包括:正向地址匹配模块221、反向地址匹配模块222、管理辖区归属匹配模块223和行政区划归属匹配模块224。
正向地址匹配模块221,用于根据业务地址名称与标准地址的名称进行匹配;
反向地址匹配模块222,用于根据业务地址坐标与标准地址的坐标进行匹配;
管理辖区归属匹配模块223,用于对业务地址进行空间分析,实现业务地址辖区归属分类,
行政区划归属匹配模块224,用于对业务地址与标准行政区划进行空间分析,实现业务地址与标准行政区划归属分类。
进一步请参阅图5,其为正向地址匹配模块的内部连接框图。所述正向地址匹配模块221包括:第一判断模块3a、第一匹配模块4a、第二匹配模块5a和第三匹配模块6a。
所述第一判断模块3a,用于判断数据类型;若所述数据包含信息点时,则转到第一匹配模块;若所述数据具备详址,则转到第二匹配模块;若所述数据不具备信息点和详址,则转到第三匹配模块。
具体的,本发明接收的数据可能并非标准的数据形式。而在本发明中,规定的标准的数据如下表1所述:
表1 标准地址层级举例
本发明需要针对所接收的数据进行判断,根据不同情况分别进行处理,具体分为三种情况:
1、所述数据包含信息。例如,接收的信息点数据为:“XX村南侧大眼山北坡”“长城大道与东内环路交叉口”。
2、所述数据具备详址。例如,接收详细地址数据:“广东省清远市清城区新城街道新城居委会沿江路20号兰苑小区1栋3梯502房”。
3、上述两者都不具备,则需要通过第三匹配模块进行匹配。例如,地址“广东省清远市清城区新城街道新城居委会沿江路20号兰苑小区1栋3梯502房”就具备了省级行政区划名称、市级行政区划名称、区县行政区划名称、详址;如果该数据只有“广东省清远市清城区新城街道新城居委会”。
所述第一匹配模块4a,用于执行信息点匹配。
所述第二匹配模块5a,用于进行词组拆分,获得拆分词组列表,再执行详址匹配。具体的,例如将接收的地址“广东省清远市清城区新城街道新城居委会沿江路20号兰苑小区1栋3梯502房”拆分为词组列表,拆分后的词组列表如上述表1所示。
所述第三匹配模块6a,用于行政区划补全和标准化字段处理,再执行没有详址和信息点的匹配。
进一步,请参阅图6,其为第一匹配模块的内部连接框图。
所述第一匹配模块4a中具体包括:第一查询模块41a、第二判断模块42a、第一获取模块43a、第一行政区划设置模块44a和第一匹配率设置模块45a。
所述第一查询模块41a,用于根据信息点名称,通过solr进行数据查询。
所述第二判断模块42a,用于判断是否存在该信息点的标准地址,若是,则转到第一获取模块;若否,则转到第二匹配模块。
所述第一获取模块43a,用于获取信息点标准地址信息。这里的标准地址信息,是指标准地址组合模式的地址,实际就是信息点是所附属的标准地址,比方“广州市天河区广园东广之旅大厦XX室广XX事务所”这样的地址描述,“XX事务所”是信息点,其标准地址就是“广州市天河区广园东广之旅大厦XX室”。
所述第一行政区划设置模块44a,用于设置行政区划代码和名称;
第一匹配率设置模块45a,用于设置匹配率,返回匹配结果。
进一步,请同时参阅图7,其为第二匹配模块的模块框图。所述第二匹配模块5a中具体包括:第一行政区划冲突解决模块51a、第一补全模块52a、第一重新标准化模块53a、第三判断模块54a、第四判断模块55a、第五判断模块56a和第二行政区划设置模块57a。
所述第一行政区划冲突解决模块51a,用于解决行政区划冲突。行政区划冲突分两类,主要是因为在录入地址是采用口语化或者没有完整输入,一个顺序错误,比方广州市天河区,写成“天河区广州市”,二是词义重复导致一个词可归属多个地址层级,常见与乡镇街道、居村委会跟道路名重复,而用户在输入的时候,没有将后缀写清楚,导致无法从单个词来判断其是属于那个地址层级,需要从其输入的上下文来判断地址层级的合理性。
所述第一补全模块52a,用于根据地址扩展对象补全词组列表。例如:若接收的地址为“清远市清城区兰苑小区1栋3梯502房”,则可以根据其前后地址进行补全,将其补全为“广东省清远市清城区新城街道新城居委会沿江路20号兰苑小区1栋3梯502房”。
所述第一重新标准化模块53a,用于重新标准化地址,设置并返回最小级别的行政区划标准地址。
所述第三判断模块54a,用于判断返回的标准地址是否存在;若是,执行第四判断模块,若否,则抛出异常处理。
所述第四判断模块55a,用于判断经纬度坐标是否都为0;若否,则获得标准地址数据;若是,则往上一级查询标准地址,并获得其标准地址数据。
所述第五判断模块56a,用于判断是否只需要匹配一条记录;若是,则设置匹配率和返回结果的对象;若否,通过solr查询,匹配多条结果。
所述第二行政区划设置模块57a,用于设置所属行政区划代码和名称,并返回结果。
请同时参阅图8,其为本发明的第一重新标准化模块的连接框图。所述第一重新标准化模块53a,具体包括:第二获取模块531a、第一返回模块532a、第六判断模块533a、第一最近地址匹配模块534a和第二返回模块535a。
所述第二获取模块531a,用于获取标准地址。常用地址或者口语化,时常没有说乡镇街道办,居村委等地址层级,这里是指获取相应地址层级都补全的标准地址。
所述第一返回模块532a,用于根据词类标准化行政区划地址,并返回标准地址。
所述第六判断模块533a,若不存在或者存在多条结果,查询上一级地址,直至获得一条结果。这里的查询是按地址层级逐级往上查询,确认其归属。
所述第一最近地址匹配模块534a,用于匹配最近的地址。具体的,在进行最近地址匹配时,是根据经纬度,计算距离。
所述第二返回模块535a,返回得到的标准地址。
进一步,请参阅图9,其为第三匹配模块的模块连接框图。所述第三匹配模块6a中,包括:拼接模块61a、拆分模块62a、第二行政区划冲突解决模块63a、第二补全模块64a、第二重新标准化模块65a和第七判断模块66a。
所述拼接模块61a,用于拼接组装查询地址。
所述拆分模块62a,用于拆分拼接的地址。
所述第二行政区划冲突解决模块63a,用于解决行政区划冲突。
所述第二补全模块64a,用于执行solr地址查询,进行字段补全,获取词组列表数据。
所述第二重新标准化模块65a,用于执行重新标准化地址,设置并返回最小级别的行政区划标准地址。
所述第七判断模块66a,用于判断返回的标准地址是否存在,若是,则设置匹配率,获取最小级别行政区划的标准地址信息;若否,则抛出异常。
进一步,请参阅图10,其为第二重新标准化模块的内部连接框图。所述第二重新标准化模块65a,具体包括:第三获取模块651a、第三返回模块652a、第八判断模块653a、第二最近地址匹配模块654a和第四返回模块655a。
所述第三获取模块651a,用于获取标准地址。常用地址或者口语化,时常没有说乡镇街道办,居村委等地址层级,这里是指获取相应地址层级都补全的标准地址。
所述第三返回模块652a,用于根据词类标准化行政区划地址,并返回标准地址。
所述第八判断模块653a,若不存在或者存在多条结果,查询上一级地址,直至获得一条结果。
所述第二最近地址匹配模块654a,用于匹配最近的地址。具体的,在进行最近地址匹配时,是根据经纬度,计算距离。
所述第四返回模块655a,返回得到的标准地址。
进一步请参阅图11,其为反向地址匹配模块的内部连接框图。所述反向地址匹配模块222包括:搜索模块2221和信息点判断模块2222。
所述搜索模块2221,用于根据地址经纬度坐标和搜索半径参数,进行信息点搜索;
所述信息点判断模块2222,用于判断半径范围内是否有信息点,若有,则返回距离最近的信息点的地址信息;若否,则设置匹配状态为未匹配到适当地址的结果对象。
进一步请参阅图12,其为管理辖区归属匹配模块的内部连接框图。所述管理辖区归属匹配模块223包括:行政编码列表组装模块2231、管理辖区关联关系查询模块2232、乡镇居村委查找模块2233、添加模块2234和Solr空间查询模块2235。
所述行政编码列表组装模块2231,用于根据地址片段对象,组装行政编码列表,以行政区划从小到大顺序排列。
所述管理辖区关联关系查询模块2232,用于根据传入的行政区划编码列表第一个编码进行管理辖区关联关系查询。
所述乡镇、居村委查找模块2233,用于通过街路巷与乡镇、居村委的光线关系,找到对应的乡镇、居村委。
所述添加模块2234,用于将获得的乡镇代码加到原先的行政编码列表,以行政区划从小到大排列。
所述Solr空间查询模块2235,用于根据传入的经纬度坐标进行solr空间查询。
所述匹配测试模块23,用于抽取部分数据进行匹配测试,获得匹配率。操作用户通过连接数据源抽取业务数据,由于部分业务数据存在数据填写不规范的情况,可能导致匹配率过低,匹配价值不高,所以在数据匹配测试环节系统可以提供抽取业务数据表前100条数据,根据选择匹配对应字段进行预匹配,如果匹配结果有问题则可以重新调整匹配字段再匹配,查看匹配成果OK后,则进行批量匹配。
其中,在数据匹配测试时,平均匹配率低于80%时,提醒用户主要有三方面的原因导致:
a)匹配规则设置有误,建议重新配置后再进行匹配。
b)业务数据较差,建议先进行数据清洗后再进行匹配
c)标准地址库不全,建议进行完善。
进一步请参阅图13,其为任务调度模块的内部连接框图。所述任务调度模块3包括:定时调度模块31、任务管理模块32、任务编辑模块33和日志生成模块34。
所述定时调度模块31,用于通过定时扫描配置匹配任务信息,实现匹配任务定时调度,具体的原理如下:
本发明的支持多任务并行,即多个匹配任务可以在同一个时间点触发,相同数据源的多个任务也可以同时执行。本发明也支持单任务串行运行,即同一个匹配任务在没有运行完前,不允许此匹配任务重复运行。针对某一任务,如果在定时调度的时间内还没完成,又再次触发,则算作另外一个任务。任务运行完成后,通过任务的时间格式计算此任务下次的执行时间,并更新至任务库。
另外,本发明可以根据任务的下次执行时间定时启动任务,任务启动后首先根据配置的数据源信息将远程服务上的业务数据抽取到云平台服务端。
所述任务管理模块32,用于对匹配任务实现启动、停用、刷新和执行操作。
具体的,所述启用,对已经停用的调度任务进行手动启用。
所述停用是指把调度任务停用,如果点击了停用,调度任务将不再进行,除了正在执行的任务刚好被停用,则当前任务进程还在运行,但一旦运行完,将不再执行调度任务。必须先启用后才能执行匹配任务。
所述刷新,对整个页面信息进行刷新更新。
所述执行,调度任务在启用的状态下,还未开始执行匹配的任务,可以在这个页面点击执行按钮,提前执行此任务进行数据抽取、匹配。
所述任务编辑模块33,用于对配置任务的每个节点进行编辑。如果调度任务还没开始,在任务编辑中,部分属性不能进行编辑。包括数据类型、数据库连接、源数据表、目标表、匹配方式,其他可以修改。
所述日志生成模块34,用于生成任务调度日志。具体的日志内容为:记录任务的调度开始时间到结束时间的系统运行情况以及异常信息,生成任务调度日志,并对操作失败的数据进行说明。
进一步请参阅图14,其为成果数据管理模块的内部连接框图。所述成果数据管理模块4包括:列表显示模块41和地图显示模块42。
所述列表显示模块41,用于通过列表形式显示匹配的结果。其中,本发明默认展示全部的匹配结果数据,按照匹配时间分页展示。
所述地图显示模块42,用于在地图上进行定位显示匹配的结果。其中,不同匹配率的数据在地图上定位时,用不同的图标标示,并有相关的图例。
相比于现有技术,本发明可以实现通过业务地址匹配,将匹配率最高的标准地址与业务地址进行关联,从而实现无空间坐标的业务地址能够在地图上展现。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。