一种在地图层绘制图形的方法、装置及存储介质与流程

文档序号:26003587发布日期:2021-07-23 21:21阅读:87来源:国知局
一种在地图层绘制图形的方法、装置及存储介质与流程

本发明涉及电子地图领域,尤其涉及的是一种在地图层绘制图形的方法、装置及存储介质。



背景技术:

伴随着人们对健康、安全定位和娱乐体验更加精致的追求,智能穿戴设备开始在全球市场上的迅速的普及。而安全问题是智能穿戴设备所要考虑解决的其中一个重要问题。手表、手环、定位器这写穿戴设备都会有设置安全区域这些不规则图形的功能,当小孩、宠物走出安全区域的时候会及时通知用户。然而安全区域往往是个不规则图形,用户设置的时候会根据实际情况设置对应的形状区域,之后也会根据自身需求对安全区域对应的图形形状进行改变。由于目前的谷歌地图(googlemap)的安卓开发工具包(androidsdk)没有直接的应用程序编程接口(api)来通过拖拽已绘制图形的形状上的各个点来改变该绘制图形的形状。因此用户如果需要改变谷歌地图上安全区域对应的图形形状,则需要终端通过记录用户所有触摸点的位置,然后转换成为地图上对应的经纬度,当用户手指停止移动的时候再根据当前手指对应的触摸点重新连线画出对应的图形形状,从而实现对谷歌地图上安全区域的范围进行更改。然而用户在触摸屏幕和移动地图的过程中会产生很多的点,从而会造成很多额外的、不必要的经纬度转换计算。

因此,现有技术还有待改进和发展。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种在地图层上绘制图形的方法、装置及存储介质,旨在解决现有技术中在修改地图层上的图形时,由于触摸屏幕和移动地图的过程中会产生很多的点,从而会造成很多额外的计算的问题。

本发明解决问题所采用的技术方案如下:

第一方面,本发明实施例提供一种在地图层绘制图形的方法,其中,所述方法包括:

通过预设的可视化界面组件层获取图形数据,将所述图形数据作为待绘制图形数据;

获取所述待绘制图形数据的经纬度数据,通过所述经纬度数据在地图层上绘制出与所述待绘制图形数据形状相同的图形。

在一种实施方式中,所述获取图形数据,在预设的可视化界面组件层上根据所述图形数据对原始图形数据进行更新,更新完毕以后将所述图形数据作为待绘制图形数据包括:

获取触摸点的坐标数据;

在所述可视化界面组件层上根据所述触摸点的坐标数据对原始图形的顶点的坐标数据进行更新;

将更新完毕以后得到的顶点依次连接,得到图形数据;

将所述图形数据作为待绘制图形数据。

在一种实施方式中,所述在所述可视化界面组件层上根据所述触摸点的坐标数据对原始图形的顶点的坐标数据进行更新包括:

将所述触摸点的坐标数据与原始图形的顶点的坐标数据进行比较;

若所述触摸点的坐标数据与原始图形的顶点的坐标数据相同,则根据所述触摸点的坐标数据对原始图形的顶点的坐标数据进行更新。

在一种实施方式中,所述若所述触摸点的坐标数据与原始图形的顶点的坐标数据相同,则根据所述触摸点的坐标数据对原始图形的顶点的坐标数据进行更新包括:

若所述触摸点的坐标数据与原始图形的顶点的坐标数据相同,则获取所述触摸点的移动轨迹信息;

根据所述触摸点的移动轨迹信息确定所述触摸点停止移动时对应的坐标数据;

根据所述触摸点停止移动时对应的坐标数据对原始图形的顶点的坐标数据进行更新。

在一种实施方式中,所述在所述可视化界面组件层上根据所述触摸点的坐标数据对原始图形的顶点的坐标数据进行更新还包括:

若所述触摸点的坐标数据与原始图形的顶点的坐标数据不相同,则不对原始图形的顶点的坐标数据进行更新。

在一种实施方式中,所述获取所述待绘制图形数据的经纬度数据,通过所述经纬度数据在地图层上绘制出与所述待绘制图形数据形状相同的图形包括:

获取所述待绘制图形数据的顶点的坐标数据;

将所述待绘制图形数据的顶点的坐标数据转换为经纬度数据,转换完毕以后得到所述待绘制图形数据的顶点的经纬度数据;

根据所述待绘制图形数据的顶点的经纬度数据确定所述待绘制图形数据的顶点在地图层上对应的标准地理点;

在地图层上依次连接所述标准地理点,以实现在地图层上绘制出与所述待绘制图形数据形状相同的图形。

在一种实施方式中,所述方法还包括:

获取地图层的放缩变化数据,根据所述地图层的放缩变化数据对原始的地图层的放缩大小数据进行更新;

根据更新后的地图层的放缩大小数据对所述可视化界面组件层执行放缩操作;

通过基于所述放缩操作后得到的所述可视化界面组件层执行所述一种在地图层绘制图形的方法。

在一种实施方式中,所述根据更新后的地图层的放缩大小数据对所述可视化界面组件层执行放缩操作包括:

获取原始的可视化界面组件层的放缩大小数据;

将更新后的地图层的放缩大小数据与所述原始的可视化界面组件层的放缩大小数据的比值作为所述可视化界面组件层的放缩倍数;

根据所述放缩倍数对所述可视化界面组件层执行放缩操作。

第二方面,本发明实施例还提供一种在地图层绘制图形的装置,其中,所述装置包括:

获取模块,用于通过预设的可视化界面组件层获取图形数据,将所述图形数据作为待绘制图形数据;

绘制模块,用于获取所述待绘制图形数据的经纬度数据,通过所述经纬度数据在地图层上绘制出与所述待绘制图形数据形状相同的图形。

第三方面,本发明实施例还提供一种计算机可读存储介质,其上存储有多条指令,其中,所述指令适用于由处理器加载并执行,以实现上述任一所述的一种在地图层绘制图形的步骤。

本发明的有益效果:本发明实施例通过预设的可视化界面组件层获取图形数据,将所述图形数据作为待绘制图形数据;获取所述待绘制图形数据的经纬度数据,通过所述经纬度数据在地图层上绘制出与所述待绘制图形数据形状相同的图形。本实施例通过把修改图形的操作过程放在安卓系统提供的可视化界面组件层上,进而使修改图形的操作过程和地图层抽离。本发明可以有效避免用户在改变安全区域的形状的过程中,由于手指滑动产生过多触摸点,而导致产生过多经纬度转换计算的情况。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种在地图层绘制图形的方法的流程示意图。

图2是本发明实施例提供的获取待绘制图形数据的流程示意图。

图3是本发明实施例提供的在地图层上绘制出与所述待绘制图形数据形状相同的图形的流程示意图。

图4是本发明实施例提供的一种在地图层绘制图形的装置的内部模块的连接示意图。

图5是本发明实施例提供的终端的原理框图。

图6是本发明实施例提供的可视化界面组件层与地图层的示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。

随着电子地图技术的发展以及对于电子地图的各方面的完善,现在的电子地图已经具备了强大全面的搜索定位功能。随着计算机技术的发展,海量信息的存储也越来越高效和低成本,用户通过访问网络去获取电子地图也越来越容易。这些都使得电子地图应用的范围越来越广,随着用户对电子地图的需求增长,电子地图的功能与用途也日益丰富。其中一项新增的功能就是将电子地图技术和智能穿戴设备结合。

具体地,伴随着人们对健康、安全定位和娱乐体验更加精致的追求,智能穿戴设备开始在全球市场上的迅速的普及。而安全问题是智能穿戴设备所要考虑解决的其中一个重要问题。手表、手环、定位器这写穿戴设备都会有设置安全区域这些不规则图形的功能,当小孩、宠物走出安全区域的时候会及时通知用户。然而安全区域往往是个不规则图形,用户设置的时候会根据实际情况设置对应的形状区域,之后也会根据自身需求对安全区域对应的图形形状进行改变。由于目前的谷歌地图(googlemap)的安卓开发工具包(androidsdk)没有直接的应用程序编程接口(api)来通过拖拽已绘制图形的形状上的各个点来改变该绘制图形的形状。因此用户如果需要改变谷歌地图上安全区域对应的图形形状,则需要终端通过记录用户所有触摸点的位置,然后转换成为地图上对应的经纬度,当用户手指停止移动的时候再根据当前手指对应的触摸点重新连线画出对应的图形形状,从而实现对谷歌地图上安全区域的范围进行更改。然而用户在触摸屏幕和移动地图的过程中会产生很多的点,从而会造成很多额外的、不必要的经纬度转换计算。

针对现有技术的上述缺陷,本发明提供了一种在地图层绘制图形的方法,通过把修改图形的操作过程放在安卓系统提供的可视化界面组件层(view)上,进而使修改图形的操作过程和地图层抽离。用户重新设置安全区域时,只需要在所述可视化界面组件层上,通过手指滑动改变原始安全区域对应的图形,这个过程中手指划定产生的点不会直接影响到地图层,因此无需进行经纬度的转换计算。只有在用户最终确认好新的安全区域之后,再获取所述可视化界面组件层上绘制的图形的经纬度数据,然后绘制在地图层上。本发明可以有效避免用户在改变安全区域的形状的过程中,由于手指滑动产生过多触摸点,而导致产生过多经纬度转换计算的情况。

如图1所示,本实施例提供一种在地图层上绘制图形的方法,所述方法包括如下:

步骤s100、通过预设的可视化界面组件层获取图形数据,将所述图形数据作为待绘制图形数据。

具体地,当用户需要对原始安全区域的图形进行改变的时候,若直接在地图层上改变原始安全区域对应的图形形状,则用户在手指滑动中产生的触摸点都将会进行经纬度转换计算过程,从而导致消耗设备大量的计算资源。为了避免上述情况,如图6所示,本实施例预先设置了一个可视化界面组件层(view),安卓系统提供的可视化界面组件层,包括菜单、按钮、对话框等,它是所有界面设计组件的基类,基本上所有的高级界面设计组件都是继承可视化界面组件层类实现的。一个可视化界面组件层在屏幕占据一块矩形区域,负责渲染这块矩形区域,也可以处理这块矩形区域发生的事件,并可以设置该区域是否可见以及获取焦点等。

本实施例将所述可视化界面组件层作为用户对原始安全区域进行图形改变的“画板”,以实现将用户的图形修改过程与地图层分离。由于用户在所述可视化界面组件层上产生的触摸点不需要全部进行经纬度转换计算,因此可以节省大量的计算资源。终端通过预设的可视化界面组件层获取用户绘制的新的图形数据,然后将所述图形数据作为待绘制图形数据,用于后续绘制于地图层上。

在一种实现方式中,如图2所示,所述步骤s100包括如下步骤:

步骤s110、获取触摸点的坐标数据;

步骤s120、在所述可视化界面组件层上根据所述触摸点的坐标数据对原始图形的顶点的坐标数据进行更新;

步骤s130、将更新完毕以后得到的顶点依次连接,得到图形数据;

步骤s140、将所述图形数据作为待绘制图形数据。

具体地,为了获取到用户在可视化界面组件层上绘制的新的安全区域对应的图形,本实施例通过首先获取用户通过触摸屏幕产生的触摸点的坐标数据,然后在所述可视化界面组件层上根据所述触摸点的坐标数据对原始图形的顶点的坐标数据进行更新。

在一种实现方式中,本实施例首先需要将所述触摸点的坐标数据与原始图形的顶点的坐标数据进行比较,若所述触摸点的坐标数据与原始图形的顶点的坐标数据相同,则根据所述触摸点的坐标数据对原始图形的顶点的坐标数据进行更新。具体地,若所述触摸点的坐标数据与原始图形的顶点的坐标数据相同,则获取所述触摸点的移动轨迹信息,根据所述触摸点的移动轨迹信息确定所述触摸点停止移动时对应的坐标数据,根据所述触摸点停止移动时对应的坐标数据对原始图形的顶点的坐标数据进行更新。若所述触摸点的坐标数据与原始图形的顶点的坐标数据不相同,则不对原始图形的顶点的坐标数据进行更新。换言之,本实施例是通过改变原始图形的顶点,进而改变原始图形的形状。如果用户想要改变原始图形的形状,则必须要在所述可视化界面组件层上首先点击该层的原始图形上的其中一个顶点,然后拖动该顶点,直至将该顶点移动到用户指定的位置,然后得到一个新的图形,该图形与新的安全区域的范围相对应。如果用户在所述可视化界面组件层上首先点击的不是该层的原始图形上的其中一个顶点,则不消耗此次的触摸事件,沿用原始图形作为安全区域的范围。

举例说明,如图6所示,本实施例首先默认在预设的可视化界面组件层上提供一个正六边形的图形作为安全区域对应的原始图形,然后用户同步触摸以及移动该原始图形上的顶点(图6中的点)。当用户触摸屏幕的时候,终端在所述可视化界面组件层上通过ontouchevent方法检查用户手指按下时产生的最初的触摸点的坐标数据是否是所述正六边形的图形的六个顶点所在的位置的其中之一,若是,则控制该顶点跟随用户手指移动,直到手指离开屏幕,从而得到一个新的顶点。将更新完毕以后得到的新的顶点依次连接,得到图形数据,从而完成对原始图形的改变。然后,还需要将所述图形数据作为待绘制图形数据,用于后续绘制于地图层上,才能真正实现在地图层上对安全区域的范围进行改变。

如图1所示,所述方法还包括如下步骤:

步骤s200、获取所述待绘制图形数据的经纬度数据,通过所述经纬度数据在地图层上绘制出与所述待绘制图形数据形状相同的图形。

当用户在所述可视化界面组件层上绘制了新的图形以后,还需要将该图形转换至地图层上,以真正对安全区域的范围进行改变。具体地,将用户在所述可视化界面组件层上绘制的新的图形数据作为待绘制图形数据,然后通过经纬度转换技术在地图层上绘制出与所述待绘制图形数据形状相同的图形,作为新的安全区域的范围。

在一种实现方式中,如图3所示,所述步骤s200具体包括如下步骤:

步骤s210、获取所述待绘制图形数据的顶点的坐标数据;

步骤s220、将所述待绘制图形数据的顶点的坐标数据转换为经纬度数据,转换完毕以后得到所述待绘制图形数据的顶点的经纬度数据;

步骤s230、根据所述待绘制图形数据的顶点的经纬度数据确定所述待绘制图形数据的顶点在地图层上对应的标准地理点;

步骤s240、在地图层上依次连接所述标准地理点,以实现在地图层上绘制出与所述待绘制图形数据形状相同的图形。

具体地,为了在地图层上绘制出与所述可视化界面组件层上的待绘制图形数据形状相同的图形数据。首先需要在可视化界面组件层上获取所述待绘制图形数据的各个顶点的坐标数据,然后将获得的顶点的坐标数据转换为真实地理空间中的经纬度数据,转换完毕以后得到所述待绘制图形数据的顶点的经纬度数据,之后根据顶点的经纬度数据在地图层上查找到这些顶点对应的标准地理点,然后依次连接所述标准地理点,即可在地理层上绘制出与可视化界面组件层上绘制的图形数据相同形状的图形。简言之,本实施例将用户绘制的图形从可视化界面组件层上转化至地图层上,是通过首先在地图层上确定可视化界面组件层上的图形的顶点对应的标准地理点,然后再通过依次连接各个标准地理点从而得到一个闭环的图形,该图形即为用户重新设定的安全区域的范围。

由于地图的放缩比例会对本实施例提供的在地图层绘制图形的方法的准确性产生一定影响,因此在一种实现方式中,所述方法还包括:获取地图层的放缩变化数据,根据所述地图层的放缩变化数据对原始的地图层的放缩大小数据进行更新。然后,根据更新后的地图层的放缩大小数据对所述可视化界面组件层执行放缩操作。在一种实现方式中,可以通过获取原始的可视化界面组件层的放缩大小数据,然后将更新后的地图层的放缩大小数据与所述原始的可视化界面组件层的放缩大小数据的比值作为所述可视化界面组件层的放缩倍数,之后根据所述放缩倍数对所述可视化界面组件层执行放缩操作。举例说明,假设地图层触发放缩变化以后,获取到当前地图层的放缩大小数据为a,则再获取当前可视化界面组件层的放缩大小数据为b,计算c=a/b,则c即为当前需要对可视化界面组件层进行放缩操作时采用的放缩倍数。最后,通过基于所述放缩操作后得到的所述可视化界面组件层执行所述一种在地图层绘制图形的方法。

在一种实现方式中,为了保证在所述可视化界面组件层上绘制的图形数据是有效的,即该图形是闭环的且不会出现两条线相交的情况。需要说明的是,本实施例中提到的两条线相交的情况指的是两条线段有且仅有一个公共点,且这个点不是任何一条线段的端点时,称这两条线段是相交的。因此本实施例中通过所述可视化界面组件层获取到图形数据以后,还需要对所述图形数据进行检测处理,所述检测处理包括:快速排斥实验处理、跨立实验处理其中之一,或者同时使用快速排斥实验处理或者跨立实验处理。其中所述快速排斥实验处理指的是:假设以线段p1,p2为对角线作一矩形r,再以q1,q2为对角线作矩形t,当两个矩形不相交的时候两条线段肯定不相交,即线段相交的必要条件时矩形相交。所述跨立实验指的是:条件1:如果一条线段p1p2跨过了线段q1q2,那么p1,p2就分布在线段q1q2的两边,那么((p1-q1)×(q2-q1))*((q2-q1)×(p2-q1))>0(注意“×”是叉乘的意思,而“*”才是点乘)。根据(p1-q1)×(q2-q1)得出线段q1p1跟线段q1q2叉乘结果的向量的方向,(q2-q1)×(p2-q1)同样也会得出线段q1q2和线段q1p2叉乘结果的向量的方向,只有这两个结果向量的点乘结果大于0,即这两个结果向量的方向一致时,p1,p2才会分布在线段q1q2的两边。条件2:q1q2分布在p1p2两边的条件为((q1-p1)×(p2-p1))*((p2-p1)×(q2-p1))>0。同时满足以上两个条件时,线段q1q2跟线段p1p2才会相交。在编程里将两个条件中的公式转化为坐标运算后得到的表达式写入编程语言中即可判断线段相交与否。

基于上述实施例,本发明还提供了一种在地图层绘制图形的装置,如图4所示,该装置包括:

获取模块01,用于通过预设的可视化界面组件层获取图形数据,将所述图形数据作为待绘制图形数据;

绘制模块02,用于获取所述待绘制图形数据的经纬度数据,通过所述经纬度数据在地图层上绘制出与所述待绘制图形数据形状相同的图形。

基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图5所示。该智能终端包括通过系统总线连接的处理器、存储器、网络接口、显示屏。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种在地图层绘制图形的方法。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏。

本领域技术人员可以理解,原理框图仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一种实现方式中,所述智能终端的存储器中存储有一个或者一个以上的程序,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行在地图层绘制图形的方法的指令。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

综上所述,本发明公开了一种在地图层绘制图形的方法,所述方法包括:通过预设的可视化界面组件层获取图形数据,将所述图形数据作为待绘制图形数据;获取所述待绘制图形数据的经纬度数据,通过所述经纬度数据在地图层上绘制出与所述待绘制图形数据形状相同的图形。本实施例通过把修改图形的操作过程放在安卓系统提供的可视化界面组件层上,进而使修改图形的操作过程和地图层抽离。本发明可以有效避免用户在改变安全区域的形状的过程中,由于手指滑动产生过多触摸点,而导致产生过多经纬度转换计算的情况。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

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