电子地图的纠偏方法

文档序号:6385735阅读:2418来源:国知局
专利名称:电子地图的纠偏方法
技术领域
本发明涉及一种一般图像数据的处理方法,进一步涉及一种电子地图的纠偏方法。
背景技术
原有的智能调度系统大多采用本地地图进行地图服务、如maplnfo地图,ArcGIS地图等,但地图的服务效果及功能已不如现今流行的google地图。针对公交行业需要在地图上实时反应上传回来的GPS点坐标,Google电子地图存在偏移的问题存在。这就造成了车辆传来的GPS坐标点无法准确的反馈在地图上。针对于各行业应用的不同,解决的方法也不尽相同。以往可行的纠偏解决办法一般都是建立自己的纠偏数据库,但针对全部经纬度点建立起来的纠偏库数据量庞大。针对智能调度系统中gis系统的车辆实时监控功能和轨迹回放功能,需要纠偏的数据集庞大且与数据库交互频繁,单一查询纠偏库会对数据库造成很大的压力,且返回的速度不能保证。如果开发一种应用于智能调度系统应用的纠偏算法,成为一个亟待解决的问题。

发明内容
本方法开发的目的在于提供一种数据交互量较小的电子地图纠偏方法;进一步的目的在于提供一种基于google地图应用的数据交互量较小的电子地图纠偏方法。本方法通过以下技术方案实现步骤一栅格划分,将需要纠偏区域的电子地图按照南北方向等分为N个平行区域、东西方向划M个平行区域,形成M*N个矩形栅格;步骤二 偏移量计算,确定每个栅格中心的电子地图经纬度X1M、YIn,以及实际物理经纬度X0M、YOn,计算并存储每个栅格的经度偏移量X2m、Y2n,X2m=X1m-X0m, Y2n=Y1n_Y0n ;步骤三栅格搜索,对于每个需要转换的数据,首先确定其所在的栅格,然后按照所在栅格中心偏移量X2M、Y2N,进行纠偏。所述步骤一的栅格划分方法为,将栅格划分为3级,按照所划分的一级栅格数据将各栅格的边界数据分别写入第一 Excel表,字段分别为边界右上角点的纬度值、边界右上角点的经度值、边界左下角点的纬度值、边界左下角点的经度值、一级栅格编号、所含二级栅格编号;在一级栅格内,将一级栅格进行二次划分,将划分好的区域边界数据写入第二Excel表,字段分别为边界右上角点纬度值、边界右上角点经度值、边界左下角点纬度值、边界左下角点经度值、二级栅格编号、所属一级栅格编号、所含三级栅格编号;在二级栅格内,将二级栅格进行二次划分,将栅格边界数据及栅格中心点数据通过导入程序写到第三Excel表中,字段分别为边界右上角点的纬度值、边界右上角点的经度值、边界左下角点的纬度值、边界左下角点的经度值、栅格的经度偏移量X2M、栅格的纬度偏移量X2M、所属二级栅格编号。
所述步骤三的栅格搜索方法为,逐级建立栅格边界数组,第一个数据点搜索时,先按一级数组进行搜索,然后逐级递增。所述步骤三的栅格具体搜索方法为,定义边界变量P,将第一个数据点所在三级栅格的边界变量赋给边界变量P,第二个数据点栅格搜索时,首先判断其是否在边界变量P内,如果在P内,直接使用第一个数据点的经度偏移量和纬度偏移量,如果不在,则在边界变量P的上一级栅格边界数组中进行遍历,直到找到边界,并将此时的边界变量付给边界变量P ;下一个数据点的搜索方法依次类推。所述步骤二中偏移量的计算方法如下引入google地图和百度地图模块,将栅格中心在google地图的经纬度值传入百度接口,利用百度地图的googleToBaidu纠偏方法,先将goole地图经纬度值转化为百度地图的经讳度值;定义google地图上的点坐标值为google_x、google_y,相当于X1M、YIn ;将转化后的百度经纬度坐标定义为xl,yl,将其看做真实的经纬度值,调用百度地图的gpsToBaidu纠偏方法,将xl, xl转化为百度坐标x2, y2 ;定义真实坐标值为gps_x、gps_y,相当于实际物理经纟韦度X0M、Y0N,利用二次拟合的方法,通过公式gps_x=2xl_x2, gps_y=2yl-y2得出的值为真实的gps坐标;将google地图上的经纬度值与真实的经纬度坐差值 gps 运算,BP X2m=offset_x=googIe_x-gps_x=XIm-XOm, Y2N=offset_y=googIe_y-gps_Y=YIn-YOn ;得出的结果便是该栅格区域内的偏移量。本方法相对于现有技术方法有如下优点1、引入栅格划分方法,将边界区域坐标与行政区域坐标相结合。针对城市进行纠偏值可大大缩小纠偏数据的查询量。2、在纠偏方法中引入边界判断机制。当需要纠偏的结果集中两点的距离较近时会处于同一个区块内,这样通过边界判断可直接返回偏移量,大大减少了数据库的交互,提高了性能。


图1是实施例方法的逻辑框图。
具体实施例方式以中国地图为例,说明本方法的应用。(一)栅格的划分方法在中国区域内取东经135. 04167175293度,北纬53. 5499992370605度,西经
73.6666641235352,南纬3. 86666655540466度作为基准参数。一级栅格将中国区域东西方向等分为3块,南北方向等分为4块;二级栅格将每个一级栅格等分为20 X 20的区域;三级栅格将每个二级栅格等分为10X 10的区域。引入google mapapi,通过var polyline=newgoogle, maps. Polyline ({path});方法在地图上显示按比例划分的栅格区域。(二)形成本地数据文件当栅格区域划分完成后,编写读写本地Excel文件。通过程序将各级栅格区域的边界坐标点存入Excel本地文件中。并根据第三级栅格的边界坐标值计算第三级栅格的中点坐标值。读取本地Excel文件的方法是通过c#语言创建Excel表格,通过操作微软提供的Excel接口,按照基准点参数和各级栅格指定的比例,将各边界的坐标信息存入指定例的Excel文件中。(三)计算第三级栅格区域内的偏移量本地文件形成后,引入百度地图纠偏接口,通过c#语言及javascript语言编写读取本地文件程序及计算偏移值程序。计算由google地图的偏移值。具体计算方法如下调用百度接口,将第三级栅格区域内的中心点的经纬度值传入百度接口,利用百度地图的googleToBaidu纠偏方法,先将goole地图经纬度值转化为百度地图的经纬度值。定义google地图上的点坐标值为google_x、google_y。将转化后的百度经纬度坐标定义为xl,yl,将其看做真实的经纬度值,调用百度地图的gpsToBaidu纠偏方法,将xl, xl转化为百度坐标x2, y2。利用二次拟合的方法,通过公式gps_x=2xl_x2, gps_y=2yl-y2得出的值为真实的经讳度坐标。将google地图上的经讳度与真实的gps经讳度坐差值运算,即offset_x=google_x-gps_x, offset_y=google_y_gps_y。得出的结果便是该栅格区域内的偏移量。偏移量计算完成后,再通过读写Excel文件程序,将偏移量写回第三级栅格区域边界表中。制作纠偏数据库在pl/sql中,按照栅格划分的级别建立三张数据表,分别为第一 Excel表、第二 Excel表、第三Excel表。第一 Excel表字段分别为边界右上角点的纬度值、边界右上角点的经度值、边界左下角点的纬度值、边界左下角点的经度值、一级栅格编号、所含二级栅格编号;第二 Excel表字段分别为边界右上角点纬度值、边界右上角点经度值、边界左下角点纬度值、边界左下角点经度值、二级栅格编号、所属一级栅格编号、所含三级栅格编号;第三Excel表字段分别为边界右上角点的纬度值、边界右上角点的经度值、边界左下角点的纬度值、边界左下角点的经度值、栅格的经度偏移量X2M、栅格的纬度偏移量X2M、所属二级栅格编号。编写统一的纠偏接口 根据用法的不同,纠偏接口中的方法包括正向纠偏方法,即由gps坐标值转化为google地图坐标值;逆向纠偏方法,即google地图纠偏值转化为gps坐标值。正向纠偏方法用于在地图上进行准确的显示,逆向纠偏值,用于在地图上取点存入到标准的数据库中,供报站工具等程序使用。正向纠偏方法首先以数据库传回来的点结果集中的第一个块作为基准点,然后通过循环三张数据表,逐级缩小栅格,判断该点最终落在哪一个三级栅格内。将该栅格的编号值、边界坐标信息及偏移量信息取出。然后通过gps_x+offset_x=google_x, gps_y+offset_y=google_y的方法返回正确的点。当计算第二个点的时候,首先应用第一次取出的边界点形成的区域来判断该点是否也在第一个区域内,如果在,则返回上一个区域内的纠偏值。如果不在,则通过第一个区域栅格编号值查找离该栅格最近的十个栅格的边界数据,依次循环这十个栅格判断该点在哪个栅格内,就返回哪个栅格内的偏移量。同时在确认栅格的同时,将判断边界更换为此时的栅格边界。如果最近的十个栅格内也没有该点的数据,则返回到第二级栅格区域内进行查找判断,再通过二级栅格去确认三级栅格的位置。逆向纠偏的方法与正向纠偏方法基本相同,只是最后反回的点是通过google_x-offset_x=gps_x, google_y-offset_y=gps_y 的公式计算的。(四)实际应用一车辆历史轨迹回放模块使用纠偏算法车辆历史轨迹回放是用于显示某条线路上的一辆车在该工作日内所行走的轨迹点。智能调度管理系统通过GPRS通讯传输每天公交车产生的大量GPS数据。历史轨迹回放的数据就依托于上传的GPS数据。首先对单车的数据量进行分析。I条定位信息=85字节GPS定位间隔=10秒I辆公交车工作时间=15小时单车日产生GPS数据条数15小时*60分钟*60秒/10秒=5400条如果要显示该车的历史轨迹,则需要在地图上显示5400个点。为了准确的显示所有轨迹点的位置,需要采用纠偏算法对轨迹点进行纠偏。如果单一的通过纠偏数据库进行纠偏值的查找,则会造成频烦的数据库交互,对数据库的压力和影响都会提高。另一方面,在返回正确坐标点的速度上由于多次交互数据库也会造成返回速度缓慢的问题,这样就是影响用户的体验。为了解决轨迹点的偏移问题及返回轨迹点的速度问题,将通过数据库查询过来的信息按照需要分别存入相应的数组,当执行显示程序时,首先将第一个数据点作为基准点,通过循环边界数据判断该点所处的栅格区域的位置,返回该栅格的编号值,边界坐标值及偏移量值,通过与偏移量值进行差值运算返回正确的轨迹点信息,在返回轨迹点的同时,将该边界存为全局变量,用于之后的边界判断。返回第一个点的正确轨迹点后开始判断下一个点的正确轨迹点。此时,判断的方法不再是直接去查找数据库了,而是通过全局变量的边界对象为判断该点是否也在此边界内,由于轨迹回放时相互两个轨迹点的距离比较近,因此在同一个区域内的概率很大。当这种情况发生时,则直接返回该区域内的偏移量值,然后通过差值运算直接返回正确的轨迹点。如果此时判断的结果是该点不在全局变量所存的区域内时,则需要返回到二级栅格进行循环计算,得出该点所处的第三级栅区域的位置,在将此区域存为全局变量,再继续通过上述方法进行轨迹点的纠偏。(五)实际应用——绘制线路模块使用纠偏方法一般在使用电子地图时,应用纠偏算法大多都是为了正确显示位置信息,即都是由GPS坐标转化为google地图坐标进行显示。但是针对于公交行业的具体应用是会有一种绘制线路的需要,既工作人员通过在地图上绘制正确的公交线路,或改变原有的公交线路。当更改完毕后,需要将这些位置信息全部存入数据库中。如果在没有外部用应时,可以将地图上取来的经纬度信息直接存入数据库,下次进行显示的时候则也不需要进行加偏处理,直接显示就可以在地图上看到效果。但针对于智能调度系统来说,除了调度在应用程序时使用数据库,报站工具也需要正确的位置信息。由于车辆上所装的车载机计算的是标准的GPS坐标,为了报站的准确,则在绘制线路时不能直接将google地图上取来的经纬度值直接存入数据库,此时需要将google地图坐标,反向转换成GPS坐标。绘制线路模块应用纠偏算法时与轨迹回放模块大体相同,也是通过判断点所处的栅格区域的位置来返回正确的坐标点,只是在坐差值运算时,需要调用逆向纠偏方法。当所以的点全部计算完毕后,一次性的存入数据库,而不同于轨迹回放单个坐标点逐一显示,逐一操作。
权利要求
1.电子地图的纠偏方法,其特征在于,包括步骤一栅格划分,将需要纠偏区域的电子地图按照南北方向等分为N个平行区域、东西方向划M个平行区域,形成M*N个矩形栅格;步骤二 偏移量计算,确定每个栅格中心的电子地图经纬度X1M、YIn,以及实际物理经纬度X0M、YOn,计算并存储每个栅格的经度偏移量X2m、Y2n,X2m=X1m-X0m, Y2n=Y1n_Y0n ;步骤三栅格搜索,对于每个需要转换的数据,首先确定其所在的栅格,然后按照所在栅格中心偏移量X2M、Y2N,进行纠偏。
2.根据权利要求1所述电子地图的纠偏方法,其特征在于,所述步骤一的栅格划分方法为,将栅格划分为3级,按照所划分的一级栅格数据将各栅格的边界数据分别写入第一Excel标,字段分别为边界右上角点的纬度值、边界右上角点的经度值、边界左下角点的纬度值、边界左下角点的经度值、栅格编号;在一级栅格内,将一级栅格进行二次划分,将划分好的区域边界数据写入第二 Excel表,字段分别为边界右上角点纬度值、边界右上角点经度值、边界左下角点纬度值、边界左下角点经度值、二级栅格编号、所对应的一级栅格编号;在二级栅格内,将二级栅格进行二次划分,将栅格边界数据及栅格中心点数据通过导入程序写到第三Excel表中,字段分别为边界右上角点的纬度值、边界右上角点的经度值、边界左下角点的纬度值、边界左下角点的经度值、栅格的经度偏移量X2M、栅格的纬度偏移量 X2m。
3.根据权利要求2所述电子地图的纠偏方法,其特征在于,所述步骤三的栅格搜索方法为,逐级建立栅格边界数组,第一个数据点搜索时,先按一级数组进行搜索,然后逐级递士 SS>曰O
4.根据权利要求3所述电子地图的纠偏方法,其特征在于,所述步骤三的栅格搜索方法为,定义边界变量P,将第一个数据点所在三级栅格的边界变量赋给边界变量P,第二个数据点栅格搜索时,首先判断其是否在边界变量P内,如果在P内,直接使用第一个数据点的经度偏移量和纬度偏移量,如果不在,则在边界变量P的上一级栅格边界数组中进行遍历,直到找到边界,并将此时的边界变量付给边界变量P;下一个数据点的搜索方法依次类推。
5.根据权利要求1至4任何一项所述电子地图的纠偏方法,其特征在于,所述步骤二中偏移量的计算方法如下引入google地图和百度地图模块,将栅格中心在google地图的经纬度值传入百度接口,利用百度地图的googleToBaidu纠偏方法,先将goole地图经纬度值转化为百度地图的经讳度值;定义google地图上的点坐标值为google_x、google_y,相当于X1M、YIn ;将转化后的百度经纬度坐标定义为xl,yl,将其看做真实的经纬度值,调用百度地图的gpsToBaidu纠偏方法,将xl, xl转化为百度坐标x2, y2 ;定义真实坐标值为gps_x、gps_y,相当于实际物理经纟韦度ΧΟΜ、YON,利用二次拟合的方法,通过公式gps_x=2xl-x2, gps_y=2yl-y2得出的值为真实的gps坐标;将google地图上的经纬度值与真实的经纬度坐差值 gps 运算,BP X2m=offset_x=googIe_x-gps_x=XIm-XOm, Y2N=offset_y=googIe_y-gps_Y=YIn-YOn ;得出的结果便是该栅格区域内的偏移量。
全文摘要
本发明涉及一种一般图像数据的处理方法,进一步涉及一种电子地图的纠偏方法。步骤一栅格划分,将需要纠偏区域的电子地图形成M*N个矩形栅格;步骤二偏移量计算,计算并存储每个栅格的经度偏移量X2M、Y2N,X2M=X1M-X0M,Y2N=Y1N-Y0N;步骤三栅格搜索,进行纠偏。本方法相对于现有技术方法有如下优点引入栅格划分方法,将边界区域坐标与行政区域坐标相结合。针对城市进行纠偏值可大大缩小纠偏数据的查询量。
文档编号G06F17/30GK103034737SQ201210580590
公开日2013年4月10日 申请日期2012年12月27日 优先权日2012年12月27日
发明者靳展, 李胜利, 王红广, 张东旭 申请人:天津市通卡公用网络系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1