发明内容
基于此,有必要提供一种能够充分利用已知数据的信息精确计算坐标等信息的地理信息系统的地图生成方法。
一种地理信息系统的地图生成方法,包括以下步骤:
获取地理信息系统中道路的已知坐标点的信息和位于所述道路两侧的物体的信息;所述道路两侧的物体的信息包括物体的类型;
根据所获取的所述道路的已知坐标点的信息,采用贝塞尔曲线对所述道路进行插值平滑处理,计算所述道路的贝塞尔插值点的信息;
根据所获取的所述道路两侧的物体的信息及所述道路的已知坐标点的信息和贝塞尔插值点的信息,计算所述道路两侧的物体的坐标;
输出地图,所述地图中包括经过所述插值平滑处理的所述道路的信息、所述道路两侧的物体的类型和计算出的所述道路两侧的物体的坐标;所述经过所述插值平滑处理的所述道路的信息包括所述道路的已知坐标点的信息和贝塞尔插值点的信息。
在其中一个实施例中,所述道路的已知坐标点的信息包括所述道路的已知坐标点的坐标和里程数;
所述位于所述道路两侧的物体的信息包括所述物体的每个已知坐标点的里程数和所述物体的每个已知坐标点到对应的道路的距离和所述物体的类型;
所述贝塞尔插值点的信息包括所述贝塞尔插值点的坐标和里程数。
在其中一个实施例中,所述道路的已知坐标点的坐标为平面直角坐标或经纬度坐标;
所述贝塞尔插值点的坐标为平面直角坐标或经纬度坐标。
在其中一个实施例中,所述根据所获取的所述道路的已知坐标点的信息,采用贝塞尔曲线计算所述道路的贝塞尔插值点的信息,对所述道路进行插值平滑处理步骤包括:
根据所获取的所述道路的已知坐标点的信息,计算所述道路的贝塞尔控制点的坐标;
根据计算出的所述贝塞尔控制点计算所述道路的贝塞尔插值点的坐标和里程数。
在其中一个实施例中,所述根据所获取的所述道路的已知坐标点的信息,计算所述道路的贝塞尔控制点的坐标步骤包括:
通过公式:
计算所述道路的任意三个相邻的已知坐标点的两个中点的坐标;其中,(x[i-1],y[i-1])、(x[i],y[i])、(x[i+1],y[i+1])分别为所述道路中的一个道路上第i-1个、第i个、第i+1个已知坐标点的坐标,(xmid_1[i],ymid_1[i])为第i-1个、第i个已知坐标点的中点的坐标;(xmid_2[i],ymid_2[i])为第i个和第i+1个已知坐标点的中点的坐标;
通过公式:
计算在以所述两个中点为端点构成的第一线段上,按照所述任意三个相邻的已知坐标点构成的两个第二线段的长度比例分割所述第一线段的分割点坐标;其中,xmid[i]和ymid[i]为所述分割点的坐标;
按照所述分割点到与所述分割点对应的所述已知坐标点的路径,将以所述第一线段平移,并按照贝塞尔控制系数kcontral,以与所述分割点对应的所述已知坐标点为中心对所述第一线段进行缩放,得到所述第一线段缩放后的端点坐标为:
xcontral_1[i]=x[i]+(xmid_1[i]-xmid[i])·kcontral
ycontral_1[i]=y[i]+(ymid_1[i]-ymid[i])·kcontral;
xcontral_2[i]=x[i]+(xmid_2[i]-xmid[i])·kcontral
ycontral_2[i]=y[i]+(ymid_2[i]-ymid[i])·kcontral
其中,(xcontral_1[i],ycontral_1[i])和(xcontral_2[i],ycontral_2[i])为位于所述任意三个相邻的已知坐标点之间的所述贝塞尔控制点的坐标;
计算出所述道路的所有所述贝塞尔控制点。
在其中一个实施例中,位于所述道路的起点已知坐标点与所述起点已知坐标点相邻的已知坐标点之间的所述贝塞尔插值点的坐标,及所述道路的终点已知坐标点与所述终点已知坐标点相邻的已知坐标点之间的所述贝塞尔插值点的坐标为:
其中,j=1,......,nbezier-1,np为所述道路的已知坐标点的数量,nbezier为所述道路的任意两个相邻的已知坐标点之间的所述贝塞尔插值点的数量;
位于所述道路的其他已知坐标点之间的各个所述贝塞尔插值点的坐标为:
其中,j=1,......,nbezier-1,xbezier[i][j]、ybezier[i][j]为所述道路的第i个线段的第j个所述贝塞尔插值点的坐标,且所述道路的任意两个相邻的已知坐标点之间的所述道路为一个所述线段。
在其中一个实施例中,所述道路的各个贝塞尔插值点的里程数为:
其中,lbezier[i][j]为所述道路的第i个线段的第j个所述贝塞尔插值点的坐标,且所述道路的任意两个相邻的已知坐标点之间的所述道路为一个所述线段,l[i]为所述道路的第i个已知坐标点的里程数,l[i+1]为所述道路的第i+1个已知坐标点的里程数,坐标为(xbezier[i][j],ybezier[i][j])的所述贝塞尔插值点位于各个所述道路上第i个已知坐标点和第i+1个已知坐标点之间,sumi为所述道路的任意两个相邻已知坐标点的距离,sumi_1为所述道路的第i个已知坐标点到坐标为(xbezier[i][j],ybezier[i][j])的贝塞尔插值点之间的距离总和,且
nbezier为所述道路的两个相邻的已知坐标点之间的所述贝塞尔插值点的数量,j=1,......,nbezier-1。
在其中一个实施例中,若所述道路两侧的物体的类型为点状物体,所述根据所获取的所述道路两侧的物体的信息及经过所述插值平滑处理后的所述道路的已知坐标点的信息和贝塞尔插值点的信息,计算所述道路两侧的物体的坐标步骤包括:
计算所述点状物体在经过所述插值平滑处理后的道路上的投影点的坐标;
根据计算出的所述投影点的坐标计算所述点状物体的实际坐标。
在其中一个实施例中,将所述点状物体的里程数与所述道路上的已知坐标点的里程数和各个所述贝塞尔插值点的里程数对比:
若所述点状物体的里程数与所述道路上的已知坐标点和各个所述贝塞尔插值点中的一个已知点的里程数相等,则所述点状物体在经过所述插值平滑处理后的道路上的投影点的坐标为所述已知点的坐标;
否则,通过以下公式计算所述点状物体在经过所述插值平滑处理后的道路上的投影点的坐标:
其中,为所述点状物体的里程数,位于两个所述已知点的里程数l*[i]和l*[i+1]之间,两个所述已知点的坐标分别为(x*[i],y*[i])和(x*[i+1],y*[i+1]),所述已知点为所述道路上的已知坐标点或与所述道路对应的各个所述贝塞尔插值点。
在其中一个实施例中,若所述点状物体的里程数等于经过所述插值平滑处理后的所述道路的起点的里程数,则所述点状物体的实际坐标为:
若所述点状物体的里程数等于经过所述插值平滑处理后的所述道路的终点的里程数,则所述点状物体的实际坐标为:
若所述点状物体的里程数等于除了所述道路的起点和终点外的一个所述已知点的里程数,则所述点状物体的实际坐标为:
若所述点状物体的里程数位于两个相邻的所述已知点的里程数之间,则所述点状物体的实际坐标为:
其中,(xnew,ynew)为所述点状物体的实际坐标,dnew表示所述点状物体与所述道路之间的距离。
在其中一个实施例中,若所述道路两侧的物体的类型为线状物体,所述根据所获取的所述道路两侧的物体的信息及经过所述插值平滑处理后的所述道路的已知坐标点的信息和贝塞尔插值点的信息,计算所述道路两侧的物体的坐标步骤包括:
计算所述道路上的已知坐标点在所述线状物体的两端端点之间的投影点坐标;
计算所述线状物体的两个端点和所述道路上的已知坐标点在所述线状物体的两端端点之间的投影点之间的贝塞尔插值点坐标。
在其中一个实施例中,若所述道路两侧的物体的类型为二维形状物体,所述根据所获取的所述道路两侧的物体的信息及经过所述插值平滑处理后的所述道路的已知坐标点的信息和贝塞尔插值点的信息,计算所述道路两侧的物体的坐标步骤包括:
计算所述道路上的已知坐标点在所述二维形状物体的边界上的投影点坐标;
计算所述二维形状物体的边界上的已知坐标点和所述道路上的已知坐标点在所述二维形状物体的边界上的投影点之间的贝塞尔插值点坐标。
本发明还公开一种地理信息系统的地图生成系统,包括信息获取模块、道路插值平滑处理模块、物体坐标计算模块和地图生成模块;
所述信息获取模块,被配置以获取地理信息系统中道路的已知坐标点的信息和位于所述道路两侧的物体的信息;所述道路两侧的物体的信息包括物体的类型;
所述道路插值平滑处理模块,被配置以根据所述信息获取模块获取的所述道路的已知坐标点的信息,采用贝塞尔曲线对所述道路进行插值平滑处理,计算所述道路的贝塞尔插值点的信息;
所述物体坐标计算模块,被配置以根据所述信息获取模块获取的所述道路两侧的物体的信息及所述道路的已知坐标点的信息和贝塞尔插值点的信息,计算所述道路两侧的物体的坐标;
所述地图生成模块,被配置以输出地图,所述地图中包括经过所述插值平滑处理的所述道路的信息、所述道路两侧的物体的类型和计算出的所述道路两侧的物体的坐标;所述经过所述插值平滑处理的所述道路的信息包括所述道路的已知坐标点的信息和贝塞尔插值点的信息。
在其中一个实施例中,所述道路插值平滑处理模块包括贝塞尔控制点计算单元和贝塞尔插值点计算单元;
所述贝塞尔控制点计算单元,被配置以根据所述信息获取模块获取的所述道路的已知坐标点的信息,计算所述道路的贝塞尔控制点的坐标;
所述贝塞尔插值点计算单元,被配置以根据计算出的所述贝塞尔控制点计算所述道路的贝塞尔插值点的坐标和里程数。
在其中一个实施例中,所述物体坐标计算模块包括投影点坐标计算单元和物体处理单元;
若所述道路两侧的物体的类型为点状物体,则所述投影点坐标计算单元,被配置以计算所述点状物体在经过所述插值平滑处理后的道路上的投影点的坐标;所述物体处理单元,被配置以根据计算出的所述投影点的坐标计算所述点状物体的实际坐标;
若所述道路两侧的物体的类型为线状物体,则所述投影点坐标计算单元,被配置以计算所述道路上的已知坐标点在所述线状物体的两端端点之间的投影点坐标;所述物体处理单元,被配置以计算所述线状物体的两个端点和所述道路上的已知坐标点在所述线状物体的两端端点之间的投影点之间的贝塞尔插值点坐标;
若所述道路两侧的物体的类型为二维形状物体,则所述投影点坐标计算单元,被配置以计算所述道路上的已知坐标点在所述二维形状物体的边界上的投影点坐标;所述物体处理单元,被配置以计算所述二维形状物体的边界上的已知坐标点和所述道路上的已知坐标点在所述二维形状物体的边界上的投影点之间的贝塞尔插值点坐标。
上述地理信息系统的地图生成方法和系统,能够充分挖掘地理信息系统中已有数据中的信息,采用贝塞尔曲线计算道路的贝塞尔插值点的信息,从而对道路进行插值平滑处理,并利用道路两侧的物体的信息及道路的已知坐标点的信息和贝塞尔插值点的信息,精确计算出道路两侧的物体的坐标,从而最大程度的利用地理信息系统中已知数据的信息,有效提高地理信息系统中道路两侧物体坐标计算的精确性,因此能够有效提高地图的精确性。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明地理信息系统的地图生成方法和系统的具体实施方式进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,一个实施例中,本发明地理信息系统的地图生成方法包括以下步骤:
S100,获取地理信息系统中道路的已知坐标点的信息和位于道路两侧的物体的信息。
其中,从地理信息系统中获取的道路的已知坐标点的信息包括道路的已知坐标点的坐标和里程数。从地理信息系统中获取的道路两侧的物体的信息包括物体的每个已知坐标点的里程数和物体的每个已知坐标点到对应的道路的距离。
具体的,可以从地理信息系统的数据库中依次读取道路上的每个已知坐标点的坐标和里程数。其中,每个已知坐标点的坐标可以为平面直角坐标或经纬度坐标。已知坐标点的里程数为从该已知坐标点所在的道路上的里程为零的端点,延该道路行驶到该已知坐标点的距离。
同样的,可以从地理信息系统的数据库中依次读取道路两侧的物体的每个已知坐标点的里程数、物体的每个已知坐标点到对应的道路的距离和物体的类型。
一个实施例中,地理信息系统可以为预存有各个道路的已知坐标点的信息和位于各个道路两侧的物体的信息的数据库。
S200,根据所获取的道路的已知坐标点的信息,采用贝塞尔曲线对道路进行插值平滑处理,计算道路的贝塞尔插值点的信息。
作为一种可实施方式可采用二阶贝塞尔曲线和三阶贝塞尔曲线对道路的曲线进行插值平滑。
具体的,参见图2,步骤S200可以包括以下子步骤:
S210,根据所获取的道路的已知坐标点的信息,计算道路的贝塞尔控制点的坐标。
在贝塞尔曲线中,贝塞尔曲线需要直接穿越的坐标点称为锚点。贝塞尔曲线不直接穿越,但是可以控制贝塞尔曲线方向的点称为控制点,也成贝塞尔控制点。本实施例中,道路的已知坐标点均为道路曲线必须穿越的锚点。对于贝塞尔控制点,可以通过以下步骤计算得出:
首先,通过公式:
计算道路的任意三个相邻的已知坐标点的两个中点的坐标。其中,(x[i-1],y[i-1])、(x[i],y[i])、(x[i+1],y[i+1])分别为道路中的一个道路上的第i-1个、第i个和第i+1个已知坐标点的坐标,(xmid_1[i],ymid_1[i])和(xmid_2[i],ymid_2[i])分别为两个中点的坐标。
然后,采用第一线段将两个中点(xmid_1[i],ymid_1[i])和(xmid_2[i],ymid_2[i])连接起来,并通过公式:
计算分割点的坐标xmid[i]和ymid[i]。其中,分割点位于第一线段上,将第一线段分割成两个第二线段,且两个第二线段的长度比例与该三个相邻的已知坐标点构成的两个线段的长度比例对应相等。该三个相邻的已知坐标点构成的两个线段为该三个相邻的已知坐标点所在的一个道路的两个线段。xmid[i]公式中的“其他”不全相等的情况表示x[i-1]、x[i]和x[i+1]不全相等的情况,同样ymid[i]公式中的“其他”不全相等的情况表示y[i-1]、y[i]和y[i+1]不全相等的情况。
接着,按照该分割点(xmid[i],ymid[i])到与该分割点对应的已知坐标点(x[i],y[i])的路径,将第一线段进行平移,并按照贝塞尔控制系数kcontral,以与分割点(xmid[i],ymid[i])对应的已知坐标点(x[i],y[i])为中心对第一线段进行缩放,得到第一线段缩放后的端点坐标为:
xcontral_1[i]=x[i]+(xmid_1[i]-xmid[i])·kcontral
ycontral_1[i]=y[i]+(ymid_1[i]-ymid[i])·kcontral
xcontral_2[i]=x[i]+(xmid_2[i]-xmid[i])·kcontral
ycontral_2[i]=y[i]+(ymid_2[i]-ymid[i])·kcontral。
其中,(xcontral_1[i],ycontral_1[i])和(xcontral_2[i],ycontral_2[i])为位于该任意三个相邻的已知坐标点(x[i-1],y[i-1])、(x[i],y[i])和(x[i+1],y[i+1])之间的贝塞尔控制点的坐标。本实施例中,kcontral>0,且其数值越大,道路平滑处理后的拐角处越锐利。可以理解的,本领域技术人员可以根据实际需要的道路拐角锐利程度或平滑程度,选择合适的贝塞尔控制系数kcontral。
对道路上除了首尾两个端点之外的其他已知坐标点重复上述操作,直至计算出所有已知坐标点对应的贝塞尔曲线控制点,并记录所有贝塞尔曲线控制点坐标。
可以理解的,一个道路被该道路上的各个已知坐标点分割成若干个线段,由于在计算贝塞尔控制点时,一个道路的任意两个相邻的线段之间的两个控制点,均位于同一个已知坐标点附近,且与该已知坐标点共线,因此能够保证各段分别计算出的贝塞尔曲线之间的平滑性。
S220,根据计算出的贝塞尔控制点计算道路的贝塞尔插值点的坐标和里程数。
一个道路上,由起点、终点两个已知坐标点与其相邻的已知坐标点所分割成的线段只拥有一个贝塞尔控制点,而由其他已知坐标点依次分割成的线段均有两个贝塞尔控制点。因此,在求取各个线段的贝塞尔插值点坐标时,对于起点、终点两个已知坐标点对应的首尾两个线段使用二阶贝塞尔曲线插值,对于其他线段使用三阶贝塞尔曲线插值。
首尾两个线段的贝塞尔插值点的坐标为:
其中,j=1,......,nbezier-1,np为一个道路的已知坐标点的数量,nbezier为同一个道路的任意两个相邻的已知坐标点之间的贝塞尔插值点的数量。(xbezier[0][j],ybezier[0][j])为首线段的第j个贝塞尔插值点的坐标,(xbezier[np-2][j],ybezier[np-2][j])为首尾线段的第j个贝塞尔插值点的坐标。
其他线段的贝塞尔插值点的坐标为:
其中,j=1,......,nbezier-1,xbezier[i][j]、ybezier[i][j]为一个道路的第i个线段的第j个贝塞尔插值点的坐标。本实施例中,一个道路的任意两个相邻的已知坐标点之间的道路为一个线段。
按照上述方法,计算道路的所有贝塞尔插值点。
以下计算道路上各个贝塞尔插值点的里程数,假设坐标为(xbezier[i][j],ybezier[i][j])的贝塞尔插值点位于道路上的第i个已知坐标点和第i+1个已知坐标点之间,而通过步骤S100可以获取到第i个已知坐标点的里程数为l[i],第i+1个已知坐标点的里程数为l[i+1]。
通过坐标数值计算道路上任意两个相邻已知坐标点的距离sumi,
其中,nbezier为道路的两个相邻的已知坐标点之间的贝塞尔插值点的数量。
然后计算从道路上第i个已知坐标点到坐标为(xbezier[i][j],ybezier[i][j])的贝塞尔插值点之间的距离总和
则各个贝塞尔插值点的里程数为:
其中,lbezier[i][j]为道路的第i个线段的第j个贝塞尔插值点的坐标,j=1,......,nbezier-1。
使用上述方法,计算道路上所有贝塞尔插值点的里程数,以及道路上所有贝塞尔插值点的里程数。
S300,根据所获取的道路两侧的物体的信息及道路的已知坐标点的信息和贝塞尔插值点的信息,计算道路两侧的物体的坐标。
道路两侧的物体的类型可以包括点状物体、线状物体和二维形状物体。
对于道路两侧的物体的类型为点状物体的情况,可以利用插值后的道路上的各个已知点,以及点状物体对应道路的里程数及其与道路的距离,利用插值和坐标平移的方法更精确的计算出点状物体的实际坐标。参见图3,一个实施例中,步骤300可以包括以下具体子步骤:
S310,计算点状物体在经过插值平滑处理后的道路上的投影点的坐标。
对于里程数已知的点状物体,可以根据其里程数与道路上已知坐标点和贝塞尔插值点所组成的集合里的已知点里程数的比较,得到其在道路上的投影点的坐标。其中,已知点为道路上的所有已知坐标点和与道路对应的各个贝塞尔插值点组成的集合里的一个点,第i个已知点的坐标为(x*[i],y*[i])。
具体的,可以将点状物体的里程数与道路上的已知坐标点的里程数和与当前各个贝塞尔插值点的里程数对比:
若点状物体的里程数与道路上的已知坐标点和各个贝塞尔插值点中的一个已知点的里程数相等,则点状物体在经过插值平滑处理后的道路上的投影点的坐标()为已知点的坐标。
否则,通过公式:
计算点状物体在经过插值平滑处理后的道路上的投影点的坐标。其中,为点状物体的里程数,位于两个已知点的里程数l*[i]和l*[i+1]之间,两个已知点的坐标分别为(x*[i],y*[i])和(x*[i+1],y*[i+1])。已知点为该道路上的已知坐标点或与该道路对应的各个贝塞尔插值点。
S320,根据计算出的投影点的坐标计算点状物体的实际坐标。
可以采用dnew表示点状物体与该点状物体所在的道路之间的距离。且dnew为正值时,可以设定点状物体位于该道路从里程数零开始的方向(下行方向)的右侧。dnew为负值时,可以设定点状物体位于该道路从里程数零开始的方向(下行方向)的左侧。dnew为零时,可以设定点状物体正好位于该道路上。
对于点状物体在道路上的投影点,算法根据投影点位置的不同,采用不同的方法近似出投影点附近道路曲线的切线方向,从而可以将投影点向切线的垂线方向进行相应距离的坐标平移,由此得到点状物体的实际坐标。
具体的,若点状物体的里程数等于经过插值平滑处理后的道路的起点(x*[0],y*[0])的里程数,即点状物体的投影点坐标正好位于该道路的起点,投影点的切线方向即为经过插值平滑处理后的道路首段方向,点状物体的实际坐标为:
若点状物体的里程数等于经过插值平滑处理后的道路的终点 的里程数,即点状物体的投影点坐标正好位于该道路的终点,投影点的切线方向即为经过插值平滑处理后的道路末段方向,点状物体的实际坐标为:
若点状物体的里程数等于经过插值平滑处理后的道路的除了起点和终点外的其他一个已知点(x*[i],y*[i])的里程数,即点状物体的投影点坐标也正好位于该已知点处,投影点的切线方向即为经过插值平滑处理后的道路在该已知点上下游两个相邻已知点的连线方向,点状物体的实际坐标为:
若点状物体的里程数等于经过插值平滑处理后的道路中的两个相邻的已知点(x*[i],y*[i])和(x*[i+1],y*[i+1])的里程数之间,其投影点位于两个相邻的已知点(x*[i],y*[i])和(x*[i+1],y*[i+1])之间,其切线方向为该两个相邻的已知点(x*[i],y*[i])和(x*[i+1],y*[i+1])的连线方向,点状物体的实际坐标为:
对于道路两侧的物体的类型为线状物体的情况,可以将插值后的道路上在其起点和终点里程数范围内的相关坐标点通过坐标平移投影在物体的曲线上,再利用贝塞尔曲线对起点、终点和投影点之间的曲线进行插值平滑,得到相关贝塞尔插值点的坐标,最终得到物体曲线的完整坐标信息。参见图4,一个实施例中,步骤300可以包括以下具体子步骤:
S330,计算道路上的已知坐标点在线状物体的两端端点之间的投影点坐标。
首先根据线状物体的起点的里程数和终点的里程数,确定道路上在线状物体的起点的里程数和终点的里程数之间的已知坐标点。对于确定出的每一个已知坐标点,采用步骤S310中的方法,计算确定出的每一个已知坐标点在线状物体上的投影点的坐标。
S340,计算线状物体的两个端点和道路上的已知坐标点在线状物体的两端端点之间的投影点之间的贝塞尔插值点坐标。
将线状物体上的起点、终点和步骤S330中计算出的投影点视做已知点,采用步骤S210和S220中的方法,计算上述已知点两两之间的贝塞尔插值点坐标。
对于道路两侧的物体的类型为二维形状物体的情况,可以利用与线状物体相似的方法计算出其边界曲线的坐标信息,用边界曲线所包含的部分代表该二维形状物体。参见图5,一个实施例中,步骤300可以包括以下具体子步骤:
S350,计算道路上的已知坐标点在二维形状物体的边界上的投影点的坐标。
道路附近的二维形状物体具有明显的二维形状和边界,可以将其在二维平面上的边界视为一条曲线,然后使用步骤S330中的方法,计算道路上的已知坐标点在二维形状物体的边界上的投影点的坐标。
S360,计算二维形状物体的边界上的已知坐标点和道路上的已知坐标点在二维形状物体的边界上的投影点之间的贝塞尔插值点坐标。
由于边界曲线可以视为封闭曲线,因此其所有线段都可以使用三阶贝塞尔曲线进行插值平滑。最后使用插值平滑后的边界上的所有投影点和三阶贝塞尔曲线插值点的坐标代表该物体的坐标。
S400,输出地图,所述地图中包括经过插值平滑处理的道路的信息、道路两侧的物体的类型和计算出的道路两侧的物体的坐标。
其中,由于生成的地图中包括经过插值平滑处理后的道路的信息、道路两侧的物体的类型和计算出的道路两侧的物体的坐标,能够有效提高地图显示的精确性。其中,经过插值平滑处理后的道路的信息可以包括道路的已知坐标点的坐标和里程数以及贝塞尔插值点的坐标和里程数等信息。经过插值平滑处理后的道路的信息在地图中可以以道路曲线的形式显示出来,即步骤S200中的经过插值平滑处理后的道路曲线。
步骤S400中生成的地图,将道路及道路两侧物体的信息更加精确的呈现出,能够为用户对相关地区的布局规划和判断提供更好的依据,能够为用户处理道路沿线异常情况提供有力的依据,能够为实现道路沿线地区资源的自动化、信息化管理提供有力的信息支持。
可以理解的,本发明地理信息系统的地图生成方法中,所说的道路可以为一条道路,也可以为两条以上的道路。
上述地理信息系统的地图生成方法,充分挖掘地理信息系统中已有数据中的信息,以分段计算的方式得到道路曲线贝塞尔控制点,通过贝塞尔曲线对道路补充插值坐标点,从而使生成的地图中的道路显示效果更加平滑美观,且在利用里程数和距离等信息计算道路两侧物体坐标时,实现精确计算出道路两侧的点状物体、线状物体和二维形状物体的坐标的功能。另外,上述地理信息系统的地图生成方法可采用全自动运行模式,嵌入地理信息系统中,实现无人值守不间断自动计算,最大程度的利用已知数据中的信息,有效提高地理信息系统中道路两侧物体坐标计算的精确性,从而提高地图显示的精确性,并且能够避免重新测量所带来的人力、物理成本的上升和时间的消耗。
基于同一发明构思,本发明实施例提供一种地理信息系统的地图生成系统,由于此系统解决问题的原理与前述一种地理信息系统的地图生成方法相似,因此,该系统的实施可以按照前述方法的具体步骤实现,重复之处不再赘述。
参见图6,一个实施例中,本发明地理信息系统的地图生成系统包括信息获取模块100、道路插值平滑处理模块200、物体坐标计算模块300和地图生成模块400。其中:信息获取模块100,被配置以获取地理信息系统中道路的已知坐标点的信息和位于道路两侧的物体的信息。道路插值平滑处理模块200,被配置以根据信息获取模块100获取的道路的已知坐标点的信息,采用贝塞尔曲线对道路进行插值平滑处理,计算道路的贝塞尔插值点的信息。物体坐标计算模块300,被配置以根据信息获取模块100获取的道路两侧的物体的信息及道路的已知坐标点的信息和贝塞尔插值点的信息,计算道路两侧的物体的坐标。地图生成模块400,被配置以输出地图,地图中包括经过插值平滑处理的道路的信息、道路两侧的物体的类型和计算出的道路两侧的物体的坐标。其中,道路的已知坐标点的信息包括道路的已知坐标点的坐标和里程数。道路两侧的物体的信息包括物体的每个已知坐标点的里程数、物体的每个已知坐标点到对应的道路的距离和物体的类型。贝塞尔插值点的信息包括贝塞尔插值点的坐标和里程数。经过插值平滑处理后的道路的信息可以包括道路的已知坐标点的坐标和里程数以及贝塞尔插值点的坐标和里程数等信息。
参见图7,一个实施例中,道路插值平滑处理模块200可以包括贝塞尔控制点计算单元210和贝塞尔插值点计算单元220。其中,贝塞尔控制点计算单元210,被配置以根据信息获取模块100获取的道路的已知坐标点的信息,计算道路的贝塞尔控制点的坐标。贝塞尔插值点计算单元220,被配置以根据计算出的贝塞尔控制点计算道路的贝塞尔插值点的坐标和里程数。
参见图8,一个实施例中,物体坐标计算模块300可以包括投影点坐标计算单元310和物体处理单元320。
若道路两侧的物体的类型为点状物体,则投影点坐标计算单元310,被配置以计算点状物体在经过插值平滑处理后的道路上的投影点的坐标。物体处理单元320,被配置以根据计算出的投影点的坐标计算点状物体的实际坐标。
若道路两侧的物体的类型为线状物体,则投影点坐标计算单元310,被配置以计算道路上的已知坐标点在线状物体的两端端点之间的投影点坐标。物体处理单元320,被配置以计算线状物体的两个端点和道路上的已知坐标点在线状物体的两端端点之间的投影点之间的贝塞尔插值点坐标。
若道路两侧的物体的类型为二维形状物体,则投影点坐标计算单元310,被配置以计算道路上的已知坐标点在二维形状物体的边界上的投影点坐标。物体处理单元320,被配置以计算二维形状物体的边界上的已知坐标点和道路上的已知坐标点在二维形状物体的边界上的投影点之间的贝塞尔插值点坐标。
可以理解的,本发明地理信息系统的地图生成系统中,所说的道路可以为一条道路,也可以为两条以上的道路。
上述地理信息系统的地图生成系统,能够充分挖掘地理信息系统中已有数据中的信息,采用贝塞尔曲线计算道路的插值点的信息,从而对道路进行插值平滑处理,并利用道路两侧的物体的信息及道路的已知坐标点的信息和贝塞尔插值点的信息,精确计算出道路两侧的物体的坐标,从而最大程度的利用地理信息系统中已知数据的信息,有效提高地理信息系统中道路两侧物体坐标计算的精确性,有效提高地图显示的精确性,并且能够避免重新测量所带来的人力、物理成本的上升和时间的消耗。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。