首页 / 专利分类库 / 教育;密码术;显示;广告;印鉴 / 显示;广告 / 有声广告 / 一种基于地理可视域分析的旅游景点自动讲解方法

一种基于地理可视域分析的旅游景点自动讲解方法

申请号 CN202011489504.6 申请日 2020-12-16 公开(公告)号 CN112581319B 公开(公告)日 2024-04-09
申请人 南京师范大学; 南京汉图信息技术有限公司; 发明人 龙毅; 周彤; 阮陵; 张翎;
摘要 本 发明 公开了一种基于地理可视域分析的旅游景点自动讲解方法,结合了 地理信息系统 技术、全球 定位 系统技术与语音合成技术。主要步骤为:在用户沿规划路线前进时,若当前 位置 处于景点讲解区域内,则启动该景点语音讲解;若当前位置处于景点讲解区域外,则求解当前位置的可视域范围内的景点,选取距离最近的景点作为语音讲解景点;计算规划线路中该景点可见的路段长度,根据用户的前进速度,得到有效讲解时间,调整语音讲解播放速度,保证用户可以完整听完一段语音讲解。本发明可以有效解决在一段较长的景点空白路段中长时间无景点讲解的问题。
权利要求

1.一种基于地理可视域分析的旅游景点自动讲解方法,其特征在于,包括以下步骤:
步骤一:设定用户规划线路,通过GIS模将用户规划路线上坐标点的坐标转换为地图投影中的坐标,并存储各个景点的坐标、名称、讲解文本以及地形信息;
步骤二:利用地形信息对各景点进行通视性分析,得到各景点的可视域;根据各景点的可视域对用户规划路径进行裁剪,得到每个景点的可视路径,并对可视路径设置缓冲区,组合每个景点的可视路径以及缓冲区得到所有景点的可视路径域集合;
步骤三:利用GPS系统实时获取用户的当前经纬度坐标,运动速度和运动方向,并将信息传递给GIS模块,GIS模块把用户的当前经纬度坐标转换为地图投影中的当前位置坐标;
步骤四:判断用户当前位置坐标是否处于某个景点的讲解区域范围内:
若处于该景点的讲解区域范围内,选定该景点为讲解景点,设定讲解速度为正常值,转到步骤八;否则进行下一步;
步骤五:利用地形信息和用户当前位置坐标,得到用户当前位置坐标下的可视域范围,并与景点位置做叠置分析,得到当前可视域范围内的所有景点的列表;
步骤六:若所有景点列表为空,即可视域范围内没有可讲解景点,转到步骤九;否则,对列表中的景点按照用户当前位置与各景点的距离由小到大的顺序进行排序,选择列表第一个景点为讲解景点,判断是否与上次讲解景点或者随机讲解景点相同,若有任一相同,删除列表第一个景点,转到步骤六;若均不一样,则将其作为讲解景点,计算该景点与用户的相对位置,进行下一步;
步骤七:将用户当前位置坐标与讲解景点的可视路径域做叠置分析,得到用户当前具体所在路径;根据用户运动速度和运动方向以及路径长度,计算用户走完该条路径剩余时间,将该剩余时间作为有效讲解时间,并对有效讲解时间和该景点讲解内容以正常速度播放所需要的时间作比较:
(1)若有效讲解时间远小于讲解语音正常播放时长,则转到步骤六;
(2)若有效讲解时长与讲解语音正常播放时长接近,则调整语音播放速度,使其播放时长略小于有效播放时长,转到步骤八;
(3)若有效讲解时长远大于语音正常播放时长,则设定播放速度为正常值,转到步骤八;
步骤八:将讲解速度、讲解景点以及讲解景点与用户的相对位置返回给语音讲解模块,语音讲解模块选择讲解内容,并按照规定速度,提示用户景点位置和讲解时长,并对讲解景点进行讲解;
步骤九:若随机讲解景点不为空,则继续讲解随机讲解景点,否则从GIS存储模块中选择任一景点作为随机讲解景点,设定讲解速度为正常值,将随机讲解景点与讲解速度返回给语音讲解模块开启讲解;
步骤十:结束一次讲解过程,转到步骤三。
2.根据权利要求1所述的基于地理可视域分析的旅游景点自动讲解方法,其特征在于:
所述用户规划线路为用户运动起点到用户运动终点之间的路径,由若干个坐标点构成。
3.根据权利要求1所述的基于地理可视域分析的旅游景点自动讲解方法,其特征在于:
所述GIS模块具有地图投影与坐标变换功能和数据组织功能。
4.根据权利要求1所述的基于地理可视域分析的旅游景点自动讲解方法,其特征在于:
所述步骤八中,通过语音合成引擎与语音输出设备对讲解景点进行讲解。

说明书全文

一种基于地理可视域分析的旅游景点自动讲解方法

技术领域

[0001] 本发明涉及智能导航服务领域,具体涉及一种基于地理可视域分析的旅游景点自动讲解方法。

背景技术

[0002] 移动终端自助导游服务系统是一种以定位系统(包括北斗和其他所有的定位获取系统)技术获取用户位置为依据,以GIS(Geographic Information System,地理信息系统)技术为平台的,其中包含了景区、景点的属性数据、空间数据,如景区电子地图、景点的导游讲解文本或语音、景点的经纬度坐标等,以语音合成技术为工具输出导游讲解词的系统。GPS具有性能好、精度高、应用广等特点,是目前最为普遍的的导航定位系统,并已逐步深入人们的日常生活,在本发明中主要用于获取用户当前的经纬度坐标。GIS是对地理信息进行输入、存储、查询、运算、分析和应用的基础平台,作为GIS领域内的一种常见的技术,可视域分析是在栅格数据数据集上,对于一个给定的观察点,基于一定的相对高度,查找给定范围内的观察点所有能通视覆盖的区域范围。可视域分析目前被广泛应用于航海、航空以及军事方面。
[0003] 在已有的利用GPS提供导游讲解服务的技术中均是以用户位置是否接近景点作为讲解触发条件的,例如公开号为CN101587673A、CN1913403A、CN102421061A等专利。这种触发方式在实际使用的过程中往往存在着不足,当用户在处于周边没有景点的位置时,语音讲解服务就会停止,从而降低用户的旅游体验。部分专利可能提供了针对这类问题的解决办法,例如当周边没有景点时,用户可以手动选择语音讲解的景点,或者随机选择景点进行讲解等,但是考虑到用户的体验,这些办法仍然存在不足。

发明内容

[0004] 为解决上述问题,本发明提供了一种基于地理可视域分析的旅游景点自动讲解方法。
[0005] 为实现上述目的,本发明的技术方案为:
[0006] 一种基于地理可视域分析的旅游景点自动讲解方法,包括如下步骤:
[0007] 步骤一:设定用户规划线路,通过GIS模将用户规划路线上坐标点的坐标转换为地图投影中的坐标,并存储各个景点的坐标、名称、讲解文本以及地形信息;
[0008] 步骤二:利用地形信息对各景点进行通视性分析,得到各景点的可视域;根据各景点的可视域对用户规划路径进行裁剪,得到每个景点的可视路径,并对可视路径设置缓冲区,组合每个景点的可视路径以及缓冲区得到所有景点的可视路径域集合;
[0009] 步骤三:利用GPS系统实时获取用户的当前经纬度坐标,运动速度和运动方向,并将信息传递给GIS模块,GIS模块把用户的当前经纬度坐标转换为地图投影中的当前位置坐标;
[0010] 步骤四:判断用户当前位置坐标是否处于某个景点讲解区域范围内:
[0011] 若处于该景点讲解区域范围内,选定该景点为讲解景点,设定讲解速度为正常值,转到步骤八;否则进行下一步;
[0012] 步骤五:利用地形信息和用户当前位置坐标,得到用户当前位置坐标下的可视域范围,并与景点位置做叠置分析,得到当前可视域范围内的所有景点的列表;
[0013] 步骤六:若所有景点列表为空,即可视域范围内没有可讲解景点,转到步骤九;否则,对列表中的景点按照用户当前位置与各景点的距离由小到大的顺序进行排序,选择列表第一个景点为讲解景点,判断是否与上次讲解景点或者随机讲解景点相同,若有任一相同,删除列表第一个景点,转到步骤六;若均不一样,则将其作为讲解景点,计算该景点与用户的相对位置,进行下一步;
[0014] 步骤七:将用户当前位置坐标与讲解景点的可视路径域做叠置分析,得到用户当前具体所在路径;根据用户运动速度和运动方向以及路径长度,计算用户走完该条路径剩余时间,将该剩余时间作为有效讲解时间,并对有效讲解时间和该景点讲解内容以正常速度播放所需要的时间作比较:
[0015] (1)若有效讲解时间远小于讲解语音正常播放时长,则转到步骤六;
[0016] (2)若有效讲解时长与讲解语音正常播放时长接近,则调整语音播放速度,使其播放时长略小于有效播放时长,转到步骤八;
[0017] (3)若有效讲解时长远大于语音正常播放时长,则设定播放速度为正常值,转到步骤八;
[0018] 步骤八:将讲解速度、讲解景点以及讲解景点与用户的相对位置返回给语音讲解模块,语音讲解模块选择讲解内容,并按照规定速度,提示用户景点位置和讲解时长,并对讲解景点进行讲解;
[0019] 步骤九:若随机讲解景点不为空,则继续讲解随机讲解景点,否则从GIS存储模块中选择任一景点作为随机讲解景点,设定讲解速度为正常值,将随机讲解景点与讲解速度返回给语音讲解模块开启讲解;
[0020] 步骤十:结束一次讲解过程,转到步骤三。
[0021] 进一步的,所述用户规划线路为用户运动起点到用户运动终点之间的路径,由若干个坐标点构成。
[0022] 进一步的,所述GIS模块具有地图投影与坐标变换功能和数据组织功能。
[0023] 更进一步的,所述步骤八中,通过语音合成引擎与语音输出设备对讲解景点进行讲解。
[0024] 与现有技术相比,本发明的有益效果在于:
[0025] 本发明所提出的方法可以根据用户的位置,自动讲解当前位置内可视范围内的景点,并可以根据用户运动的方向和速度,自动调整讲解速度,同时制定规则防止重复讲解同一个景点。该方法的关键点在于:如果在某一景点附近,则讲解该景点;如果用户周边没有景点,则利用地理可视域方法选择讲解的景点;如果可视域内没有景点,则选择随机景点进行讲解。该方法简单、操作灵活、资金投入低,可以有效的避免用户处于景点空白区域时无讲解内容的情况。附图说明
[0026] 图1为本发明方法的原理图。
[0027] 图2为本发明方法的工作流程图
[0028] 图3为本发明方法中线缓冲区的生成方计算法流程示意图。
[0029] 图4为本发明实施例1中区域范围及景点相关信息参考图。
[0030] 图5为本发明实施例1中工作流程图。

具体实施方式

[0031] 下面结合附图和实施例对本发明作进一步详细说明。
[0032] 本发明的实施例提供了一种基于地理可视域分析的旅游景点自动讲解方法,如图1所示,首先根据景点数据库和地形数据库得出景点可视路径,利用GPS获取模块获取用户当前所处位置,并判断该位置是否处于景点讲解区域,若是则开始设置讲解速度和讲解内容并开始讲解;若否则判断当前位置的可视域是否有可讲解景点,若有可讲解景点则判断在当前可视路径剩余部分内能否讲解完内容,若无可讲解景点则随机选择讲解景点;若当前可视路径剩余部分内能够讲解完内容则开始设置讲解速度和讲解内容并讲解;若不能讲解完内容则重新获取位置并进行下一个步骤。
[0033] 本发明的实施例针对规划线路的导览方式,依据景点位置及其可视域将其划分为景点讲解区域Rp、景点可视路径区域(包括景点的可视路径及其缓冲区)Rline。
[0034] 将用户当前位置Pgps处的可视域称为S,处于S内的景点P的集合称为PList,若PList的长度大于0,则对PList中的各景点按照与Pgps的距离由小到大排序,距离最近的景点作为当前讲解景点PCurrent,上一次讲解的景点记为PLast,如果PCurrent与PLast相同,则删除PList中的第一个景点,重新选择第一个景点;
[0035] 如果PCurrent与PLast不同,则将Pgps与当前景点的可视路径RlinePCurrent作叠置分析,得到当前所在的路径LCurrent,利用GPS模块获取的运动方向D和运动速度V计算路径中剩余长度Lleft,求得有效讲解时长Tl,并根据Tl与当前景点的讲解时长T的关系决定讲解速度。
[0036] 如图2所示,本发明的具体工作流程:
[0037] (1)采用点缓冲区生成算法获取景点P集合的讲解区域Rp集合,并利用线缓冲区生成算法和可视域计算算法生成景点P集合的可视路线及其缓冲区Rline集合。
[0038] (2)初始化用户状态,获取用户当前的位置信息Pgps、运动方向D以及运动速度V。
[0039] (3)采用点是否在圆内判断算法判断当前位置Pgps是否在景点Pi(i=1,2,…,n,n为景点个数)的讲解区域Rpi内,若在,则将第i个景点Pi作为当前讲解景点,设定讲解速度为正常速度(即速度为1),设定相对方向Dp为“附近”,转到步骤(10);否则进行下一步。
[0040] (4)利用可视域计算算法计算当前位置Pgps的可视域S,采用点是否在多边形内判断算法判断景点Pi(i=1,2,…,n,n为景点个数)是否在在可视域S内,若在,将可视域S与景点Pi做叠置分析,即计算Pi与Pgps的距离Disi,并将其添加进可视景点列表PList。
[0041] (5)若PList长度为0,转到步骤(12),并返回步骤(2);PList长度大于0,对PList按照距离由近及远的顺序使用直接插入排序法进行排序。
[0042] (6)选取列表第一个景点PList[0]作为当前讲解景点PCurrent。
[0043] (7)判断PCurrent与上次讲解景点PLast或者随机讲解景点PRandom是否一样,有任一相同,删除PList[0],转到步骤(5),若均不一样,继续下一步。
[0044] (8)使用点是否在多边形内判断算法计算Pgps是否在RlinePCurrent[i](i=1,2,…,n,n为PCurrent拥有的可视路径数目)内,若在RlinePCurrent[i]内,则将RlinePCurrent[i]作为当前路径LCurrent。
[0045] (9)根据运动方向D,与当前位置Pgps,计算LCurrent中的剩余路径长度Lleft,即计算当前位置Pgps与运动方向路径终点的距离。
[0046] (10)根据当前运动速度V计算有效讲解时长:Tl=Lleft/V,并判断Tl与当前景点讲解语音使用正常速度播放的时长T的关系:
[0047] (a)若Tl<<T,即Tl远小于T,删除PList[0],返回步骤(5)。
[0048] (b)若Tl~T,即Tl与T接近,则设定讲解速度为T/Tl,讲解景点为PCurrent,相对方向Dp为PCurrent相对于Pgps的方向,继续下一步。
[0049] (c)若T1>>T,即Tl远大于T,则设定讲解速度为正常值(即为1),讲解景点为PCurrent,相对方向Dp为PCurrent相对于Pgps的方向,继续下一步。
[0050] 相对方向Dp由Δx和Δy来确定,其中Δx=PCurrent.x‑Pgps.x,即讲解景点PCurrent的x坐标减去当前位置Pgps的x坐标,表示PCurrenu与Pgps的x坐标差;Δy=PCurrent.y‑Pgps·y,即讲解景点PCurrent的y坐标减去当前位置Pgps的y坐标,表示PCurrent与Pgps的y坐标差:
[0051] (a)Δx>0,Δy>0:若|Δx|>|Δy|,Dp=东偏北;若|Δx|=|Δy|,Dp=东北;若|Δx|<|Δy|,Dp=北偏东;
[0052] (b)Δx>0,Δy<0:若|Δx|>|Δy|,Dp=东偏南;若|Δx|=|Δy|,Dp=东南;若|Δx|=|Δy|,Dp=南偏东;
[0053] (c)Δx<0,Δy>0:若|Δx|>|Δy|,Dp=西偏北;若|Δx|=|Δy|,Dp=西北;若|Δx|=|Δy|,Dp=北偏西;
[0054] (d)Δx<0,Δy<0:若|Δx|>|Δy|,Dp=西偏南;若|Δx|=|Δy|,Dp=西南;若|Δx|=|Δy|,Dp=南偏西;
[0055] (e)Δx=0,Δy>0:Dp=正北方;
[0056] (f)Δx=0,Δy<0:Dp=正南方;
[0057] (g)Δx>0,Δy=0:Dp=正东方;
[0058] (h)Δx<0,Δy=0:Dp=正西方;
[0059] (11)开始进行讲解,设置PLast=PCurrent,转到步骤(13)。
[0060] (12)从景点数据库中随机选择一景点PRandom进行讲解,设定讲解速度为1,开始讲解。
[0061] (13)结束一次讲解过程,返回步骤(2)。
[0062] 在上述过程中使用到的点在多边形内的判断方法,即射线法,该方法的工作流程如下:
[0063] (1)以用户位置Pgps为起点,无穷远处作为重点作坐标轴中X轴的平行线line[0064] (2)依次取得多边形RlinePCurrent[i]的每一条边side。
[0065] (3)判断side是否平行于X轴,如果平行则返回步骤(2),否则进行下一步。
[0066] (4)判断Pgps是否在side上,如果为真则整个函数返回true,并转到步骤(7),否则进行下一步。
[0067] (5)判断line与side是否相交,不相交则返回步骤(2),否则count++。
[0068] (6)判断count的奇偶性,如果count为奇返回true,否则返回false。
[0069] (7)结束。
[0070] 本发明具体流程中的点是否在圆内的判断算法,具体采用距离判断法,即Pgps与景点Pi的距离大于规定距离d,则返回true,否则返回false。
[0071] 点缓冲区的生成算法具体为:将景点Pi周边一定距离d的范围内作为缓冲区。
[0072] 线缓冲区的生成算法具体为凸圆弧法,如图3所示,该方法的工作流程为:
[0073] (1)取路径起点P0,对P0采用点缓冲区生成算法,生成半径为d的圆,以线段P0P1的垂线为分割,去除与P0P1相交的部分半圆,选取另一半作为缓冲区.
[0074] (2)以圆弧的两端点为起点,分别平行于P0P1做直线,长度与P0P1相等,形成长等于线段P0P1的长度,宽等于2d的矩形。
[0075] (3)从i=1开始,在PiPi+1两侧作平行于PiPi+1,距离为d,长度与PiPi+1相等的平行线;计算矢量Pi‑1Pi与矢量PiPi+1的叉乘积CP,对CP进行判断:
[0076] (a)若CP>0,则Pi‑1PiPi+1呈逆时针方向,折线左侧为凹角,右侧为凸角;
[0077] (b)若CP<0,则Pi‑1PiPi+1呈顺时针方向,折线左侧为凸角,右侧为凹角;
[0078] (c)若CP=0,则Pi‑1PiPi+1三点共线,左右两侧均为平角;
[0079] (4)在点Pi凸角处以矩形Pi‑1Pi靠近Pi处的凸角侧顶点为起点,Pi为圆心,生成角度为180‑∠Pi‑1PiPi+1大小的圆弧;在点Pi凹角处,求得线段Pi‑1Pi与PiPi+1的平行线交点P′i‑1,去除两平行线中多余的部分。
[0080] (5)重复步骤(3),直到i=n‑1,n为线段的顶点个数。
[0081] (6)在顶点Pn处,以两侧平行线终点为端点,Pn为圆心,d为半径,生成圆弧。
[0082] (7)结束。
[0083] 通过可视域计算算法基于地形数据计算,从地形数据第一个格点开始,逐个计算可视性,若该格点在Pgps处可视,则加入可视域范围;否则继续下一个格点。
[0084] 上述过程中的直接插入排序法,其具体过程如下:
[0085] 在有序表dis中,比较dis[i](i=1,2,…,n,n为可视域内的景点Pn的个数)与dis[j](j=0,1,2,…,i‑1)和dis[j+1]关系,若dis[i]>dis[j]且dis[i]<=dis[j+1],则将dis[i]插入到j+1的位置处。
[0086] 实施例1:
[0087] 本实施例中设备要求:
[0088] (1)移动设备基本要求:Android 5.0操作系统或更高版本;720×1280像素分辨率或更高;单核CPU频率高于1.0GHz;内存不小于2G RAM+32G ROM;支持MicroSD卡扩展存储、GPS导航功能。
[0089] (2)后台处理系统设备要求:Windows 7操作系统或更高版本;单核CPU频率高于1.5GHz;内存不小于4G RAM+512G ROM。
[0090] GPS获取模块由移动设备自带的GPS芯片提供,地理信息系统(GIS)分析模块基于ESRI公司的ArcGIS Engine10.4二次开发实现,语音输出模块使用移动设备自带的音频输出功能实现。移动设备利用GPS获取模块得到位置、运动状态等相关信息后,使用http传输协议将相关信息发送到后台处理程序,后台程序获取到用户状态数据后,按照上述步骤进行分析,并将结果返回给移动设备。
[0091] 本实施例的工作流程如图5所示,在实施例1中的区域范围及景点相关信息参考图4。其中,图4中a展示了实施案例区域的基本情况,区域背景以黑白代表海拔高度信息,颜色越深,海拔越低;白色线路为规划线路;景点P共四个,以不同数字标记表示,分别是P{poi0:
[118.911003,32.117077],poi1:[118.907505,32.110367],poi2:[118.905614,
32.107047],poi3:[118.906078,32.105727]};景点讲解区域Rp[i]为景点P[i]周围的圆形区域内,半径为20m;景点P[i]可视路径Rline[i]为与景点范围相同的路径。景点讲解语音时长分别为[176s,200s,190s];设定0.8T<Tl<1.2T时,Tl~T。系统按如下步骤实施:
[0092] (1)GPS获取模块将得到的Pgps[118.906238,32.109751]、D=“西南”、V=2m/s利用http协议发送到GIS模块。
[0093] (2)判断出Pgps不属于景点P[i]的讲解区域Rp[i](i=1,2,3),根据可视域计算算法计算Pgps位置处的可视域S,利用点是否在多边形内判断算法计算Pgps的可视域范围如图4的b所示,判断出景点P[1]、P[2]在可视域S内,将两者插入列表PList。
[0094] (3)根据点与点之间的距离公式 得到dis(Pgps,P[1])=159m、dis(Pgps,P[2])=359m。使用直接插入排序法对PList按照距离排序,得到PList的顺序为{P[1],P[2]},选取P[1]作为当前讲解景点PCurrent,判断出PCurrent≠PLast,继续下一步。
[0095] (4)取得P[1]的可视路径Rline[1](图4的a中与图例RLine_poi1灰度对应的曲线),利用点是否在多边形内判断算法判断得到Pgps位于2号路径Rline[1][0],即LCurrent为Rline[1][0]上,根据运动方向D,得到剩余路径Lleft=365.65m,计算得到有效讲解时长Tl=Lleft/V=182.825s,当前景点语音时长为200s,判断得到0.8T<Tl<1.2T,因此设定讲解速度为v=200/Tl=200/182.825=1.09m/s,计算出相对方向为Dp=“东偏北”,然后将讲解景点P[1],讲解速度v=1.09m/s,相对方向Dp=“东偏北”返回给移动端,移动端按照设定参数开始进行语音讲解。
[0096] (5)这样完成一次讲解过程,并继续按照这种方法进行下一次过程。
QQ群二维码
意见反馈