用于形成虚拟地图的方法及系统与流程

文档序号:20568871发布日期:2020-04-29 00:38阅读:359来源:国知局
用于形成虚拟地图的方法及系统与流程

本申请涉及电数字数据处理领域,尤其涉及用于形成虚拟地图的方法及系统。



背景技术:

目前,web端展示地图的方式都是通过调用地图公司提供的地理位置坐标api(应用程序接口),再通过echarts或者highcharts等web端插件将这些地理位置坐标展现在web端。

然而,现有地图展现方式必须保持与外网连接以获取公共地图坐标api,在内网情况下无法获取公共地理位置坐标api。此外,公共地理位置坐标api不能提供某些人为分区的平面图例如室内平面图、人为划分功能区形成的平面图等的地理位置坐标,因而人为分区平面图不能与周围地理位置相结合展示,展现精度有限。另外,一般都以静态图片展示,无法使得平面图每个区域可以交互,即使为该平面图单独开发出动态的可交互区域,也不能与地理位置坐标相结合,耗时多,无法批量使用。



技术实现要素:

为了克服现有技术中存在的不足,本发明要解决的技术问题是提供一种用于形成虚拟地图的方法及系统,其使平面图能像地图一样展现出来。

为解决上述技术问题,根据本发明的第一方面,提供一种用于形成虚拟地图的方法,该方法包括:

将平面图图片绘制成图像以获取所述图片的每一个像素点的颜色数据;

基于所有颜色数据得到由0和1组成的二维数组,0表示无用像素点,1表示有用像素点,二维数组元素下标为对应像素点的浏览器视口坐标;

提取二维数组中的数据并查询数据为1的占位符;

确定至少一由数据为1的占位符形成的闭合图形;

将每一闭合图形对应的二维数组元素分别存入不同的闭合数组;

将每一闭合数组元素对应像素点的浏览器视口坐标转换为相应像素点的虚拟地理位置坐标;

将虚拟地理位置坐标输入到web端地图展示插件展现与平面图对应的虚拟地图。

作为本发明所述方法的改进,所述基于所有颜色数据得到由0和1组成的二维数组包括:将所述图像中由文字和边框围出的色块内的像素点视为无用像素点并用0占位替换;计算边框像素点颜色数据中的不透明度值的平均值;将不透明度低于所述平均值的像素点视为无用像素点并用0占位替换;将不透明度大于或等于所述平均值的像素点视为有用像素点并用1占位替换。

作为本发明所述方法的另一种改进,所述基于所有颜色数据得到由0和1组成的二维数组包括:将非指定颜色区域的像素点视为无用像素点并用0占位替换;将指定颜色区域外圈内的像素点视为无用像素点并用0占位替换;计算指定颜色区域外圈像素点颜色数据中的不透明度值的平均值;将不透明度低于所述平均值的像素点视为无用像素点并用0占位替换;将不透明度大于或等于所述平均值的像素点视为有用像素点并用1占位替换。

作为本发明所述方法的又一种改进,所述将每一闭合数组元素对应像素点的浏览器视口坐标转换为相应像素点的虚拟地理位置坐标包括:根据每一闭合图形最高点像素坐标、最左点像素坐标、最右点像素坐标、最低点像素坐标计算由这四个点围成的矩形的像素中心点坐标;获取真实地图的四个点的地理位置坐标并根据所述地理位置坐标计算由这四个点围成的矩形的地理位置中心点坐标;根据所述像素中心点坐标、所述地理位置坐标和所述地理位置中心点坐标对每一像素点的浏览器视口坐标进行等比例映射得到相应像素点的虚拟地理位置坐标。

作为本发明所述方法的再一种改进,所述将每一闭合数组元素对应像素点的浏览器视口坐标转换为相应像素点的虚拟地理位置坐标包括:根据每一闭合图形最高点像素坐标、最左点像素坐标、最右点像素坐标、最低点像素坐标计算由这四个点围成的矩形的像素中心点坐标;计算所述像素中心点坐标与预先设置的地理位置中心点坐标的比率;根据所述比率计算同比率下所述四个点中的至少一个对应的地理位置坐标;根据所述像素中心点坐标、所述地理位置坐标和所述地理位置中心点坐标对每一像素点的浏览器视口坐标进行等比例映射得到相应像素点的虚拟地理位置坐标。

作为本发明所述方法的另一种改进,所述方法还包括:响应于接收到对所述虚拟地图某一区域的点击,调用与该区域对应的预设api以展现与该区域对应的数据。

为解决上述技术问题,根据本发明的第二方面,提供一种用于形成虚拟地图的系统,该系统包括:

颜色点获取模块,用于将平面图图片绘制成图像以获取所述图片的每一个像素点的颜色数据;

二维数组生成模块,用于基于所有颜色数据得到由0和1组成的二维数组,0表示无用像素点,1表示有用像素点,二维数组元素下标为对应像素点的浏览器视口坐标;

查询模块,用于提取二维数组中的数据并查询数据为1的占位符;

确定模块,用于确定至少一由数据为1的占位符形成的闭合图形;

存入模块,用于将每一闭合图形对应的二维数组元素分别存入不同的闭合数组;

转换模块,用于将每一闭合数组元素对应像素点的浏览器视口坐标转换为相应像素点的虚拟地理位置坐标;

展现模块,用于将虚拟地理位置坐标输入到web端地图展示插件展现与平面图对应的虚拟地图。

为解决上述技术问题,根据本发明的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明的用于形成虚拟地图的方法的步骤。

为解决上述技术问题,根据本发明的第四方面,提供一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实现本发明的用于形成虚拟地图的方法的步骤。

按照本发明,通过将整个人为分区平面图例如建筑物的室内平面图转换成相对应的虚拟地理位置坐标,然后通过echarts或者highcharts等web端地图展示插件,将其展示出来,从而可以利用这些插件上针对地图的样式编辑方法,来自定义动态样式,展现动态数据,利于动态操作,扩展性很高。而且,由于可提供虚拟地理位置坐标,可不依赖外网,从而适用内网工作的单位。此外,本发明可快速、批量将平面图片(园区平面图、室内平面图、未来园区概念图)自动转换成所需可显示在地图插件中的虚拟地理位置坐标。

结合附图阅读本发明实施方式的详细描述后,本发明的其它特点和优点将变得更加清楚。

附图说明

图1为根据本发明方法的一实施例的流程图;

图2为根据本发明系统的一实施例的框图。

为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本发明所必要的细节,而省略其他细节。

具体实施方式

下面参照附图对本发明的实施方式和实施例进行详细说明。

通过下面给出的详细描述,本发明的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本发明优选实施例的同时,它们仅为说明目的给出。

图1示出了根据本发明的用于形成虚拟地图的方法的一优选实施例的流程图。

在步骤s102,将平面图片例如医院楼层平面分布图通过html5<canvas>标签绘制成图像,获取图片每一个像素点所对应的颜色数据。通过<canvas>标签所获取到的每一个像素点的颜色数据由rgba所表示,rgba分别代表red(红色)、green(绿色)、blue(蓝色)和alpha(不透明度)。例如黑色的rgba为(0,0,0,1),白色的rgba为(255,255,255,1)。其中rgb三个色彩数值的取值范围为0-255,不透明度a的取值范围为0-1。

在步骤s104,对所有颜色数据进行分析得到由0和1组成的二维数组,0表示无用像素点,1表示有用像素点。

对于平面图有边框的情形,可采用现有图像识别技术识别出图像中的文字和边框围出的大面积色块,将这些大面积色块包含的像素点视为“无用像素点”,使用数字“0”来进行替换,即“0数字占位替换”。然后计算剩下的边框部分颜色数据rgba中的a值即不透明度的平均数,得出平均值,以此为基准,对筛选得出的边框像素点进行归类。如果边框部分某点的a值(不透明度)小于计算得到的平均值,则被判定为“无用像素点”,用数字0进行占位替换。如果边框部分某点的a值(不透明度)大于或等于计算得到的平均值,则被判定为“有用像素点”,用数字1进行占位替换。最终获得一个由0和1组成的二维数组。

对于没有边框或者遇到较复杂图形可能识别不准确的情形,为准确识别可使用区域颜色进行区分。例如,如需要分析图像中的黄色和蓝色区域,则直接分析黄色和蓝色的rgba值数据,其他不相关颜色全部判定为“无用像素点”,用0数字进行“占位替换”。对黄色和蓝色区域进行图形分析,留下图形最外圈颜色数据,分析rgba值,内部的色块数据都归为“无用像素点”,用0数据进行占位替换。如果外圈部分某点的a值(不透明度)小于计算得到的平均值,则被判定为“无用像素点”,用数字0进行占位替换。如果外圈部分某点的a值(不透明度)大于或等于计算得到的平均值,则被判定为“有用像素点”,用数字1进行占位替换。最终获得一个由0和1组成的二维数组。

二维数组的每个元素就是图片对应在浏览器屏幕上的像素点,元素下标就是对应的像素点浏览器视口坐标。例如,第一行第七列的元素的下标为1、7,即浏览器视口坐标(x:6,y:0),浏览器的左上顶点为坐标原点。

在步骤s106,提取二维数组中的数据,根据“从第一行到最后一行,从第一列到最后一列”的默认方向,查询数据为1的占位符。

在步骤s108,当第i行第j列为第一个出现数据是1的占位符时,根据现有的数据结构图的算法分析可得到最近点连接的闭合图形。每个闭合图形中都携带对应的数组行列坐标,即形成了“像素点轮廓图”。

在步骤s110,将每个闭合图形对应的二维数组元素分别存入不同的闭合数组,将这些数组打成小包最后汇总到一个大的数组进行存储(如:[[闭合数组1],[闭合数组2],[闭合数组3]])。

在步骤s112,将每一闭合数组元素对应像素点的浏览器视口坐标即像素点坐标转换为相应像素点的虚拟地理位置坐标。

首先根据像素点轮廓图中最高点像素坐标、最左点像素坐标、最右点像素坐标、最低点像素坐标通过长宽高换算得到4个点所围成矩形图形的像素中心点坐标。接下来根据是否与真实地图相结合,来分别进行讨论。

如果要与真实地图相结合,需传入真实地图的已知的四个点(最高点、最左点、最右点和最低点)(不同于像素点轮廓图中的最高点、最左点、最右点、最低点)如平面图对应场所例如医院或更大区域的四个点的地理位置坐标(可以通过地图公司提供的api直接获取),同理计算出地理位置坐标中心点坐标。将像素中心点、像素面积(4个点所围成图形面积)与地理位置中心点、地理位置面积(4个点所围成地理位置面积)进行等比例映射转换,得到下面的映射方程式。

(已知最左点像素坐标-像素中心点坐标)÷(已知最左点的地理位置坐标-地理位置中心点坐标)=(已知x像素点坐标-像素中心点坐标)÷(x像素点的虚拟地理位置坐标-地理位置中心点坐标)

通过上面的方程式进行等比例映射将每个像素点(x像素点)的像素点坐标转换成对应的虚拟地理位置坐标。

如果不与真实地图相结合,而是随意转换成任意虚拟地理位置坐标,不需传入真实地理坐标。可采用默认设定机制,服务器传入一个所在地地理位置坐标作为地理位置中心点坐标,通过(像素中心点坐标÷传入的地理位置坐标中心点坐标)得到比率,再计算出同比率下像素点轮廓图中的最高点、最左点、最右点、最低点中的至少一个所对应的地理位置。然后根据上面的等比例映射完成转换。

在步骤s114,将虚拟地理位置坐标输入到web端地图展示插件如echarts或者highcharts等中从而展现与平面图对应的虚拟地图。

本方法对地理坐标无法获取得到的位置坐标进一步扩充,将一个尽量完整的地图展现出来。例如,我们查询某医院,并想知道某个医院内部某个楼某层里面都有哪些科室、职能区域等,就可以动态点击楼层,获取每层楼的具体平面地图,点击平面图的每个科室甚至可以看出其中人流数据等等想要展示的数据,可以更直观的看出来,从而方便我们生活。

在实施例中,本发明还包括在接收到对展现的虚拟地图的某一区域点击时,调用与该区域对应的预设api以展现与该区域对应的数据。例如,通过图1所示方法展现出某医院的科室分布图,点击每个科室出现相应的数据(收入、支出等),对服务量最多的科室在地图上进行动态标记、动态合并科室区域,点击地图上每个科室即可查看科室日结余数据等等。

图2示出了根据本发明的用于形成虚拟地图的系统的一优选实施例的框图,该系统包括:颜色点获取模块202,用于将平面图图片绘制成图像以获取所述图片的每一个像素点的颜色数据;二维数组生成模块204,用于基于所有颜色数据得到由0和1组成的二维数组,0表示无用像素点,1表示有用像素点,二维数组元素下标为对应像素点的浏览器视口坐标;查询模块206,用于提取二维数组中的数据并查询数据为1的占位符;确定模块208,用于确定至少一由数据为1的占位符形成的闭合图形;存入模块210,用于将每一闭合图形对应的二维数组元素分别存入不同的闭合数组;转换模块212,用于将每一闭合数组元素对应像素点的浏览器视口坐标转换为相应像素点的虚拟地理位置坐标;展现模块214,用于将虚拟地理位置坐标输入到web端地图展示插件展现与平面图对应的虚拟地图。

在实施例中,本发明系统还可包括调用模块,用于响应于接收到对所述虚拟地图某一区域的点击,调用与该区域对应的预设api以展现与该区域对应的数据。

在实施例中,二维数组生成模块可包括:第一占位替换子模块,用于将所述图像中由文字和边框围出的色块内的像素点视为无用像素点并用0占位替换;第一计算子模块,用于计算边框像素点颜色数据中的不透明度值的平均值;第二占位替换子模块,用于将不透明度低于所述平均值的像素点视为无用像素点并用0占位替换;第三占位替换子模块,用于将不透明度大于或等于所述平均值的像素点视为有用像素点并用1占位替换。

在实施例中,转换模块可包括:第二计算子模块,用于根据每一闭合图形最高点像素坐标、最左点像素坐标、最右点像素坐标、最低点像素坐标计算由这四个点围成的矩形的像素中心点坐标;第三计算子模块,用于获取真实地图的四个点的地理位置坐标并根据所述地理位置坐标计算由这四个点围成的矩形的地理位置中心点坐标;映射子模块,用于根据所述像素中心点坐标、所述地理位置坐标和所述地理位置中心点坐标对每一像素点的浏览器视口坐标进行等比例映射得到相应像素点的虚拟地理位置坐标。

在此所述的多个不同实施方式或者其特定特征、结构或特性可在本发明的一个或多个实施方式中适当组合。另外,在某些情形下,只要适当,流程图中和/或流水处理描述的步骤顺序可修改,并不必须精确按照所描述的顺序执行。另外,本发明的多个不同方面可使用软件、硬件、固件或者其组合和/或执行所述功能的其它计算机实施的模块或装置进行实施。本发明的软件实施可包括保存在计算机可读介质中并由一个或多个处理器执行的可执行代码。计算机可读介质可包括计算机硬盘驱动器、rom、ram、闪存、便携计算机存储介质如cd-rom、dvd-rom、闪盘驱动器和/或具有通用串行总线(usb)接口的其它装置,和/或任何其它适当的有形或非短暂计算机可读介质或可执行代码可保存于其上并由处理器执行的计算机存储器。本发明可结合任何适当的操作系统使用。

除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、组件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、组件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。

前面说明了本发明的一些优选实施例,但是应当强调的是,本发明不局限于这些实施例,而是可以本发明主题范围内的其它方式实现。本领域技术人员可以在本发明技术构思的启发和不脱离本发明内容的基础上对本发明做出各种变型和修改,这些变型或修改仍落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1