1.一種沿軌跡線生成地圖瓦片坐標(biāo)的方法,其特征在于:包括以下步驟:
S1.給定開(kāi)始點(diǎn)和結(jié)束點(diǎn)的經(jīng)緯度坐標(biāo)數(shù)據(jù);
S2.計(jì)算開(kāi)始點(diǎn)和結(jié)束點(diǎn)的瓦片坐標(biāo);
S3.根據(jù)開(kāi)始點(diǎn)和結(jié)束點(diǎn)的經(jīng)緯度坐標(biāo)數(shù)據(jù)計(jì)算弧度值;
S4.令當(dāng)前瓦片坐標(biāo)等于開(kāi)始點(diǎn)瓦片坐標(biāo);
S5.記錄當(dāng)前點(diǎn)瓦片坐標(biāo),并判斷當(dāng)前點(diǎn)瓦片坐標(biāo)和結(jié)束點(diǎn)瓦片坐標(biāo)是否相同:
(1)當(dāng)前點(diǎn)瓦片坐標(biāo)和結(jié)束點(diǎn)瓦片坐標(biāo)相同,轉(zhuǎn)至步驟S9;
(2)當(dāng)前點(diǎn)瓦片坐標(biāo)與結(jié)束點(diǎn)瓦片坐標(biāo)不同,進(jìn)入步驟S6;
S6.計(jì)算當(dāng)前點(diǎn)瓦片坐標(biāo)所包含的經(jīng)緯度范圍;
S7.根據(jù)經(jīng)緯度范圍依次計(jì)算當(dāng)前點(diǎn)瓦片坐標(biāo)的左上、左下、右上、右下四個(gè)頂點(diǎn)的經(jīng)緯度坐標(biāo),分別記為lu、ld、ru、rd;
S8.根據(jù)弧度值所在區(qū)間,結(jié)合開(kāi)始點(diǎn)、結(jié)束點(diǎn)的連線與當(dāng)前點(diǎn)瓦片坐標(biāo)四個(gè)頂點(diǎn)之間的連線的相交關(guān)系,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新,更新后返回步驟S5;
S9.輸出記錄的所有瓦片坐標(biāo)。
2.根據(jù)權(quán)利要求1所述的一種沿軌跡線生成地圖瓦片坐標(biāo)的方法,其特征在于:所述的步驟S1包括以下子步驟:
S01.依次給定兩個(gè)初始點(diǎn)的經(jīng)緯度數(shù)據(jù);
S02.以第一個(gè)點(diǎn)作為開(kāi)始點(diǎn),第二個(gè)點(diǎn)作為結(jié)束點(diǎn),得到開(kāi)始點(diǎn)和結(jié)束點(diǎn)的經(jīng)緯度數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的一種沿軌跡線生成地圖瓦片坐標(biāo)的方法,其特征在于:步驟S8中,需要結(jié)合瓦片坐標(biāo)系的類型對(duì)當(dāng)前瓦片坐標(biāo)更新。
4.根據(jù)權(quán)利要求3所述的一種沿軌跡線生成地圖瓦片坐標(biāo)的方法,其特征在于:所述的瓦片坐標(biāo)系類型包括Google瓦片坐標(biāo)系和TMS瓦片坐標(biāo)系。
5.根據(jù)權(quán)利要求4所述的一種沿軌跡線生成地圖瓦片坐標(biāo)的方法,其特征在于:所述的瓦片坐標(biāo)系為Google瓦片坐標(biāo)系時(shí),所述的步驟S8包括以下子步驟:
S801.判斷弧度值是否處于(0,π/2]區(qū)間;
(1)弧度值處于(0,π/2]區(qū)間,開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線向右上延伸,分為以下三種情況:
① 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線既與lu和ru的連線相交,也與ru和rd的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的行坐標(biāo)減1,列坐標(biāo)加1,并返回步驟S5;
② 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與lu和ru的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的行坐標(biāo)減1,并返回步驟S5;
③ 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與ru和rd的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的列坐標(biāo)加1;
(2)弧度值不處于(0,π/2]區(qū)間,進(jìn)入步驟S802;
S802.判斷弧度值是否處于(π/2,π]區(qū)間:
(1)弧度值處于(π/2,π]區(qū)間,開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線向左上延伸,分為以下三種情況:
① 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線既與lu和ru的連線相交,也與lu和ld的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)行坐標(biāo)減去1,列坐標(biāo)減1,并返回步驟S5;
② 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與lu和ru的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的行坐標(biāo)減1,并返回步驟S5;
③ 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與lu和ld的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的列坐標(biāo)減1,并返回步驟S5;
(2) 弧度值不處于(π/2,π]區(qū)間,進(jìn)入步驟S803;
S803.判斷弧度值是否處于(-π, -π/2]區(qū)間:
(1)弧度值處于(-π, -π/2]區(qū)間,開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線向左下延伸,分為以下三種情況:
① 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線既與ld和rd的連線相交,也與及l(fā)u和ld的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的行坐標(biāo)加1、列坐標(biāo)減1,并返回步驟S5;
② 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與ld和rd的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的行坐標(biāo)加1,并返回步驟S5;
③ 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與lu和ld的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新,將當(dāng)前點(diǎn)瓦片坐標(biāo)中的列坐標(biāo)減1,并返回步驟S5;
(2)弧度值不處于(-π, -π/2]區(qū)間,進(jìn)入步驟S804;
S804.認(rèn)為弧度值處于(-π/2,0]區(qū)間,開(kāi)始點(diǎn)與結(jié)束點(diǎn)的連線向右下延伸,分為以下三種情況:
① 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線既與ld和rd的連線相交,也與ru和rd的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的行坐標(biāo)加1、列坐標(biāo)加1,并返回步驟S5;
② 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與ld和rd的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的行坐標(biāo)加1,并返回步驟S5;
③ 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與ru和rd的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新,將當(dāng)前點(diǎn)瓦片坐標(biāo)中的列坐標(biāo)加1,并返回步驟S5。
6.根據(jù)權(quán)利要求4所述的一種沿軌跡線生成地圖瓦片坐標(biāo)的方法,其特征在于:所述的瓦片坐標(biāo)系為T(mén)MS瓦片坐標(biāo)系時(shí),所述的步驟S8包括以下子步驟:
S811.判斷弧度值是否處于(0,π/2]區(qū)間;
(1)弧度值處于(0,π/2]區(qū)間,開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線向右上延伸,分為以下三種情況:
① 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線既與lu和ru的連線相交,也與ru和rd的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的行坐標(biāo)加1,列坐標(biāo)加1,并返回步驟S5;
② 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與lu和ru的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的行坐標(biāo)加1,并返回步驟S5;
③ 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與ru和rd的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的列坐標(biāo)加1;
(2)弧度值不處于(0,π/2]區(qū)間,進(jìn)入步驟S812;
S812.判斷弧度值是否處于(π/2,π]區(qū)間:
(1)弧度值處于(π/2,π]區(qū)間,開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線向左上延伸,分為以下三種情況:
① 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線既與lu和ru的連線相交,也與lu和ld的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)行坐標(biāo)加1,列坐標(biāo)減1,并返回步驟S5;
② 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與lu和ru的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的行坐標(biāo)加1,并返回步驟S5;
③ 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與lu和ld的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的列坐標(biāo)減1,并返回步驟S5;
(2) 弧度值不處于(π/2,π]區(qū)間,進(jìn)入步驟S813;
S813.判斷弧度值是否處于(-π, -π/2]區(qū)間:
(1)弧度值處于(-π, -π/2]區(qū)間,開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線向左下延伸,分為以下三種情況:
① 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線既與ld和rd的連線相交,也與及l(fā)u和ld的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的行坐標(biāo)減1、列坐標(biāo)減1,并返回步驟S5;
② 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與ld和rd的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的行坐標(biāo)減1,并返回步驟S5;
③ 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與lu和ld的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新,將當(dāng)前點(diǎn)瓦片坐標(biāo)中的列坐標(biāo)減1,并返回步驟S5;
(2)弧度值不處于(-π, -π/2]區(qū)間,進(jìn)入步驟S814;
S814.認(rèn)為弧度值處于(-π/2,0]區(qū)間,開(kāi)始點(diǎn)與結(jié)束點(diǎn)的連線向右下延伸,分為以下三種情況:
① 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線既與ld和rd的連線相交,也與ru和rd的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的行坐標(biāo)減1、列坐標(biāo)加1,并返回步驟S5;
② 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與ld和rd的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新:將當(dāng)前點(diǎn)瓦片坐標(biāo)中的行坐標(biāo)減1,并返回步驟S5;
③ 如果開(kāi)始點(diǎn)與結(jié)束點(diǎn)連線只與ru和rd的連線相交,對(duì)當(dāng)前點(diǎn)瓦片坐標(biāo)進(jìn)行更新,將當(dāng)前點(diǎn)瓦片坐標(biāo)中的列坐標(biāo)加1,并返回步驟S5。