专利名称:基于gis的用于公路管理的定位系统及方法
技术领域:
本发明涉及智能交通领域,特别涉及一种基于GIS的用于公路管理的定位系统及方法。
背景技术:
公路是国家的基础交通设施之一,它直接影响到国民经济的发展。近年来,我国公路建设迅猛发展,对传统公路管理的方法和手段提出了新的挑战。而将地理信息系统(GIS) 技术应用于我国的公路建设和管理中,是推动公路建设和管理现代化、智能化、信息化的重要手段之一。
GIS在公路管理系统的应用是将公路管理的有关信息从纸质文档、表格向图形化方向发展,以图形、图像的方式,形象直观、快捷准确的呈现在用户面前,此外,还可以对公路有关信息进行空间查询、统计、分析。现今各种基于GIS的定位系统中通常使用经纬度这种二维信息进行空间定位,基于GIS的定位系统需要在实际应用中耗费大量人力、物力、财力等资源进行实地勘察,通过GPS等方法取得公路信息的经纬度坐标,此处的公路信息为公路上设备设施、设施等公路有关信息,比如收费站、服务器、可变情报板等。为了节省资源,现有的基于GIS的定位系统中只对特定级别以上的公路信息的经纬度坐标进行采集和保存,并未对所有的公路信息进行经纬度坐标的采集和保存,在实际应用中还有一定的局限性。
我国的公路部门在公路的实际管理与运营过程中,普遍采用里程值进行公路日常管理,而现有的基于GIS的定位系统中只能提供经纬度坐标的查询,无法进行里程值的查询,并且现有的基于GIS的定位系统中在进行经纬度坐标的查询时,基于其数据库中保存的特定级别以上的公路信息的经纬度坐标,查询的准确性和工作效率还有待进一步提高。发明内容
本发明提供了一种基于GIS的用于公路管理的定位系统及定位方法,用以使得的项目或应用得以实现。
根据本发明的一个方面,提供了一种基于GIS的用于公路管理的定位系统,该系统能够支持里程值和经纬度的查询定位,提高查询定位的准确性和工作效率。该系统包含数据库、以及第一定位模块和/或第二定位模块;
所述第一定位模块根据接收到的道路的名称及里程值,从所述数据库中查询与所述道路对应的空间位置信息,根据输入的里程值及所述道路的空间位置信息,计算获得输入的里程值对应的经度及纬度;
所述第二定位模块根据接收到的定位点的屏幕坐标,计算获得与定位点最近的投影点,利用与定位点最近的投影点、及从所述数据库中查询获得的与定位点最近的投影点所属的道路的空间位置信息,计算获得定位点对应于道路上的里程值;
所述数据库保存任一道路的名称及空间位置信息;所述空间位置信息至少包含每一个构成点的里程值、经度及纬度。
进一步地,该系统还包含;
输入输出模块,将用户选择的道路的名称及里程值输入至第一定位模块,输出第一定位模块生成的经度和纬度,
和/或将用户选择的定位点的经度和纬度输入至第二定位模块,输出第二定位模块生成的与输入的定位点对应的道路名称和里程值。
进一步地,该系统还包含
数据更新模块,根据输入的道路名称从地理信息系统GIS的数据库中查找与道路名称对应的道路的构成点的经度及纬度,根据输入的道路的起始里程值和终止里程值,计算获得道路的构成点的里程值,将构成点的里程值、经度和纬度作为空间位置信息保存于数据库中。
进一步地,该系统还包含
要素控制模块,将任一道路包含的要素信息以道路的名称为标识写入所述数据库中,根据接收到的要素信息查询数据库获得道路的名称,将接收到与要素信息对应的里程值及查询获得的道路的名称输出至所述第一定位模块;
所述要素信息为公路设施信息、设备信息和/或事件信息。
其中,所述第一定位模块包含
第一查询单元,根据触发,利用接收到的道路的名称,从所述数据库中查询与所述道路对应的空间位置信息,利用接收到的里程值,从所述道路的空间位置信息中查询距离接收到的里程值最近的构成点,输出接收到的里程值、最近的构成点的里程值、经度及纬度至第一转换单元;
第一转换单元,计算接收到的里程值及最近的构成点的里程值的差值,获得第一差值,利用空间函数、最近的构成点的经度、最近的构成点的纬度及第一差值,生成与接收到的里程值对应的一点的经度及纬度并输出;
所述道路为公路的路线或公路的路线所包含的路段。
其中,所述第二定位模块包含
第二转换单元,利用空间函数、接收到的定位点的经度和纬度,计算获得定位点与多条路线的投影距离,比较投影距离,获得与定位点最近的路线及所述路线包含的与定位点最近的投影点;
所述第二转换单元从所述数据库中查询与定位点最近的路线的空间位置信息,获得与定位点最近的路线的起始里程值,利用空间函数计算起始里程值对应的起始点与投影点的距离,将起始里程值与所述起始点与投影点的距离的和作为投影点的里程值,输出与定位点最近的路线的名称、投影点的里程值及最短的投影距离;
所述道路为公路的路线。
其中,所述第二定位模块包含
第三转换单元,利用空间函数、接收到的定位点的经度和纬度,计算获得定位点与多条路线包含的各路段的投影距离,比较投影距离,获得与定位点最近的路段及所述路段包含的与定位点最近的投影点;
所述第三转换单元从所述数据库中查询与定位点最近的路段的空间位置信息,获5得与定位点最近的路段的起始里程值,利用空间函数计算起始里程值对应的起始点与投影点的距离,将起始里程值与所述起始点与投影点的距离的和作为投影点的里程值,输出与定位点最近的路段所属的路线的名称、投影点的里程值及最短的投影距离;
所述道路为公路的路线所包含的路段。
其中,所述第二定位模块包含
第四转换单元,根据接收到的定位点的屏幕坐标及显示的区域地图信息,利用GIS 的数据库,将定位点的屏幕坐标转换为定位点的经度和纬度,输出定位点的经度和纬度。
根据本发明的另一个方面,提供了一种基于GIS的用于公路管理的定位方法,该方法能够支持里程值和经纬度的查询定位,提高查询定位的准确性和工作效率。该方法包括
根据接收到的道路的名称,查询获得与所述道路对应的空间位置信息,利用所述道路对应的空间位置信息及输入的里程值,计算获得输入的里程值对应的经度及纬度;
和/或根据接收到的定位点的经纬度,计算获得与定位点最近的投影点,利用与定位点最近的投影点、及查询获得的与定位点最近的投影点所属的道路的空间位置信息, 计算获得定位点对应于道路上的里程值;
所述空间位置信息至少包含每一个构成点的里程值、经度及纬度。
进一步地法,该方法还包括
利用地理信息系统GIS的数据库,生成道路的空间位置信息并保存。
其中,所述利用地理信息系统GIS的数据库,生成道路的空间位置信息包括
根据输入的道路名称从地理信息系统GIS的数据库中查找与道路名称对应的道路的构成点的经度及纬度;
根据输入的道路的起始里程值和终止里程值,计算获得道路的构成点的里程值;
将构成点的里程值、经度和纬度作为空间位置信息进行保存。
进一步地,该方法还包括
将任一道路包含的要素信息以道路的名称为标识进行保存,以便根据要素信息查询获得道路的名称及该道路对应的空间位置信息。
其中,所述计算获得输入的里程值对应的经度及纬度包括
根据输入的里程值及所述道路的空间位置信息,从所述道路的空间位置信息中查询距与接收到的里程值对应的位置点距离最近的构成点;
计算接收到的里程值及最近的构成点的里程值的差值,获得第一差值;
利用空间函数、最近的构成点的经度、最近的构成点的纬度及第一差值,生成与接收到的里程值对应的一点的经度及纬度并输出;
所述道路为公路的路线或公路的路线所包含的路段。
其中,所述计算获得与定位点最近的投影点包括
利用空间函数、定位点的经度和纬度,计算获得定位点与多条路线的投影距离;
比较投影距离,获得与定位点最近的路线及所述路线包含的与定位点最近的投影占.
所述道路为公路的路线。
其中,所述计算获得定位点对应于道路上的里程值包括
查询与定位点最近的路线的空间位置信息,获得与定位点最近的路线的起始里程值;
利用空间函数计算起始里程值对应的起始点与投影点的距离,将起始里程值与所述起始点与投影点的距离的和作为投影点的里程值;
输出与定位点最近的路线的名称、投影点的里程值及最短的投影距离。
其中,所述计算获得与定位点最近的投影点包括
利用空间函数、定位点的经度和纬度,计算获得定位点与多条路线包含的各路段的投影距离;
比较投影距离,获得与定位点最近的路段及所述路段包含的与定位点最近的投影占.
所述道路为公路的路线所包含的路段。
其中,所述计算获得定位点对应于道路上的里程值包括
查询与定位点最近的路段的空间位置信息,获得与定位点最近的路段的起始里程值;
利用空间函数计算起始里程值对应的起始点与投影点的距离,将起始里程值与所述起始点与投影点的距离的和作为投影点的里程值;
输出与定位点最近的路段所属的路线的名称、投影点的里程值及最短的投影距离。
其中,根据接收到的定位点的经纬度之前还包括
利用空间函数,将接收到的定位点的屏幕坐标,转换成定位点的经度和纬度。
由上述的技术方案可见,本发明的基于GIS的定位系统及定位方法,能够将输入的任意里程值转换为与其对应的经度和纬度,和/或将输入的任意经度和纬度转换为相应的里程值,实现了里程值与经纬度之间的双向转换,并且实现了对某一位置点的定位,而非简单地查询输出。采用本发明的系统及方法,能够支持里程值和经纬度的查询定位,提高查询定位的准确性和工作效率。
图I为本发明基于GIS的用于公路管理的定位系统实施例一的结构示意图2为本发明基于GIS的用于公路管理的定位系统实施例二的结构示意图3为本发明基于GIS的用于公路管理的定位系统实施例三的结构示意图4为本发明基于GIS的用于公路管理的定位方法实施例一的流程图5为本发明基于GIS的用于公路管理的定位方法实施例二的流程图。
具体实施方式
由于现有的基于GIS的用于公路管理的定位系统中,只能根据输入的信息查询待定位点的经纬度,对于我国用里程值进行标注和管理的公路系统来说,不便于操作和查询, 而本发明的基于GIS的用于公路管理的定位系统中,数据库中存储的是一点的里程值、经度及纬度,且本发明的基于GIS的用于公路管理的定位系统能够根据输入的里程值及道路名称,输出与上述信息对应的经度及纬度信息,能够根据输入的定位点的经度及纬度,输出定位点临近的道路信息及里程值,实现了里程值与经纬度之间的双向转换及查询定位,较现有的基于GIS的定位系统,提高了查询定位的准确性及工作效率。
图I为本发明基于GIS的用于公路管理的定位系统实施例一的结构示意图。现结合图1,对本发明实施例一的基于GIS的定位系统的结构进行说明,具体如下
实施例一的基于GIS的定位系统包含第一定位模块10和数据库11。
第一定位模块10根据接收到的道路的名称及里程值,从数据库11中查询与道路对应的空间位置信息,根据输入的里程值及道路的空间位置信息,计算获得输入的里程值对应的经度及纬度。第一定位模块10可根据设置,输出道路的名称、与输入的里程值对应的经度及纬度。
数据库11保存任一道路的名称及空间位置信息。其中,任一道路包含多个构成点;空间位置信息至少包含每一个构成点的里程值、经度及纬度。在本实施例中,数据库 11中保存的任一道路的信息既可以是公路的路线的信息,也可以是公路的路线包含的多个路段的息。
另外,为了便于查询定位,数据库11还可保存任一道路的代码、及任一道路的长度,将对于同一道路的名称、代码和长度作为该道路的属性信息进行保存。相应地,第一定位模块10还可根据输入的道路的代码,从数据库11中查询获得与道路的代码对应的道路的名称、及与道路对应的空间位置信息。
优选地,实施例一的系统还包含输入输出模块12。输入输出模块12将用户选择的道路的名称及里程值输入至第一定位模块10,输出第一定位模块10生成的经度和纬度, 还可进一步输出道路的名称。其中,输入输出模块12可为触控显示装置,或者包含显示装置、及鼠标和/或键盘。
优选地,实施例一的系统还包含数据更新模块13。数据更新模块13根据外部的触发,利用输入的道路名称从GIS的数据库中查找与道路名称对应的道路的构成点的经度及纬度,根据输入的道路的起始里程值和终止里程值,计算获得道路的构成点的里程值,将构成点的里程值、经度和纬度作为空间位置信息保存于数据库11中。具体地,数据更新模块13可采用现有的空间函数计算获得道路的构成点的里程值,比如利用Oracle空间数据库的SD0_LRS. FIND_MEASURE函数,输入一条线(道路)以及线上一点(构成点),可返回该条线(道路)的起始点到该点(构成点)之间的线的长度,该线的长度与道路的起始里程之和即为该构成点的里程值,道路的各构成点的里程值的计算方法与上述内容相同,在此不再逐一说明。
为了进一步提高查询定位的准确性及工作效率,实施例一的系统还包含要素控制模块14。要素控制模块14根据触发,将任一道路包含的要素信息以道路的名称为标识写入数据库11中;要素控制模块14根据接收到的要素信息查询数据库11获得道路的名称, 将接收到与要素信息对应的里程值及查询获得的道路的名称输出至第一定位模块10。要素控制模块14可通过输入输出模块12接收外部输入的要素信息。
其中,要素信息为公路设施信息、设备信息和/或事件信息;公路设施信息可为服务区、收费站、办公区、广告牌等信息;设备信息可为可变情报板、视频摄像机、车辆检测器、 太阳能供电系统等信息;事件信息可为施工、管制、突发事件等信息。
要素控制模块14在将任一道路包含的要素信息保存至数据库11中时,可以直接将要素信息写入具有相同道路的名称的属性信息中,也可以道路的名称为关联,与属性信息及空间位置信息建立对应关系,以便后续能够根据道路的名称快速查找获得属性信息、 要素信息及空间位置信息。
其中,第一定位模块10包含第一查询单元101及第一转换单元102。
第一查询单元101根据触发,利用接收到的道路的名称,从数据库11中查询与道路对应的空间位置信息,利用接收到的里程值,从道路的空间位置信息中查询距离接收到的里程值最近的构成点,输出接收到的里程值、最近的构成点的里程值、经度及纬度至第一转换单元102。其中,第一查询单元101接收到的触发可来自于输入输出模块12,也可来自于要素控制模块14。
第一转换单元102计算接收到的里程值及最近的构成点的里程值的差值,获得第一差值,利用空间函数、最近的构成点的经度、最近的构成点的纬度及第一差值,生成与接收到的里程值对应的一点的经度及纬度并输出。具体地,第一转换单元102可利用空间函数计算第一差值,利用Oracle空间数据库的SD0_LRS. L0CATE_PT函数,输入一条线段、一个长度L,可以返回该线从起点开始经过该长度L后到达的点的经纬度,比如输入的线是指路线或路线包含的线段,换句话说输入的为路线的起始里程至终止里程、或输入的为路线包含的路段的起始里程至终止里程(确定的最近的构成点的里程值至路线的终止里程),长度是第一差值,利用Oracle空间数据库的SD0_LRS. L0CATE_PT函数即可计算获得最近构成点的经度及纬度。
实施例一的系统能够根据输入的任一里程值,输出该里程值对应的位置点的经度及纬度,若该里程值在系统中有相应的构成点,则实施例一的系统直接进行构成点的空间位置信息的查询,并输出该构成点的里程值,若该里程值在系统中没有相应的构成点,则实施例一的系统需要利用输入的里程值及确定的与该里程值最近的构成点的空间位置信息, 进行经纬度的计算,通过计算获得该位置点的经度和纬度,完成准确地定位,这是现有的基于GIS的定位系统无法实现的。
图2为本发明基于GIS的用于公路管理的定位系统实施例二的结构示意图。现结合图2,对本发明实施例二的基于GIS的定位系统的结构进行说明,具体如下
实施例二的基于GIS的定位系统包含第二定位模块20和数据库11。
第二定位模块20根据接收到的定位点的屏幕坐标,计算获得与定位点最近的投影点,利用与定位点最近的投影点、及从数据库11中查询获得的与定位点最近的投影点所属的道路的空间位置信息,计算获得定位点对应于道路上的里程值。
数据库11保存任一道路的名称及空间位置信息。其中,任一道路包含多个构成点;空间位置信息至少包含每一个构成点的里程值、经度及纬度。在本实施例中,数据库 11中保存的任一道路的信息既可以是公路的路线的信息,也可以是公路的路线包含的多个路段的息。
另外,为了便于查询定位,数据库11还可保存任一道路的代码、及任一道路的长度,将对于同一道路的名称、代码和长度作为该道路的属性信息进行保存。相应地,第二定位模块20还可根据道路的代码,从数据库11中查询获得与道路的代码对应的道路的名称、 及与道路对应的空间位置信息。
优选地,实施例二的系统还包含输入输出模块22。输入输出模块22将用户选择的定位点的屏幕坐标输入至第二定位模块20,输出第二定位模块20生成的与输入的定位点对应的道路名称和里程值。其中,输入输出模块22可为触控显示装置,或者包含显示装置、及鼠标和/或键盘。
优选地,实施例二的系统还包含数据更新模块13。数据更新模块13根据外部的触发,利用输入的道路名称从GIS的数据库中查找与道路名称对应的道路的构成点的经度及纬度,根据输入的道路的起始里程值和终止里程值,计算获得道路的构成点的里程值,将构成点的里程值、经度和纬度作为空间位置信息保存于数据库11中。具体地,数据更新模块13可采用现有的空间函数计算获得道路的构成点的里程值,比如利用Oracle空间数据库的SD0_LRS. FIND_MEASURE函数,输入一条线(道路)以及线上一点(构成点),可返回该条线(道路)的起始点到该点(构成点)之间的线的长度,该线的长度与道路的起始里程之和即为该构成点的里程值,道路的各构成点的里程值的计算方法与上述内容相同,在此不再逐一说明。
其中,若数据库11中保存的为路线的属性信息及路线的空间位置信息,则第二定位模块20包含第二转换单元201。若第二定位模块20接收到的是定位点的屏幕坐标,则第二定位模块20还包含第四转换模块203。
第二转换单元201利用空间函数、接收到的定位点的经度和纬度,计算获得定位点与多条路线的投影距离,比较投影距离,获得与定位点最近的路线及路线包含的与定位点最近的投影点。具体地,第二转换单元201可利用空间函数,如现有的Oracle空间数据库的SD0_LRS. FIND_0FFSET函数,输入定位点的经度及纬度、以及需要从该定位点做投影线的几何图形,可返回该点到几何图形的最短距离,即投影线长度,其中,做投影线的几何图形可为路线的几何图形;第二转换单元201对所有投影线长度求最小值,得到最短投影线段,进而确定与定位点最近的路线及路线包含的与定位点最近的投影点。
第二转换单元201从数据库中11查询与定位点最近的路线的空间位置信息,获得与定位点最近的路线的起始里程值,利用空间函数计算起始里程值对应的起始点与投影点的距离,将起始里程值与所述起始点与投影点的距离的和作为投影点的里程值,输出与定位点最近的路线的名称、投影点的里程值及最短的投影距离。具体地,第二转换单元201可利用现有的空间函数,如现有的Oracle空间数据库的SD0_LRS. FIND_MEASURE函数,输入与定位点最近的路线的信息以及投影点的信息,计算获得与定位点最近的路线的起始点到该定位点之间的线的长度,将与定位点最近的路线的起始里程与线的长度的和,作为投影点的里程值;其中,计算获得的线的长度为两点间的实际距离。
第四转换单元203根据接收到的定位点的屏幕坐标及显示的区域地图信息,利用 GIS的数据库,将定位点的屏幕坐标转换为定位点的经度和纬度,输出定位点的经度和纬度至第二转换单元201。具体地,第四转换单元203可通过输入输出模块22接收定位点的屏幕坐标;第四转换单元203可利用现有的用于开发WebGIS客户端的JavaScript包及GIS 的数据库,或者利用现有的用于开发WebGIS客户端的JavaScript包及本实施例在GIS的数据库基础上改进后的数据库11,计算获得定位点的经度和纬度,在此不再对具体的计算过程进行赘述。
其中,若数据库11保存的任一道路的信息为路线包含的路段的信息,则第二定位模块20包含第三转换单元。若第二定位模块20接收到的为定位点的屏幕坐标,则第二定10位模块20还包含第四转换单元203。
第三转换单元利用空间函数、接收到的定位点的经度和纬度,计算获得定位点与多个路段的投影距离,比较投影距离,获得与定位点最近的路段及路段包含的与定位点最近的投影点。具体地,第三转换单元可利用空间函数,如现有的Oracle空间数据库的SD0_ LRS. FIND_OFFSET函数,输入定位点的经度及纬度、以及需要从该定位点做投影线的几何图形,可返回该点到几何图形的最短距离,即投影线长度,其中,做投影线的几何图形可为路段的几何图形;第三转换单元对所有投影线长度求最小值,得到最短投影线段,进而确定与定位点最近的路段及路段包含的与定位点最近的投影点。
第三转换单元从数据库中11查询与定位点最近的路段的空间位置信息,获得与定位点最近的路段的起始里程值,利用空间函数计算起始里程值对应的起始点与投影点的距离,将起始里程值与所述起始点与投影点的距离的和作为投影点的里程值,输出与定位点最近的路段的名称、投影点的里程值及最短的投影距离。具体地,第三转换单元可利用现有的空间函数,如现有的Oracle空间数据库的SD0_LRS. FIND_MEASURE函数,输入与定位点最近的路段的信息以及投影点的信息,计算获得与定位点最近的路段的起始点到该定位点之间的线的长度,将与定位点最近的路段的起始里程与线的长度的和,作为投影点的里程值;其中,计算获得的线的长度为两点间的实际距离。
第四转换单元203根据接收到的定位点的屏幕坐标及显示的区域地图信息,利用 GIS的数据库,将定位点的屏幕坐标转换为定位点的经度和纬度,输出定位点的经度和纬度至第三转换单元。具体地,第四转换单元203可通过输入输出模块22接收定位点的屏幕坐标;第四转换单元203可利用现有的用于开发WebGIS客户端的JavaScript包及GIS的数据库,或者利用现有的用于开发WebGIS客户端的JavaScript包及本实施例在GIS的数据库基础上改进后的数据库11,计算获得定位点的经度和纬度,在此不再对具体的计算过程进行赘述。
实施例二的系统中,第二定位模块20可将接收到的定位点的屏幕坐标、或者接收到的定位点的经纬度,转换为里程值输出,若定位点的屏幕坐标对应的经纬度在数据库11 的空间位置信息中有对应的构成点,或者接收到的定位点的经纬度在数据库11的空间位置信息中有对应的构成点,则直接查询输出与定位点对应的里程值,若定位点的屏幕坐标在数据库11中没有对应的构成点,或者接收到的定位点的经纬度在数据库11中没有对应的构成点,则利用空间位置信息及空间函数,进行经纬度和里程值之间的转换计算,生成定位点对应于道路上的里程值;第二定位模块20中利用路段的信息进行计算,较利用路线的信息进行计算,减少了运算量,提高了计算效率。
图3为本发明基于GIS的用于公路管理的定位系统实施例三的结构示意图。现结合图3,对本发明实施三的基于GIS的定位系统的结构进行说明,具体如下
实施例三的基于GIS的定位系统包含第一定位模块10、第二定位模块20和数据库11。
第一定位模块10根据接收到的道路的名称及里程值,从数据库11中查询与道路对应的空间位置信息,根据输入的里程值及道路的空间位置信息,计算获得输入的里程值对应的经度及纬度。第一定位模块10可根据设置,输出道路的名称、与输入的里程值对应的经度及纬度。11
第二定位模块20根据接收到的定位点的屏幕坐标,计算获得与定位点最近的投影点,利用与定位点最近的投影点、及从数据库11中查询获得的与定位点最近的投影点所属的道路的空间位置信息,计算获得定位点对应于道路上的里程值。
数据库11保存任一道路的名称及空间位置信息。其中,任一道路包含多个构成点;空间位置信息至少包含每一个构成点的里程值、经度及纬度。在本实施例中,数据库 11中保存的任一道路的信息既可以是公路的路线的信息,也可以是公路的路线包含的多个路段的息。
另外,为了便于查询定位,数据库11还可保存任一道路的代码、及任一道路的长度,将对于同一道路的名称、代码和长度作为该道路的属性信息进行保存。相应地,第一定位模块10还可根据输入的道路的代码,从数据库11中查询获得与道路的代码对应的道路的名称、及与道路对应的空间位置信息。
优选地,实施例三的系统还包含输入输出模块32。输入输出模块32将用户选择的道路的名称及里程值输入至第一定位模块10,输出第一定位模块10生成的经度和纬度, 还可进一步输出道路的名称;输入输出模块32将将用户选择的定位点的屏幕坐标输入至第二定位模块20,输出第二定位模块20生成的与输入的定位点对应的道路名O称和里程值。其中,输入输出模块32可为触控显示装置,或者包含显示装置、及鼠标和/或键盘。
优选地,实施例三的系统还包含数据更新模块13。数据更新模块13根据外部的触发,利用输入的道路名称从GIS的数据库中查找与道路名称对应的道路的构成点的经度及纬度,根据输入的道路的起始里程值和终止里程值,计算获得道路的构成点的里程值,将构成点的里程值、经度和纬度作为空间位置信息保存于数据库11中。具体地,数据更新模块13可采用现有的空间函数计算获得道路的构成点的里程值,比如利用Oracle空间数据库的SD0_LRS. FIND_MEASURE函数,输入一条线(道路)以及线上一点(构成点),可返回该条线(道路)的起始点到该点(构成点)之间的线的长度,该线的长度与道路的起始里程之和即为该构成点的里程值,道路的各构成点的里程值的计算方法与上述内容相同,在此不再逐一说明。
为了进一步提高查询定位的准确性及工作效率,实施例三的系统还包含要素控制模块14。要素控制模块14根据触发,将任一道路包含的要素信息以道路的名称为标识写入数据库11中;要素控制模块14根据接收到的要素信息查询数据库11获得道路的名称, 将接收到与要素信息对应的里程值及查询获得的道路的名称输出至第一定位模块10。要素控制模块14可通过输入输出模块12接收外部输入的要素信息。
其中,要素信息为公路设施信息、设备信息和/或事件信息;公路设施信息可为服务区、收费站、办公区、广告牌等信息;设备信息可为可变情报板、视频摄像机、车辆检测器、 太阳能供电系统等信息;事件信息可为施工、管制、突发事件等信息。
要素控制模块14在将任一道路包含的要素信息保存至数据库11中时,可以直接将要素信息写入具有相同道路的名称的属性信息中,也可以道路的名称为关联,与属性信息及空间位置信息建立对应关系,以便后续能够根据道路的名称快速查找获得属性信息、 要素信息及空间位置信息。
其中,第一定位模块10包含第一查询单元101及第一转换单元102。
第一查询单元101根据触发,利用接收到的道路的名称,从数据库11中查询与道路对应的空间位置信息,利用接收到的里程值,从道路的空间位置信息中查询距离接收到的里程值最近的构成点,输出接收到的里程值、最近的构成点的里程值、经度及纬度至第一转换单元102。其中,第一查询单元101接收到的触发可来自于输入输出模块12,也可来自于要素控制模块14。
第一转换单元102计算接收到的里程值及最近的构成点的里程值的差值,获得第一差值,利用空间函数、最近的构成点的经度、最近的构成点的纬度及第一差值,生成与接收到的里程值对应的一点的经度及纬度并输出。具体地,第一转换单元102可利用空间函数计算第一差值,利用Oracle空间数据库的SD0_LRS. L0CATE_PT函数,输入一条线段、 一个长度L,可以返回该线从起点开始经过该长度L后到达的点的经纬度,比如输入的线是指路线或路线包含的线段,换句话说输入的为路线的起始里程至终止里程、或输入的为路段的起始里程至终止里程,长度是第一差值,利用利用Oracle空间数据库的SD0_LRS. L0CATE_PT函数即可计算获得最近构成点的经度及纬度。
其中,若数据库11中保存的为路线的属性信息及路线的空间位置信息,则第二定位模块20包含第二转换单元201。若第二定位模块20接收到的是定位点的屏幕坐标,则第二定位模块20还包含第四转换模块203。
第二转换单元201利用空间函数、接收到的定位点的经度和纬度,计算获得定位点与多条路线的投影距离,比较投影距离,获得与定位点最近的路线及路线包含的与定位点最近的投影点。具体地,第二转换单元201可利用空间函数,如现有的Oracle空间数据库的SD0_LRS. FIND_0FFSET函数,输入定位点的经度及纬度、以及需要从该定位点做投影线的几何图形,可返回该点到几何图形的最短距离,即投影线长度,其中,投影线的几何图形可为路线的几何图形;第二转换单元201对所有投影线长度求最小值,得到最短投影线段, 进而确定与定位点最近的路线及路线包含的与定位点最近的投影点。
第二转换单元201从数据库中11查询与定位点最近的路线的空间位置信息,获得与定位点最近的路线的起始里程值,利用空间函数计算起始里程值对应的起始点与投影点的距离,将起始里程值与所述起始点与投影点的距离的和作为投影点的里程值,输出与定位点最近的路线的名称、投影点的里程值及最短的投影距离。具体地,第二转换单元201可利用现有的空间函数,如现有的Oracle空间数据库的SD0_LRS. FIND_MEASURE函数,输入与定位点最近的路线的信息以及投影点的信息,计算获得与定位点最近的路线的起始点到该定位点之间的线的长度,将与定位点最近的路线的起始里程与线的长度的和,作为投影点的里程值;其中,计算获得的线的长度为两点间的实际距离。
第四转换单元203根据接收到的定位点的屏幕坐标及显示的区域地图信息,利用 GIS的数据库,将定位点的屏幕坐标转换为定位点的经度和纬度,输出定位点的经度和纬度至第二转换单元201。具体地,第四转换单元203可通过输入输出模块22接收定位点的屏幕坐标;第四转换单元203可利用现有的用于开发WebGIS客户端的JavaScript包及GIS 的数据库,或者利用现有的用于开发WebGIS客户端的JavaScript包及本实施例在GIS的数据库基础上改进后的数据库11,计算获得定位点的经度和纬度,在此不再对具体的计算过程进行赘述。
其中,若数据库11保存的任一道路的信息为路线包含的路段的信息,则第二定位模块20包含第三转换单元。若第二定位模块20接收到的为定位点的屏幕坐标,则第二定位模块20还包含第四转换单元203。
第三转换单元利用空间函数、接收到的定位点的经度和纬度,计算获得定位点与多个路段的投影距离,比较投影距离,获得与定位点最近的路段及路段包含的与定位点最近的投影点。具体地,第三转换单元可利用空间函数,如现有的Oracle空间数据库的SD0_ LRS. FIND_OFFSET函数,输入定位点的经度及纬度、以及需要从该定位点做投影线的几何图形,可返回该点到几何图形的最短距离,即投影线长度,其中,投影线的几何图形可为路段的几何图形;第三转换单元对所有投影线长度求最小值,得到最短投影线段,进而确定与定位点最近的路段及路段包含的与定位点最近的投影点。
第三转换单元从数据库中11查询与定位点最近的路段的空间位置信息,获得与定位点最近的路段的起始里程值,利用空间函数计算起始里程值对应的起始点与投影点的距离,将起始里程值与所述起始点与投影点的距离的和作为投影点的里程值,输出与定位点最近的路段的名称、投影点的里程值及最短的投影距离。具体地,第三转换单元可利用现有的空间函数,如现有的Oracle空间数据库的SD0_LRS. FIND_MEASURE函数,输入与定位点最近的路段的信息以及投点的信息,计算获得与定位点最近的路段的起始点到该定位点之间的线的长度,将与定位点最近的路段的起始里程与线的长度的和,作为投影点的里程值; 其中,计算获得的线的长度为两点间的实际距离。
第四转换单元203根据接收到的定位点的屏幕坐标及显示的区域地图信息,利用 GIS的数据库,将定位点的屏幕坐标转换为定位点的经度和纬度,输出定位点的经度和纬度至第三转换单元。具体地,第四转换单元203可通过输入输出模块22接收定位点的屏幕坐标;第四转换单元203可利用现有的用于开发WebGIS客户端的JavaScript包及GIS的数据库,或者利用现有的用于开发WebGIS客户端的JavaScript包及本实施例在GIS的数据库基础上改进后的数据库11,计算获得定位点的经度和纬度,在此不再对具体的计算过程进行赘述。
图4为本发明基于GIS的用于公路管理的定位方法实施例一的流程图。现结合图 4,对本发明实施例一的基于GIS的定位方法进行说明,具体如下
步骤40 :根据接收到的道路的名称,查询获得与所述道路对应的空间位置信息;
实施例一的空间位置信息至少包含每一个构成点的里程值、经度及纬度。
该步骤为根据接收到的道路的名称,查询数据库11,获得与道路对应的空间位置信息。
步骤41 :利用所述道路对应的空间位置信息及输入的里程值,计算获得输入的里程值对应的经度及纬度。
步骤41包括步骤a,根据输入的里程值及所述道路的空间位置信息,从所述道路的空间位置信息中查询距与接收到的里程值对应的位置点距离最近的构成点;步骤b, 计算接收到的里程值及最近的构成点的里程值的差值,获得第一差值;步骤c,利用空间函数、最近的构成点的经度、最近的构成点的纬度及第一差值,生成与接收到的里程值对应的一点的经度及纬度并输出。
该步骤中的道路为公路的路线或公路的路线所包含的路段。
步骤c中,可利用Oracle空间数据库的SD0_LRS. L0CATE_PT函数,输入一条线段、 一个长度L,可以返回该线从起点开始经过该长度L后到达的点的经纬度,比如输入的线是指路线或路线包含的线段,换句话说输入的为路线的起始里程至终止里程、或输入的为路线包含的路段的起始里程至终止里程(即最近的构成点的里程值至路线的终止里程),长度是第一差值,利用Oracle空间数据库的SD0_LRS. L0CATE_PT函数即可计算获得最近构成点的经度及纬度。
优选地,步骤40之前还包括利用地理信息系统GIS的数据库,生成道路的空间位置信息并保存。具体地,根据输入的道路名称从地理信息系统GIS的数据库中查找与道路名称对应的道路的构成点的经度及纬度;根据输入的道路的起始里程值和终止里程值,计算获得道路的构成点的里程值;将构成点的里程值、经度和纬度作为空间位置信息进行保存。其中,计算获得道路的构成点的里程值时,可采用现有的空间函数计算获得道路的构成点的里程值,比如利用Oracle空间数据库的SD0_LRS. FIND_MEASURE函数,输入一条线(道路)以及线上一点(构成点),可返回该条线(道路)的起始点到该点(构成点)之间的线的长度,该线的长度与道路的起始里程之和即为该构成点的里程值;该线的长度为两点间的实际距离。
优选地,步骤40之前还包括将任一道路包含的要素信息以道路的名称为标识进行保存,以便根据要素信息查询获得道路的名称及该道路对应的空间位置信息。
图5为本发明基于GIS的定位方法实施例二的流程图。现结合图5,对本发明实施例二的基于GIS的定期方法进行说明,具体如下
步骤50 :根据接收到的定位点的经纬度,计算获得与定位点最近的投影点;
若数据库11中存储的道路的信息为路线的信息,则步骤50包括步骤d,利用空间函数、接收到的定位点的经度和纬度,计算获得定位点与多条路线的投影距离;步骤e, 比较投影距离,获得与定位点最近的路线及所述路线包含的与定位点最近的投影点。
步骤d具体可为利用空间函数,如现有的Oracle空间数据库的SD0_LRS. FIND_ OFFSET函数,输入定位点的经度及纬度、以及需要从该定位点做投影线的几何图形,可返回该点到几何图形的最短距离,即投影线长度,其中,投影线的几何图形可为路线的几何图形。
若数据库11中存储的道路的信息为路线包含的路段的信息,则步骤50包括步骤f,利用空间函数、定位点的经度和纬度,计算获得定位点与多条路线包含的各路段的投影距离;步骤g,比较投影距离,获得与定位点最近的O路段及所述路段包含的与定位点最近的投影点。
步骤f具体可为利用空间函数,如现有的Oracle空间数据库的SD0_LRS. FIND_ OFFSET函数,输入定位点的经度及纬度、以及需要从该定位点做投影线的几何图形,可返回该点到几何图形的最短距离,即投影线长度,其中,投影线的几何图形可为路段的几何图形。
步骤51 :利用与定位点最近的投影点、及查询获得的与定位点最近的投影点所属的道路的空间位置信息,计算获得定位点对应于道路上的里程值。
若数据库11中保存的道路的信息为路线的信息,则步骤51包括步骤h,查询与定位点最近的路线的空间位置信息,获得与定位点最近的路线的起始里程值;步骤i,利用空间函数计算起始里程值对应的起始点与投影点的距离,将起始里程值与所述起始点与投影点的距离的和作为投影点的里程值;步骤j,输出与定位点最近的路线的名称、投影点的里程值及最短的投影距离。
步骤i具体可为利用现有的空间函数,如现有的Oracle空间数据库的SD0_LRS. FIND_MEASURE函数,输入与定位点最近的路线的信息以及投影点的信息,计算获得与定位点最近的路线的起始点到该定位点之间的线的长度,将与定位点最近的路线的起始里程与线的长度的和,作为投影点的里程值;其中,计算获得的线的长度为两点间的实际距离。
若数据库11中保存的道路的信息为路线包含的路段的信息,则步骤51包括步骤 k,查询与定位点最近的路段的空间位置信息,获得与定位点最近的路段的起始里程值;步骤m,利用空间函数计算起始里程值对应的起始点与投影点的距离,将起始里程值与所述起始点与投影点的距离的和作为投影点的里程值;步骤n,输出与定位点最近的路段所属的路线的名称、投影点的里程值及最短的投影距离。
步骤m具体可为利用空间函数,如现有的Oracle空间数据库的SD0_LRS. FIND_ OFFSET函数,输入定位点的经度及纬度、以及需要从该定位点做投影线的几何图形,可返回该点到几何图形的最短距离,即投影线长度,其中,投影线的几何图形可为路段的几何图形。
优选地,步骤50之前还包括利用地理信息系统GIS的数据库,生成道路的空间位置信息并保存。具体地,根据输入的道路名称从地理信息系统GIS的数据库中查找与道路名称对应的道路的构成点的经度及纬度;根据输入的道路的起始里程值和终止里程值,计算获得道路的构成点的里程值;将构成点的里程值、经度和纬度作为空间位置信息进行保存。其中,计算获得道路的构成点的里程值时,可采用现有的空间函数计算获得道路的构成点的里程值,比如利用Oracle空间数据库的SD0_LRS. FIND_MEASURE函数,输入一条线(道路)以及线上一点(构成点),可返回该条线(道路)的起始点到该点(构成点)之间的线的长度,该线的长度与道路的起始里程之和即为该构成点的里程值;该线的长度为两点间的实际距离。
优选地,步骤50的根据接收到的定位点的经纬度之前还包括利用空间函数,将接收到的定位点的屏幕坐标,转换成定位点的经度和纬度。具体地,利用现有的用于开发 WebGIS客户端的JavaScript包及GIS的数据库,或者利用现有的用于开发WebGIS客户端的JavaScript包及本发明在GIS的数据库基础上改进后的数据库11,计算获得定位点的经度和纬度。
本发明的上述较佳实施例中,计算获得的定位点对应于道路上的里程值为定位点本身对应的里程值或与定位点最近的投影点的里程值,换句话说,若定位点为道路上的一位置点,定位点对应于道路上的里程值为定位点本身对应的里程值,若定位点不再道路上(不属于任何一条道路),定位点对应于道路上的里程值为与定位点最近的投影点的里程值。
本发明的上述较佳实施例中,在输入的里程值或经纬度在数据库保存的空间位置信息中有对应的构成点时,能够直接输出查询结果,在输入的里程值或经纬度在数据库保存的空间位置信息中没有对应的构成点时,利用空间函数及计算所需的相关位置点的空间位置信息,计算获得所要定位的经纬度或里程值,实现了里程值和经纬度的转换,同时提高了查询定位的准确性和工作效率。另外,本发明的系统和方法,还能够支持要素信息的查询定位及相关结果的输出,而且采用本发明的系统和方法进行查询定位时,不再受数据库中保存的有限的构成点的空间位置信息的限制,可对任意位置点进行里程值或经纬度的查询定位。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如 R0M/RAM、磁碟、光盘等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种基于GIS的用于公路管理的定位系统,其特征在于,该系统包含数据库、以及第一定位模块和/或第二定位模块; 所述第一定位模块根据接收到的道路的名称及里程值,从所述数据库中查询与所述道路对应的空间位置信息,根据输入的里程值及所述道路的空间位置信息,计算获得输入的里程值对应的经度及纬度; 所述第二定位模块根据接收到的定位点的屏幕坐标,计算获得与定位点最近的投影点,利用与定位点最近的投影点、及从所述数据库中查询获得的与定位点最近的投影点所属的道路的空间位置信息,计算获得定位点对应于道路上的里程值; 所述数据库保存任一道路的名称及空间位置信息;所述空间位置信息至少包含每一个构成点的里程值、经度及纬度。
2.根据权利要求I所述的系统,其特征在于,该系统还包含; 输入输出模块,将用户选择的道路的名称及里程值输入至第一定位模块,输出第一定位模块生成的经度和纬度, 和/或将用户选择的定位点的经度和纬度输入至第二定位模块,输出第二定位模块生成的与输入的定位点对应的道路名称和里程值。
3.根据权利要求I所述的系统,其特征在于,该系统还包含 数据更新模块,根据输入的道路名称从地理信息系统GIS的数据库中查找与道路名称对应的道路的构成点的经度及纬度,根据输入的道路的起始里程值和终止里程值,计算获得道路的构成点的里程值,将构成点的里程值、经度和纬度作为空间位置信息保存于数据库中。
4.根据权利要求I至4任一所述的系统,其特征在于,所述第一定位模块包含 第一查询单元,根据触发,利用接收到的道路的名称,从所述数据库中查询与所述道路对应的空间位置信息,利用接收到的里程值,从所述道路的空间位置信息中查询距离接收到的里程值最近的构成点,输出接收到的里程值、最近的构成点的里程值、经度及纬度至第一转换单元; 第一转换单元,计算接收到的里程值及最近的构成点的里程值的差值,获得第一差值,利用空间函数、最近的构成点的经度、最近的构成点的纬度及第一差值,生成与接收到的里程值对应的一点的经度及纬度并输出; 所述道路为公路的路线或公路的路线所包含的路段。
5.根据权利要求I所述的系统,其特征在于,所述第二定位模块包含 第二转换单元,利用空间函数、接收到的定位点的经度和纬度,计算获得定位点与多条路线的投影距离,比较投影距离,获得与定位点最近的路线及所述路线包含的与定位点最近的投影点; 所述第二转换单元从所述数据库中查询与定位点最近的路线的空间位置信息,获得与定位点最近的路线的起始里程值,利用空间函数计算起始里程值对应的起始点与投影点的距离,将起始里程值与所述起始点与投影点的距离的和作为投影点的里程值,输出与定位点最近的路线的名称、投影点的里程值及最短的投影距离; 所述道路为公路的路线。
6.一种基于GIS的用于公路管理的定位方法,该方法包括根据接收到的道路的名称,查询获得与所述道路对应的空间位置信息,利用所述道路对应的空间位置信息及输入的里程值,计算获得输入的里程值对应的经度及纬度; 和/或根据接收到的定位点的经纬度,计算获得与定位点最近的投影点,利用与定位点最近的投影点、及查询获得的与定位点最近的投影点所属的道路的空间位置信息,计算获得定位点对应于道路上的里程值; 所述空间位置信息至少包含每一个构成点的里程值、经度及纬度。
7.根据权利要求6所述的方法,该方法还包括 利用地理信息系统GIS的数据库,生成道路的空间位置信息并保存。
8.根据权利要求7所述的方法,其中,所述利用地理信息系统GIS的数据库,生成道路的空间位置信息包括 根据输入的道路名称从地理信息系统GIS的数据库中查找与道路名称对应的道路的构成点的经度及纬度; 根据输入的道路的起始里程值和终止里程值,计算获得道路的构成点的里程值; 将构成点的里程值、经度和纬度作为空间位置信息进行保存。
9.根据权利要求6-8任一所述的方法,该方法还包括 将任一道路包含的要素信息以道路的名称为标识进行保存,以便根据要素信息查询获得道路的名称及该道路对应的空间位置信息。
10.根据权利要求6-8任一所述的方法,其中,所述计算获得输入的里程值对应的经度及纬度包括 根据输入的里程值及所述道路的空间位置信息,从所述道路的空间位置信息中查询距与接收到的里程值对应的位置点距离最近的构成点; 计算接收到的里程值及最近的构成点的里程值的差值,获得第一差值; 利用空间函数、最近的构成点的经度、最近的构成点的纬度及第一差值,生成与接收到的里程值对应的一点的经度及纬度并输出; 所述道路为公路的路线或公路的路线所包含的路段。
全文摘要
本发明公开了基于GIS的用于公路管理的定位系统和方法。该系统包含数据库,第一定位模块和/或第二定位模块。第一定位模块根据接收的道路名称及里程值,从数据库中查询与道路对应的空间位置信息,根据输入里程值及道路空间位置信息,确定输入里程值对应的经度及纬度;第二定位模块根据接收的定位点的屏幕坐标,计算出与定位点最近的投影点,利用与定位点最近的投影点和从数据库中查询获得的与投影点所属的道路的空间位置信息,获得定位点对应于道路上的里程值;数据库保存任一道路的名称和至少包含每一个构成点的里程值、经度及纬度的空间位置信息。本发明能够将里程值与对应的经纬度相互转换,实现对任一位置点的定位,而非简单地查询输出。
文档编号G01C21/28GK102927988SQ201210421899
公开日2013年2月13日 申请日期2012年10月30日 优先权日2012年10月30日
发明者刘宏斌, 孙研, 郜效祖, 许晶玉, 孙代耀, 李汝飞, 韩锋 申请人:青岛海信网络科技股份有限公司