一种适于移动设备应用的快速电子围栏方法与流程

文档序号:12823224阅读:367来源:国知局
一种适于移动设备应用的快速电子围栏方法与流程

本发明涉及卫星导航定位应用领域,特别是涉及一种在移动设备中应用的电子围栏方法。



背景技术:

在卫星定位导航应用系统中,经常需要确定位置坐标是否位于划定区域中,如出租车辆是否位于某划定区域内、景区讲解器是否进入到划定的景点区域或是否越过景区边界等,即电子围栏。通常,移动设备上由于受到处理器能力限制,只能做到矩形围栏或圆形围栏,对不规则区域无法进行精确的电子围栏。

在计算机应用领域,电子围栏一般采用射线法判断点是否位于多边形内部,需要计算多个直线交叉方程和多次搜索算法,计算时间较长且需要大量内存,无法满足移动设备的应用。因此,移动设备需要更快速的算法实现电子围栏,保证实时性。

本发明就是为了解决上述现有技术中存在的问题而提出的一种适于移动设备应用的快速电子围栏方法。



技术实现要素:

本发明要解决的技术问题是针对现有技术的不足,提供一种适于移动设备应用的快速电子围栏方法,能够实时快速、精确的确定当前设备所在位置坐标是否为与划定的区域内。

本发明的技术方案是:

一种适于移动设备应用的快速电子围栏方法,其特征在于:它包括以下步骤:

步骤一:以区域边界任意一点为起始点,按照逆时针方向采集区域边界点坐标,包括经度和纬度,构成经纬度坐标集,该方向是与直角坐标系象限顺序对应的;

步骤二:以待确认点位置坐标为中心,建立直角坐标系,即计算坐标集内所有点到当前点的经度差和纬度差,其中经度差即为边界点在坐标系中的x值,纬度差为边界点在坐标系中的y值,形成新直角坐标系坐标集,同时,若存在经度距离和纬度距离都为0的情况,则直接确定当前点为边界点,即查重操作,可确认待确认点是边界点,此时输出结果,不进行后续步骤;

步骤三:依次从新坐标系坐标集中取连续两个坐标,进行叉积运算,若叉积为0,则说明当前坐标位于区域边界上;若叉积不为0,则按照改进的弧长法计算代数和;

步骤四:若代数和为4,则当前坐标位于划定区域内;若代数和为0,则当前坐标位于划定区域外。

其中,所述改进后的弧长法需进行以下三个步骤完成:

步骤一:查重操作,即查找区域边界点中是否存在于待确认点相同的点,确定点是否是边界点;

步骤二:叉积运算,即确认待确认点是否位于连续的区域边界点的连线上,确定点是否位于多边形边上;

步骤三:改进的弧长法运算,确定点位于多边形内部或外部。

其中,所述弧长法步骤如下:

(1)首先建立以待确认点为中心的直角坐标系,待确认点为原点,多边形区域由多点逆时针连接而成,区域边界点为p[i]=(x[i],y[i]);

(2)查重操作,,确定区域边界点p[i]是否是原点,即若存在边界点p[i]是x[i]=0且y[i]=0,则原点就是区域边界点,即待确认点是区域边界点;

(3)叉积运算,确认连续的区域边界点是否与原点在一条直线上,即计算叉积(y[i+1]*x[i]-y[i]*x[i+1]);若叉积为0,则点在多边形边上,即待确认点位于区域边界上;

(4)确定所有边界点所在象限:首先确定所有p[i]=(x[i],y[i])在坐标系中所在象限,若p[i]位于坐标轴上(x[i]或y[i]为0),则0值坐标按正值处理;

(5)然后分析所有连续的坐标点p和p(i+1)所在象限,假设存在一个代数和,初值为0,分析所有连续的区域边界点所在象限,有以下四种情况:

a.p(i+1)在p在同一象限,则代数和不变;

b.p(i+1)在p的下一个象限,则代数和加1;

c.p(i+1)在p的上一个象限,则代数和减1;

d.p(i+1)在p的对角象限,则查看叉积值;若叉积小于0,则代数和减2;若叉积大于0,则代数和加2。

(6)结果有以下情况,依据代数和判断点的位置,即若代数和为0,则当前坐标位于划定区域外;若代数和为4,则当前坐标位于划定区域内。

本发明解决了移动设备计算电子围栏的实时性问题,其具有以下优点:

(1)对设备硬件要求低,无需高速处理器和大内存;

(2)边界区域可为任意形状,只需采集区域边界一定数量坐标即可,精度高;

(3)算法只包括加减法和少量乘法,计算量小,实时性好。

附图说明

图1为本发明实施例适于移动设备应用的快速电子围栏方法的流程图。

图2为本实施例弧长法计算点点在多边形外部的示意图。

图3为本实施例弧长法计算点点在多边形上的示意图。

图4为本实施例弧长法计算点点在多边形内部的示意图。

图5为本实施例改进弧长法计算点点在多边形外部的示意图。

图6为本实施例改进弧长法计算点点在多边形内部的示意图。

具体实施方式

下面结合附图及实施方式对本发明作进一步详细的说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明:

在计算机图形学中,弧长法是用于判断点在多边形内外的高效算法,且是时间复杂度最佳的算法,具有精度高、计算量小的优点,将该算法加以改进后引入到电子围栏算法中,很好的解决移动设备上运行电子围栏算法运行时间长、精度低的缺点。

图1为一种适于移动设备应用的快速电子围栏方法的流程图,包括下述步骤:

步骤一:以区域边界任意一点为起始点,按照逆时针方向采集区域边界点坐标,包括经度和纬度,构成经纬度坐标集;

步骤二:以待确认点位置坐标为中心,建立直角坐标系,即计算坐标集内所有点到当前点的经度差和纬度差,其中经度差即为边界点在坐标系中的x值,纬度差为边界点在坐标系中的y值,形成新直角坐标系坐标集,同时,若存在经度距离和纬度距离都为0的情况,则直接确定当前点为边界点,即查重操作,可确认待确认点是边界点,此时输出结果,不进行后续步骤;

步骤三:依次从新坐标系坐标集中取连续两个坐标,进行叉积运算,若叉积为0,则说明当前坐标位于区域边界上;若叉积不为0,则按照改进的弧长法计算代数和;

步骤四:若代数和为4,则当前坐标位于划定区域内;若代数和为0,则当前坐标位于划定区域外。

在计算机图形学中,弧长法用于判断坐标是否位于多边形区域内,其内容是:多边形是有向多边形,一般规定沿多边形的正向,边的左侧为多边形的内侧。以被测点为圆心作单位圆,将全部有向边向单位圆作径向投影,并计算其中单位圆上弧长的代数和。当点在多边形外部时,所有有向边向单位圆投影后,其代数和为0,如图2所示;当点在多边形上时,所有有向边向单位圆投影后,其代数和为π,如图3所示当点在多边形内部时,所有有向边向单位圆投影后,其代数和为2π,如图4所示

虽然弧长法只需做乘法和加减法,计算量小,时间复杂度小,是适于移动设备的电子围栏算法,解决了射线法的计算量大的缺点。但是,弧长法对于一些特殊情况存在缺陷,如点与边界点重合、点位于坐标轴上等特殊情况时不适用。而且,弧长法需计算边界连续点与坐标点之间的夹角,计算量仍然较大,对算法改进后,将其完善。

所述改进后的弧长法需进行以下三个步骤完成:

步骤一:查重操作,即查找区域边界点中是否存在于待确认点相同的点,确定点是否是边界点;

步骤二:叉积运算。即确认待确认点是否位于连续的区域边界点的连线上,确定点是否位于多边形边上;

步骤三:改进的弧长法运算,确定点位于多边形内部或外部。

所述弧长法通过改善降低了计算量,该方法适用于移动设备实时计算电子围栏,步骤如下:

(1)首先建立以待确认点为中心的直角坐标系,待确认点为原点,多边形区域由多点逆时针连接而成,区域边界点为p[i]=(x[i],y[i]);

(2)查重操作,,确定区域边界点p[i]是否是原点,即若存在边界点p[i]是x[i]=0且y[i]=0,则原点就是区域边界点,即待确认点是区域边界点;

(3)叉积运算,确认连续的区域边界点是否与原点在一条直线上,即计算叉积(y[i+1]*x[i]-y[i]*x[i+1]);若叉积为0,则点在多边形边上,即待确认点位于区域边界上;

(4)确定所有边界点所在象限:首先确定所有p[i]=(x[i],y[i])在坐标系中所在象限,若p[i]位于坐标轴上(x[i]或y[i]为0),则0值坐标按正值处理;

(5)然后分析所有连续的坐标点p和p(i+1)所在象限,假设存在一个代数和,初值为0,分析所有连续的区域边界点所在象限,有以下四种情况:

a.p(i+1)在p在同一象限,则代数和不变;

b.p(i+1)在p的下一个象限,则代数和加1;

c.p(i+1)在p的上一个象限,则代数和减1;

d.p(i+1)在p的对角象限,则查看叉积值;若叉积小于0,则代数和减2;若叉积大于0,则代数和加2。

(6)结果有以下情况,依据代数和判断点的位置,即若代数和为0,则当前坐标位于划定区域外,如图5所示;若代数和为4,则当前坐标位于划定区域内,如图6所示。

通过上述步骤,就能确定点与多边形区域的分布关系,算法简单高效,适于移动设备的实时应用。

以上通过对所列实施方式的介绍,阐述了本发明的基本构思和基本原理,但本发明的设计构思并不局限于此,凡利用本发明构思对本发明做出的非实质性修改,均落入本发明的保护范围之内。

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