一种基于三点定位法的推送信息采信检测方法与流程

文档序号:11276470阅读:227来源:国知局
一种基于三点定位法的推送信息采信检测方法与流程

本发明属于android平台定位技术领域,特别是涉及一种基于三点定位法的推送信息检测机制。



背景技术:

(1)定位技术

从技术的方面来看,目前国内移动设备的定位技术可以分为如下3类:

1)网络定位。网络定位对设备的硬件要求和软件需求比较低,只要能连接至网络就可以。因此通过网络定位获得的地理位置的精度无法得到很好的保证。网络定位根据网络的不同又可以细分,常见的有基站定位和wi-fi定位。手机与基站的距离越远,信号越差,反之越靠近基站,信号就越强。基站定位就是通过计算设备发送的信息到达每个基站的时间来获得设备与基站的距离及角度。由于基站的位置是由各个移动通讯运营商所建造,因此它们的位置已知且明确。所以根据基站的位置和测量的距离与角度,就可以计算出设备的位置信息。wi-fi定位又称为wi-fi热点定位,它依赖于现有的wlan网络,采用rss定位方式,利用的是固定位置的无线ap(accesspoint,俗称“热点”)。每一个无线热点都具有一个全球唯一的mac地址,并且一般来说,在一段时间内,这个无线热点是不会移动的。然而,无线热点的位置并不是通过现场精确测量得出的。当一台设备打开wi-fi功能时,可以搜索到很多的wi-fi热点,无论是否加密,是否已连接,也可以测出每个热点的信号强度,同时还能知道每个热点的ssid(servicesetidentifier,服务集标识)和mac(mediaaccesscontrol或者mediumaccesscontrol,媒体访问控制,或者称为物理地址)地址。当这个设备打开了gps功能,设备会将这些能够标示热点的数据发送到位置服务商的位置服务器。这样就形成了一个大型的热点坐标数据库。如果一个热点能够被不断采集,那么此热点的坐标随着采集次数的增多而不断地迭代,其坐标也会越来越精准。当一个设备打开wi-fi进行定位时,服务器能够获取周围的wi-fi的mac地址和信号强弱。利用这些信息,在数据库中进行检索,就可以反查出所在的位置。

2)gps定位。gps(globalpositionsystem,全球定位系统)是由覆盖地球的24颗卫星组成的系统。gps定位就是通过设备与gps卫星之间的通讯来获取设备的位置信息。任意地点任意时间都能够观测到4颗卫星,因此这种定位方式精确度较高。但是gps定位对移动设备的硬件和软件要求也相对更高,必须有具有内置的gps模块。耗电量大也是它的一个不足之处。

3)混合定位。混合定位就是集成网络定位和gps定位的综合使用。混合定位技术把这两项定位技术的优势进行综合,取长补短。定位的速度得到提高的同时也提高了定位的准确性。定位速度和准确性的提升,会引发更多相应的拓展服务。因此,混合定位技术是定位技术之后的发展趋势(石婷,2014)。

(2)地图服务

依赖于位置的业务发展非常快速,包括了工商、医务、工作和生活的每个角落。这些业务给使用者提供了定位、追踪和敏感地区警报等一连串的服务。例如谷歌地图、百度地图等,都需要通过位置服务才能够使用。

电子地图也称为数字地图。区别于一般的纸质地图,电子地图运用计算机技术,使用数字化方法进行储存和浏览。通过网络使用地图数据库的就能够获取使用者的位置所在信息。电子地图的特征在于易于操作,不被时间和地域所约束,可以使用数据发送到任意的地点(石婷,2014)。相较于传统的纸质地图,电子地图成本低廉、更新速度快,而且可以进行交互。采用虚拟现实技术实现三维地图,让人在视觉上获得更舒适的享受。

电子地图中常见的是二维地图。开发电子地图最重要的是将大量的地理信息数据组合在一起。数据结构和模型是完整的电子地图开发的基本。数据结构包含矢量结构、栅格结构和矢栅集成结构,用于说明地图上的信息在计算机中的逻辑结构和物理存储方法。数据模型包含关系数据模型及面向对象数据模型,还有时空数据模型、多媒体数据模型等其他的一些数据模型。

平时生活中,电子地图具有很大的作用。用户可以通过电子地图查询任意地方的位置、寻找出行的最佳方式和线路。通过电子地图还能够知晓例如简介、联络方式、用户评价等包含在详细位置之外的信息。通过电子地图也能够发送消息,进行宣传和互动。

(3)地图模块androidsdk

地图模块androidsdk是百度地图针对android2.1及以上版本设备推出的应用程序接口。开发人员能够通过使用该接口,获得百度地图提供的服务和数据来实现基于android移动设备的地图类应用程序。目前地图模块androidsdk提供基础地图、poi检索、地理编码、测距、导航、定位、离线地图、周边雷达、lbs云、个性化地图等特色功能,如图1所示,表1显示了本发明主要使用的地图模块androidsdk中的功能。

1)搜索服务:百度地图sdk提供了多种搜索业务,包含位置搜索、周边搜索、公交搜索等等。对mksearch类进行初始化,注册检索结果的监视对象mksearchlistener,就能够非同步地完成检索服务。搜索业务应用结束之后,需要使用mksearch的destory()方法来解除资源的占用。

2)兴趣点(poi)搜索:指的是在特定的一个长方形区域内,依据开发人员设置的特定关键字,1.使用poisearchinbounds(stringkey,geopointptlb,geopointptrt)方法检索兴趣点信息;2.使用poisearchincity(stringcity,stringkey)方法可以搜索一个城市内的兴趣点信息;3.以指定坐标点为圆心,根据给定关键字查询某一半径范围内的全部兴趣点,应用的方式是poisearchnearby(stringkey,geopointpt,intradius)。搜索的结果将通过mysearchlistener的ongetpoiresult显示。

表1地图模块androidsdk的部分功能

3)地址信息查询:根据地理坐标查询地址信息,通过reversegeocode()和geocode()方法实现逆地址解析和地址解析。其中地址解析和逆地址解析的返回结果都在mksearchlistener中的ongetaddrresult()方法里。需要根据mkaddrinfo中的type字段是为mkaddrinfo.mk_geocode还是为mkaddrinfo.mk_reversegeocode来具体区分是逆地址解析的结果还是地址解析的结果。

4)及时搜索建议:根据检索的关键词,在线给出建议词。通过suggestionsearch(stringkey,stringcity)方法进行实现。其中参数key为关键字,参数city为检索城市。



技术实现要素:

针对媒体和公众无法判断社交媒体中发布的信息是否可信,本发明针对利用无法人为更改的客观因素——位置信息,并设计了基于三点定位法的推送信息采信设置检测机制,实现消息的可信度的检测,力求达到“正确的信息在正确的时间在正确的位置上发生”的目的。

本发明提供的技术方案是一种基于三点定位法的推送信息采信设置检测机制,包括以下步骤:

一种基于三点定位法的推送信息采信检测方法,其特征是,包括以下步骤:

步骤1,搭建android系统开发环境,具体是:

配置android开发环境:安装jdk配置windows上jdk的变量环境,其次下载eclipse并配置环境变量,然后下载安装安卓sdk,最后为eclipse安装adt插件

地图模块androidsdk:在工程里创建一个libs的文件夹,把开发包中的文件对应复制到libs目录下然后集成到自己的工程中。

步骤2,基于android系统的移动终端上的activity应用程序,设计检测机制结构并实现主界面模块,整个检测机制的逻辑结构可划分成表现层、逻辑处理层以及数据存储层三层,

表现层:提供消息发送者的软件交互页面,包括软件的设置页面、消息发送页面以及地图展示页面。

逻辑处理层:负责系统整个检测机制所有的数据处理和数据发送。包括参数修改的处理、消息发送者与测距点距离的计算、消息发送者定位的处理、消息可信度的判断。

数据存储层:主要实现对信息报道者报道的信息的接收和存储。

步骤3,基于三点定位法的推送信息检测机制,实现推送信息的检测,

步骤3.1,对打开应用程序的用户进行定位,获取位置信息,即通过requestlocationupdates()对象设置一个位置改变条件。这个条件包括定位请求发起的最小时间间隔,以及定位请求发起时的最小位移变化。这两个条件必须同时满足,才能执行回调函数,触发位置监听。避免多次重复的无用定位。人工进行removeupdates()进行位置信息的更新,onresume()中持续跟踪,相应的在onpause()中关闭跟踪。

步骤3.2,用户发送消息时,判断消息是否为空,同时查询消息发生地点,避免空白信息和无效信息的发送;

步骤3.3,三点定位法计算测量点距离,绘制圆形。

步骤3.4,信息检测,依据几何扫描算法,提出并采用计算报道消息发生地和消息发送者所在区域之间的距离算法。

在上述基于三点定位法的推送信息采信检测方法,步骤3.3的实现方式为,使用百度地图画圆api类circle来创建圆覆盖物,通过map.addoverlay(circle)可以增加一个圆形,以及其他方法个性化设置所画的图形。

在上述基于三点定位法的推送信息采信检测方法,步骤3.4的实现方式为,依据几何扫描算法,针对地址空间的点进行研究,本发明提出了一种计算报道消息发生地和消息报道者所在区域间的距离的算法,输入三个侦察点s1、s2、s3及其与消息发送者之间的距离l1、l2、l3,消息发生地p,即可得到消息发生地和消息报道者所在区域之间的距离l。

本发明具有如下优点:利用主观消息中的位置信息这个客观因素作为评价参考,无需添加新的评价标准,降低检验过程的复杂度;同时也可以与其他评价体系组合使用,具有可扩展性;运用普及的智能手机中常见的定位功能,使得该项技术有良好的便捷性,同时检测的结果在消息发送和接收时就能够获得,具有及时性;提出对可信度评价的分级体系,为之后的研究提供发展方向。

附图说明

图1本发明实施例的地图模块androidsdk提供的开发资源。

图2本发明实施例的基于三点定位法的消息检测机制实现流程图。

图3本发明实施例的android平台的基本架构图。

图4本发明实施例的android工程目录图。

图5本发明实施例的android工程目录添加权限信息图。

图6本发明实施例的布局xml文件中添加地图控件图。

图7本发明实施例的生命周期图。

图8本发明实施例的引入相关类图。

图9本发明实施例通过三点定位法检测即时信息可信度流程图。

图10本发明实施例的检测机制逻辑结构图。

图11本发明实施例的实验主界面图。

图12本发明实施例的百度地图拾取坐标系统图。

图13本发明实施例的应用设置页面图。

图14本发明实施例的设置测量点坐标成功图。

图15本发明实施例的还原默认测量点坐标成功图。

图16本发明实施例的避免空白信息和无效信息图。

图17本发明实施例的消息检测页面图。

图18本发明实施例的“灾难现场”定位页面图。

图19本发明实施例的圆形切线划分图。

图20本发明实施例的二维几何扫描图。

图21本发明实施例的三点定位算法扫描图。

图22本发明实施例的武汉大学测试结果图。

具体实施方式

本发明设计的基于三点定位法的消息检测机制实现流程见图2,可由本领域技术人员采用计算机软件技术实现流程自动运行。实施例具体实现过程如下:

步骤1,搭建android系统开发环境,配置android开发环境和地图模块androidsdk;

android开发环境主要分为以下4个步骤:

(1)安装jdk,配置windows上jdk的变量环境;

(2)下载安装eclipse,配置环境变量;

(3)下载安装androidsdk;

(4)为eclipse安装adt插件。

jdk(javasedevelopmentkit)是java语言的软件开发工具包。jdk是java开发过程的重心,包括了java开发的执行环境(javaruntimeenvironment)、一系列java开发的工具和给开发人员开发应用程序时调用的java类库。jdk包含的基本工具如表2所示,这些工具可以在jdk的安装目录下的bin目录里面查看。

表2javasedevelopmentkit包含的基本工具

eclipse是跨平台的集成开发环境,主要是为java应用程序及android开发的ide,有着大量定制的接口和无数的插件。eclipse无需进行安装,将它解压到想要安装的目录文件中就可以。假如没有现成的ide(integrateddevelopmentenvironment,集成开发环境,主要指可以辅助开发程序的应用软件),可以直接下载sdk完整包。完整包里面包含了eclipse,不需要再另外下载安装。

androidsdk是android应用软件开发包工具,提供了开发android应用程序所需的api库和组建、测试和调试android应用程序需要的开发工具。

adt(androiddevelopertools,安卓开发者工具),是在eclipse集成开发环境上进行android应用开发的插件。这个插件实际上也就是在eclipse上用来开发android应用程序的软件工具。它能够让eclipse和androidsdk关联起来,方便开发人员进行android应用程序的开发和调试。本发明主要开发环境是eclipse3.5.2,android平台的基本架构如附图3所示。

配置地图模块androidsdk,附图4展示了android主要的工程目录。其中src文件夹用来放置java程序源代码,assets文件夹放置原样打包进应用程序中的文件。文件夹gen用于存放android开发工具所生成的源文件,其下有一个r.java文件是由开发工具自动生成和维护的,不需要我们进行创建和修改。当需要向res目录中添加引用文件时,r.java能够自动完成引用的添加。同时r.java还能判断程序编译时是否用到了所有res目录下的文件,未被使用的文件将不会被打包到应用程序中,优化了执行空间。res目录下的前几个文件依次根据文件名存放由不同像素的图片文件,layout和values分别存放用户界面文件和界面上使用的文字。androidmanifest.xml是功能清单文件,在这里可以看到整个工程里有多少activity、services、providers、receivers,以及需要的安全授权uses-permission等。在完成了android开发环境的配置的工程里创建一个libs的文件夹后,把开发包中的文件对应复制到libs目录下然后集成到自己的工程中。

要显示百度地图,首先需在androidmanifest中加上开发密钥、所需权限等信息。一般所需的权限主要为运营商信息、网络定位、gps定位、wi-fi网络信息、wi-fi获取权限并在布局xml文件中添加地图控件。如附图5,附图6所示。

android中起到显示作用的是四大主件之一—activity。activity是android中最基本的构成组件之一,它提供了与用户的交互界面。activity的一个生命周期是指它从创建到关闭的状态。整个过程中一共可能经历运行、状态、状态和销毁四种状态,如附图7所示。

当activity第一次启动时将使用oncreate()方法进行activity的初始化,这是一个activity生命周期的起始。打开应用程序时,需要按顺序运行oncreateo、onstarto、onresume()这三个方法,这个时候activity已经正常显示了。如果在此时点击回退键,先后调用onpauseo、onstopo、ondestory()三个方法,这个应用程序就将结束;如果在此时按home键,去打开其他应用,这个应用程序并没有结束或者销毁,而是先后执行了onpause()、onstop()这两个方法,转变成了停止状态。如果再次打开应用程序,将会按顺序运行onrestarto、onstarto、onresume()三个方法变为运行状态。

百度地图须在应用程序建立时对sdk引用的context全局变量进行初始化,在sdk各功能组件调用之前使用sdkinitializer.initialize(getapplicationcontext())方法。创建地图activity,管理地图生命周期,需要在打开时通过mmapview=(mapview)findviewbyid(r.id.bmapview)获得对地图控件的引入。针对暂停、停止和销毁三个状态,百度地图分别提供了mmapview.onpause()、mmapview.onresume()、mmapview.ondestroy()三种方法实现地图生命周期管理。最后使用import引入相关的类,如附图8所示。至此,整个的开发环境就已经全部配置完成。

步骤2,基于android系统的移动终端上的activity应用程序,设计检测机制结构并实现主界面模块;

考虑到整个检测机制的功能需求,我们对整个检测机制进行模块的细分。我们将逻辑结构组织成单独的、职能相关的离散层,在主要方面加以内聚,让逻辑结构变得更加明确。整个检测机制的逻辑结构可划分成表现层、逻辑处理层以及数据存储层三层,如图9所示。

表现层:提供消息发送者的软件交互页面,包括软件的设置页面、消息发送页面以及地图展示页面。

逻辑处理层:负责系统整个检测机制所有的数据处理和数据发送。包括参数修改的处理、消息发送者与测距点距离的计算、消息发送者定位的处理、消息可信度的判断。

数据存储层:主要实现对信息报道者报道的信息的接收和存储。

其中数据存储层主要是在服务器端。其中消息id和报道者id均为整数类型,由系统在获取消息和用户注册的时候按顺序分配。消息发送时间为datetime类型,获取信息发送时的服务器日期和时间并进行记录。消息发生地和消息内容为字符型。考虑到一般报道的消息不会超出字符型数据的最长8000个字符的限制,因此没有采用文本型数据存储,以节省存储空间。可信度判断只有两种情况——消息可疑和消息较可靠,因此布尔型数据就可以表示。默认的消息的可靠度为false不可靠。

表3数据存储表

本检测机制是在android系统的移动终端上进行设计和实现的。android应用程序是所有程序的入口文件,但是实际上应用程序只是一个宽泛的概念,并没有一个实际与之对应的界面。而在一个应用程序中,activity才表示相对应的一个界面。一个activity的扩展相当于一个界面。大多数的应用程序一般都会拥有多个界面,相应的,程序中将包括多个activity类。因此,从实际显示的角度来看,mainactivity.java文件才是程序的主界面。

本发明主界面主要完成两个功能,其中一个功能是完成三个测量点设置和对可接受范围划定的应用设置,另一个功能即是完成即时信息的发送。附图11展示了程序的主界面。

有关三个测量点的设置我们是通过百度地图拾取坐标系统进行选取的。百度地图拾取坐标系统是百度推出的一个可以让用户方便地获得百度地图上某个位置的精准定位的地理位置信息(以经纬度坐标呈现),如图12所示。

在搜索栏输入想要搜索的地点后点击搜索,地图上就会出现相应的标记,点击其中的某一个标记点,就能看到相应的坐标;同时页面右侧也列出了查询到的所有地点及其坐标。在对具体地点名称不了解的情况下,鼠标放在地图上滑动,鼠标滑到每一个地方,都会同步显示对应的地图坐标,点击选定的坐标,右上角会记录下选定的坐标以备以后使用。

同时百度地图拾取坐标系统还提供了坐标反查的功能。当选择这个功能后,在搜索栏中输入已知点的坐标,该点就能显示在地图上。如果坐标解析成功,还能返回一个地址。

地图上两点间的距离计算公式如式(1)所示,其中r=6370996.81,lng(longitude)为经度,lat(latitude)为纬度。

因为本实验主要是在湖北省武汉市进行,同时由于在地图上“差之毫厘,谬以千里”,选取学校周边的测量点在数据上太接近不便于数据分辨,因此本发明随机在周边地图上选取了三个测量点(114.349802,30.535147)、(114.363457,30.545038)和(114.404498,30.511795)。

在可接受距离范围的选取上,我们利用一个常用的距离判读口诀——“五清六不清,七空八不空,千米看劳动”,选择了500米。这个口诀的意思就是,人在距离500米时可以通过他们穿着的衣物和肢体动作辨明性别,当距离增加到600米时就分不清男女了;在距离为700米时,可以看到对方行走时两腿间走路产生的空间,但在800米时就不能看到了;在距离为1000米的时候只能看到对方坐、站和劳动弯腰等幅度较大的动作改变,在2000米的时候人的身体就只是一个小黑点,什么都没有办法分清了。为了细化对即时信息的检测,我们选择可以看到正常行为、分清身形性别的500米作为可接受的距离范围。

以上的所有默认数据都是可以在如图12所示的应用设置里面进行修改。在三个测量点的选取上,只要保证两点之间的距离在百米以上(避免存在无效测量点),即可,如果消息发送者在选取的三个测量点所形成的三角形以内,测量的效果会更加。如果对视觉可见的即时信息可接受距离范围不同,也可以自行进行填写,不过本发明还是建议选择500米相对精确。对默认数据进行设置修改成功如图14所示。同时,如果对设置的数据不满意,希望还原为初始设置,也可以选择还原默认坐标,还原成功如图15所示。

步骤3,基于三点定位法的推送信息检测机制,实现推送信息的检测,

步骤3.1,对打开应用程序的用户进行定位,获取位置信息。在用户打开应用程序的时候,我们会对用户进行定位,用于计算测量点的距离以便绘制圆形。由于人的位置会不断改变,我们需要通过requestlocationupdates()对象设置一个位置改变条件。这个条件包括定位请求发起的最小时间间隔,以及定位请求发起时的最小位移变化。这两个条件必须同时满足,才能执行回调函数,触发位置监听。这样,我们就可以避免多次重复的无用定位。需要注意的是,由于我们要求不断获得位置更新,因此我们必须在人工进行removeupdates()。我们只在activity运行时进行跟踪,否则即使应用中所有的activity都关闭,app仍继续在不断更新位置信息。这样会导致应用资源无法被回收。所以,我们在onresume()中持续跟踪,相应的在onpause()中关闭跟踪。

步骤3.2,当用户发送消息时,判断消息是否为空,同时查询消息发生地点,避免空白信息和无效信息的发送,如图16所示。由于日常使用百度地图查询地址时,往往会出现多条查询结果。本发明在查询消息发生地时,为了避免查询结果的多样性,默认选取查询结果中的第一条结果作为消息发生地点。因此,如果要保证消息发生地址的准确性,发送消息的时候,地址写得越详细查询结果才会越接近目标地址。

步骤3.3,计算测量点距离,绘制圆形。百度地图目前已经提供了画圆api类circle(center:point,radius:number[,opts:circleoptions])来创建圆覆盖物,只要传入圆的中心经纬度、圆的半径就可以实现画圆。通过map.addoverlay(circle)可以新增加一个圆形,同时还提供了circle.setfillcolor()、circle.setstrokecolor()等方法来个性化设置所画的图形。

步骤3.4,信息检测,依据几何扫描算法,提出并采用计算报道消息发生地和消息发送者所在区域之间的距离算法。

本发明的难点主要存在于如何判断消息发送者所在区域和报道消息发生地是否在可接受范围内。计算出的消息发送者所在区域是肯定存在的。该区域是三个圆交叉形成的区域,可能有如图17所示的四种情况。将图17中所示的区域进行补全完整可以得到图18,涂黑部分展示的是补全前设计的相交区域。可以看出,图17a、17b、17c分别与图18a、18b、18c相互对应,图17d则对应图18d、18e两种情况。在图18a、18b、18d这三种情况其实都归结到了图18a这一种情况,而图18c这种情况其实三个圆圈并没有共同相交的区域,与我们之前所得出的“计算出的消息发送者所在区域是肯定存在的”观点明显不同,因此这种情况并不归入本发明所讨论的范围里面。所以,本发明所需要讨论的只有图18a和图18e这两种情况。由于图18中a)和e)这两种情况所展示的共同区域都不是标准的多边形,没有直接处理的方法,因此我们需要对这些区域进行近似处理。从图19我们可以看出,三个圆形所相交的区域在图中l1、l2、l3、l4四条直线所划定的长方形之内,其中l1是三个圆形分别的最左边的点中最靠近右边的点的基于该点的该圆的切线,l2是三个圆形分别的最右边的点中最靠近左边的点的基于该点的该圆切线,l3是三个圆形分别的最下面的点中最靠近上面的点的基于该点的该圆的切线,l4是三个圆形分别的最上面的点中最靠近下面的点的基于该点的该圆的切线。这四条切线正好包含了三个圆形所相交的区域。同样,这种情况对于图18e也同样适用,因此我们利用这个矩形来缩小我们需要查找的范围。

考虑到本算法主要针对地图二维空间的点进行研究,本发明参考了相似的算法——几何扫描算法。在几何算法中,考虑的主要对象通常是二维、三维或者是更高维空间中的点、线段、多边形和其他几何体。有时候一个问题的解法需要通过“扫描”给出的输入对象来收集信息以便找到可行的解决方案。这种技术在二维平面被称为平面扫描,在三维空间上则被称为空间扫描。在它的简单形式中,一条垂直的直线在平面上从左向右进行扫描,在每个对象(比如说一个点)处逗留,从最左侧的对象开始,一直向右扫描到最后测的对象。

例如,在平面上给出的一个有n个点的集合s中找出集合中的极大点。可以先把s中的所有的点按照它们的x坐标进行非升序排列(如果两个点具有相同的x坐标,那么将有较大y坐标值的点排列在前面),那么最右侧的点无疑是个极大点,因为它具有最大的x坐标值。根据几何扫描算法,从最右侧向左扫描这些点,同时确定这些点的y坐标是否是极大值。整个算法过程如图20所示,极大集{a,b,c,d,e}形成了一个阶梯的形状。

本发明依据以上几何扫描算法,提出了如下算法来计算报道消息发生地和消息发送者所在区域之间的距离。

算法的过程如图21所示。扫描线从pl所在x坐标值开始向右测扫描所有y坐标值在pd和pu的y坐标值之间的点至pr所在x坐标值的切线处,判断该点是否在三个圆相交的范围内。对于每个在x坐标下三个圆相交范围内的点,分别计算y坐标值最大和最小两个点与消息发生地之间的距离,记录其中的最小距离并继续进行之后的扫描,直至整个扫描过程结束,最后得到的最小距离,就是报道消息发生地与消息发送者所在区域之间的距离。消息发生地的位置有三种情况:在l4上方;在l3下方;在l3和l4之间。根据不同的情况,针对同一个x值,我们需要进行扫描的y值如式(2)所示。

当pd·y<p·y<pu.y时,y值方向需要先从pd.y开始向上扫描至第一个在相交范围内的点y1,然后从pu.y开始向下扫描至第一个在相交范围内的点y2。

(1)如果p.y≥y2,则此时最近距离为y2与p之间的距离;

(2)如果p.y<y1,则此时最近距离为y1与p之间的距离;

(3)如果y1≤p.y<y2,则此时最近距离为点(x,p.y)与p之间的距离。

地图上所示的三个圆形为根据三个测量点的坐标和与消息发送者之间的距离所画,点击“侦察点1”、“侦察点2”、“侦察点3”可以分别定位到三个测量点在地图上的相应位置。图22展示了在武汉大学信息学部发送有关武汉大学文理学部消息的测试结果。

本发明中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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