1、6.1 POI数据的组织与应用计算机技术计算机技术通信技术通信技术遥感技术遥感技术RSRS地理信息系统地理信息系统GISGIS全球定位系统全球定位系统GPSGPS地理信息服务POI数据的概念POI是“Point of Interest”的缩写,可以翻译成“兴趣点”,有时候也叫作“Point of Information”,即“信息点”。电子地图上一般用气泡图标来表示POI,比如电子地图上的的景点、公司、商场、饭馆等,都是POI。对一个地理信息系统来说,POI的数量在一定程度上代表着整个系统的价值。POI作为可以在电子地图中查询到的信息点要素,它描述了空间实体或者区域的空间位置、名称地址等信息,
2、基本信息包括名称、类别、空间坐标信息(经纬度)、地址、电话、邮政编码等,涵盖了政府机构、学校、商业、金融、餐饮、景点、加油站等最为基础的信息。衡量POI数据价值的指标有:空间位置的准确性和覆盖率、空间位置的数量。POI数据在社会各个领域都得到了广泛的应用。例如,目前交通系统中监控设备覆盖面积较广,能产生非常详细的交通和事故数据,如公交动态数据,包括公交行进线路名称、公交当前运行方向、到站时间、站点名称等。这些信息随时会发生变化、实时更新,对这些数据的存储分析是城市公交信息研究的重点。POI数据的组织与表示POI数据一般以表记录或点状数据集的形式存在,如以表结构形式储存于Oracle的大型数据库
3、中,其数据结构主要包含下列数据:点要素属于的矩形分幅的网格号、唯一标识号、点的POI分类编码、POI名称(汉字和拼音)、POI电话、POI地址和POI的经纬度坐标等。基于网络的电子地图信息服务应用广泛,用户一般通过浏览电子地图上的POI符号及注记信息,或者直接查询要寻找的POI名称来实现空间位置定位。随着位置服务信息的多样化和精细化,需要大量的POI数据作为支撑,基于POI数据的特点,对POI数据的组织、管理和操作也有别于传统数据结构所体现的数据之间的逻辑关系,并要考虑为后续的查询提供算法设计的支持。Hadoop作为Google云计算技术的开源实现,提供了一种超大规模、高可靠性、高可扩展性的存
4、储及计算海量数据的框架,可以在海量的POI数据组织管理方面获得更方便的体验和更低廉的成本。HadoopHDFS(文件系统的高容错性和高吞吐量):存储空间影像数据Hbase(存储可靠性强、检索性能高、存储列可按需增加):存储地理信息专题数据MapReduce(计算能力):对地理信息中的各种数据进行搭建,对地理信息专题数据进行信息提取,提取有效信息。POI数据的组织主要涉及空间索引问题,空间索引是指依据空间对象的位置和形状或者空间对象之间的某种空间关系,按一定的顺序排列的一种数据结构。它包含空间对象的概要信息,如对象的标识、外接矩形及指向空间对象实体的指针。空间索引可以使空间操作快速访问对象,缩短
5、空间查询时间,从而提高效率。空间索引大致分为基于树结构、基于网格划分等。考虑到POI数据本身为点信息,一个数据仅可能出现在一个索引位置中,因此经常使用网格空间索引来对POI建立空间索引。AECBDMN1212.网格示意图对POI(图中以三角形代表)建立网格索引,要判断哪些POI落在图中矩形选择框中,就不需要把所有的POI与此矩形框进行几何包含运算,只需对A、B、C、D、E这5个点做运算即可,提高了效率。以查询自己所处位置50米范围内的POI数据为例,试着讨论引入空间索引技术的必要性。每个POI都有其经纬度信息,假设给定50万个POI数据,如果要找出50米范围内的POI数据,那么需要计算当前位置
6、与所有POI的距离,再筛选出距离小于50米的POI。然而,由于地球是个不规整的球体,计算经纬度之间的距离不能直接按照平面上求两点之间距离的方法,此时计算球体上两点之间的距离的复杂度就高出不少,更何况要执行50万次复杂的距离计算。如果采用矩形框对POI进行过滤,只需判断POI经纬度是否落在矩形框内(经纬度范围)即可,再用球面距离公式计算当前位置与矩形框内n个POI的距离,即可筛选距离小于50米的POI,相比求所有POI的距离,此方法的效率要高,但毕竟要对所有的50万个数据都要进行扫描访问,因此在查询效率上还可以提高。例如,可以运用引入B树快速找到某纬度范围POI的空间索引技术。POI数据处理中的
7、数据结构与算法分析对于POI数据的操作,可以先确保连接到POI数据库,通过SQL语句读取每一个POI记录,将POI的名称、地址、电话、分类、经纬度坐标写入索引数据。例如,将兴趣点信息“名称:浙江大学(玉泉校区);地址:浙江省杭州市西湖区浙大路38号;分类:教育;经纬度坐标:120.129649,30.270072”写入索引数据库。同样也可以去索引文件中根据关键字进行查询,存储符合条件的记录,获得结果集。在获得结果集的前提下,如果要根据某个点的坐标在海量的数据点中找到该坐标所在的区域或者最接近的点,可以使用二分查找或B树查找。但是,问题在于不仅要找到这个点,还要找到这个点附近的点。对于用经纬度来
8、确定的坐标值,不方便直接使用二分法进行查找,如果直接用数据库索引进行查找,由于数据库通常是B树索引和Hash索引,因此查找效率并没有提高。为了解决此问题,现在的主流数据库都增加了对地理坐标优化的空间索引算法。用R树、K-D树或者是四叉树之类的数据结构来存储这些点可以做到高效地查找临近点。但是这些数据结构存在数据冗余、不稳定的查改效率等缺点。况且抛开时间效率、空间效率以及算法复杂度等因素,用了这些数据结构也就意味着放弃了使用现成强大的数据库而需要自己编写数据查改系统。因此,如果能够把一个二维的信息转化为一维的数据加以存储,就可以直接存储到数据库中以便快速的查找,GeoHash就是一种能够满足上述
9、问题解决、广泛应用于空间检索,尤其是POI数据查询的算法。GeoHash算法因为其稳定性和拓展性,在POI数据的处理中得到了广泛的应用。GeoHash算法由Gustavo Niemeyer(大概于2013年)提出,目的是为地球上的每一个点(根据经纬度)确定一条短的URL作为唯一的标识。GeoHash是空间索引的一种方式,其基本原理是将地球理解为一个二维平面,通过把二维的空间经纬度数据编码为一个字符串,可以把平面递归分解成更小的子块,每个子块在一定经纬度范围内拥有相同的编码。编码规则为:先将纬度范围(-90,90)平分成两个区间(-90,0)和(0,90),如果目标维度位于前一个区间,则编码为0
10、,否则编码为1,然后根据目标纬度所落的区间再平均分成两个区间进行编码,以此类推,直到精度满足要求,经度也用同样的算法,对(-180,180)依次细分,然后合并经度和纬度的编码,奇数位放纬度,偶数位放经度,组成一串新的二进制编码,按照Base32进行编码。练习1.下列不属于POI数据价值指标的是()A.空间位置的数量B.空间位置的准确性C.空间位置的覆盖率D.空间位置的地址D2.下列关于Hadoop的说法,不正确的是()A.Hadoop是一种超大规模,高可靠性,高可扩展性的数据库B.Hadoop是Google云计算技术的开源实现C.使用Hadoop可以在POI数据的处理中获得更方便的体验和更低廉的成本D.Hadoop可以对海量地理信息进行处理和计算A谢 谢
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。