一种沿轨迹线生成地图瓦片坐标的方法与流程

文档序号:11864721阅读:来源:国知局

技术特征:

1.一种沿轨迹线生成地图瓦片坐标的方法,其特征在于:包括以下步骤:

S1.给定开始点和结束点的经纬度坐标数据;

S2.计算开始点和结束点的瓦片坐标;

S3.根据开始点和结束点的经纬度坐标数据计算弧度值;

S4.令当前瓦片坐标等于开始点瓦片坐标;

S5.记录当前点瓦片坐标,并判断当前点瓦片坐标和结束点瓦片坐标是否相同:

(1)当前点瓦片坐标和结束点瓦片坐标相同,转至步骤S9;

(2)当前点瓦片坐标与结束点瓦片坐标不同,进入步骤S6;

S6.计算当前点瓦片坐标所包含的经纬度范围;

S7.根据经纬度范围依次计算当前点瓦片坐标的左上、左下、右上、右下四个顶点的经纬度坐标,分别记为lu、ld、ru、rd;

S8.根据弧度值所在区间,结合开始点、结束点的连线与当前点瓦片坐标四个顶点之间的连线的相交关系,对当前点瓦片坐标进行更新,更新后返回步骤S5;

S9.输出记录的所有瓦片坐标。

2.根据权利要求1所述的一种沿轨迹线生成地图瓦片坐标的方法,其特征在于:所述的步骤S1包括以下子步骤:

S01.依次给定两个初始点的经纬度数据;

S02.以第一个点作为开始点,第二个点作为结束点,得到开始点和结束点的经纬度数据。

3.根据权利要求1所述的一种沿轨迹线生成地图瓦片坐标的方法,其特征在于:步骤S8中,需要结合瓦片坐标系的类型对当前瓦片坐标更新。

4.根据权利要求3所述的一种沿轨迹线生成地图瓦片坐标的方法,其特征在于:所述的瓦片坐标系类型包括Google瓦片坐标系和TMS瓦片坐标系。

5.根据权利要求4所述的一种沿轨迹线生成地图瓦片坐标的方法,其特征在于:所述的瓦片坐标系为Google瓦片坐标系时,所述的步骤S8包括以下子步骤:

S801.判断弧度值是否处于(0,π/2]区间;

(1)弧度值处于(0,π/2]区间,开始点与结束点连线向右上延伸,分为以下三种情况:

① 如果开始点与结束点连线既与lu和ru的连线相交,也与ru和rd的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的行坐标减1,列坐标加1,并返回步骤S5;

② 如果开始点与结束点连线只与lu和ru的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的行坐标减1,并返回步骤S5;

③ 如果开始点与结束点连线只与ru和rd的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的列坐标加1;

(2)弧度值不处于(0,π/2]区间,进入步骤S802;

S802.判断弧度值是否处于(π/2,π]区间:

(1)弧度值处于(π/2,π]区间,开始点与结束点连线向左上延伸,分为以下三种情况:

① 如果开始点与结束点连线既与lu和ru的连线相交,也与lu和ld的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标行坐标减去1,列坐标减1,并返回步骤S5;

② 如果开始点与结束点连线只与lu和ru的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的行坐标减1,并返回步骤S5;

③ 如果开始点与结束点连线只与lu和ld的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的列坐标减1,并返回步骤S5;

(2) 弧度值不处于(π/2,π]区间,进入步骤S803;

S803.判断弧度值是否处于(-π, -π/2]区间:

(1)弧度值处于(-π, -π/2]区间,开始点与结束点连线向左下延伸,分为以下三种情况:

① 如果开始点与结束点连线既与ld和rd的连线相交,也与及lu和ld的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的行坐标加1、列坐标减1,并返回步骤S5;

② 如果开始点与结束点连线只与ld和rd的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的行坐标加1,并返回步骤S5;

③ 如果开始点与结束点连线只与lu和ld的连线相交,对当前点瓦片坐标进行更新,将当前点瓦片坐标中的列坐标减1,并返回步骤S5;

(2)弧度值不处于(-π, -π/2]区间,进入步骤S804;

S804.认为弧度值处于(-π/2,0]区间,开始点与结束点的连线向右下延伸,分为以下三种情况:

① 如果开始点与结束点连线既与ld和rd的连线相交,也与ru和rd的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的行坐标加1、列坐标加1,并返回步骤S5;

② 如果开始点与结束点连线只与ld和rd的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的行坐标加1,并返回步骤S5;

③ 如果开始点与结束点连线只与ru和rd的连线相交,对当前点瓦片坐标进行更新,将当前点瓦片坐标中的列坐标加1,并返回步骤S5。

6.根据权利要求4所述的一种沿轨迹线生成地图瓦片坐标的方法,其特征在于:所述的瓦片坐标系为TMS瓦片坐标系时,所述的步骤S8包括以下子步骤:

S811.判断弧度值是否处于(0,π/2]区间;

(1)弧度值处于(0,π/2]区间,开始点与结束点连线向右上延伸,分为以下三种情况:

① 如果开始点与结束点连线既与lu和ru的连线相交,也与ru和rd的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的行坐标加1,列坐标加1,并返回步骤S5;

② 如果开始点与结束点连线只与lu和ru的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的行坐标加1,并返回步骤S5;

③ 如果开始点与结束点连线只与ru和rd的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的列坐标加1;

(2)弧度值不处于(0,π/2]区间,进入步骤S812;

S812.判断弧度值是否处于(π/2,π]区间:

(1)弧度值处于(π/2,π]区间,开始点与结束点连线向左上延伸,分为以下三种情况:

① 如果开始点与结束点连线既与lu和ru的连线相交,也与lu和ld的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标行坐标加1,列坐标减1,并返回步骤S5;

② 如果开始点与结束点连线只与lu和ru的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的行坐标加1,并返回步骤S5;

③ 如果开始点与结束点连线只与lu和ld的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的列坐标减1,并返回步骤S5;

(2) 弧度值不处于(π/2,π]区间,进入步骤S813;

S813.判断弧度值是否处于(-π, -π/2]区间:

(1)弧度值处于(-π, -π/2]区间,开始点与结束点连线向左下延伸,分为以下三种情况:

① 如果开始点与结束点连线既与ld和rd的连线相交,也与及lu和ld的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的行坐标减1、列坐标减1,并返回步骤S5;

② 如果开始点与结束点连线只与ld和rd的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的行坐标减1,并返回步骤S5;

③ 如果开始点与结束点连线只与lu和ld的连线相交,对当前点瓦片坐标进行更新,将当前点瓦片坐标中的列坐标减1,并返回步骤S5;

(2)弧度值不处于(-π, -π/2]区间,进入步骤S814;

S814.认为弧度值处于(-π/2,0]区间,开始点与结束点的连线向右下延伸,分为以下三种情况:

① 如果开始点与结束点连线既与ld和rd的连线相交,也与ru和rd的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的行坐标减1、列坐标加1,并返回步骤S5;

② 如果开始点与结束点连线只与ld和rd的连线相交,对当前点瓦片坐标进行更新:将当前点瓦片坐标中的行坐标减1,并返回步骤S5;

③ 如果开始点与结束点连线只与ru和rd的连线相交,对当前点瓦片坐标进行更新,将当前点瓦片坐标中的列坐标加1,并返回步骤S5。

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