Google maps切割方法
<!--[if !supportLists]-->1. <!--[endif]-->縮放等級(jí)與圖幅數(shù)
Google maps的縮放等級(jí)是0-17共18個(gè)等級(jí),比例尺與縮放等級(jí)是成反比的(比例尺越大地圖越詳細(xì)),其第17等級(jí)只有一幅世界地圖,某一等級(jí)下所含地圖數(shù)的計(jì)算公式為
<!--[if !supportLists]-->2. <!--[endif]-->圖幅生成與編號(hào)
可以假設(shè)Google maps在每一縮放等級(jí)下的地圖上都建立了一個(gè)坐標(biāo)系,坐標(biāo)原點(diǎn)為(西經(jīng)180度,北緯90度),正方向分別為向東向南,經(jīng)度跨度為360度,緯度跨度為180度。一般情況下,為便于理解可以這么認(rèn)為,若在縮放等級(jí)n的情況下,共需生成(2<!--[endif]-->^(17-n))^2副圖片,其編號(hào)形如(x,y)(0<=x<=
但由于制 圖區(qū)域的范圍、形狀和地理位置等的不同需要選擇不同的投影方式,以減少投影成平面地圖后的誤差值。在世界地圖中常用墨卡托投影繪制世界航線圖、世界交通圖 與世界時(shí)區(qū)圖;我國(guó)出版的世界地圖多采用等差分緯線多圓錐投影,選用這個(gè)投影,對(duì)于表現(xiàn)中國(guó)形狀以及與四鄰的對(duì)比關(guān)系較好,但投影的邊緣地區(qū)變形較大。根 據(jù)不同的需要還有許多其它的投影方式,在此不再贅述,當(dāng)然國(guó)家基本比例尺地形圖的投影、分幅等,是由國(guó)家測(cè)繪主管部門(mén)研究制訂,不容許任意改變的,另外編 制小區(qū)域大比例尺地圖,無(wú)論采用什么投影,變形都是很小的。
由于Google是 面向全世界的,故其不同比例尺下并且相同比例尺下不同地區(qū)不同國(guó)家其投影方式都是不同的,我猜測(cè)為使整個(gè)世界范圍內(nèi)的地圖達(dá)到相對(duì)的精確是以犧牲海洋兩極 等人煙稀少地圖的變形為代價(jià)的,當(dāng)然這也只是針對(duì)小比例尺下的地圖,隨著比例尺的不斷放大這種投影上的差距會(huì)越來(lái)越小。
<!--[if !supportLists]-->3. <!--[endif]-->結(jié)論
每個(gè)切割的小圖片是256*256(像素),常識(shí)來(lái)判斷每個(gè)小圖片代表的實(shí)際區(qū)域長(zhǎng)寬之比應(yīng)為2:1,但由于投影不同的存在,其實(shí)它是1:1的,至于中間過(guò)程怎么處理的我也沒(méi)搞明白。
關(guān)于51ditu
<!--[if !supportLists]-->1. <!--[endif]-->縮放等級(jí)
使用的比例級(jí)別總共有0-12級(jí)共13個(gè)級(jí)別,他們和實(shí)際的比例尺的對(duì)應(yīng)關(guān)系分別是:
0級(jí) -------------------- 1:2,500
1級(jí) -------------------- 1:5,000
2級(jí) -------------------- 1:10,000
3級(jí) -------------------- 1:25,000
4級(jí) -------------------- 1:50,000
5級(jí) -------------------- 1:100,000
6級(jí) -------------------- 1:250,000
7級(jí) -------------------- 1:500,000
8級(jí) -------------------- 1:1,000,000
9級(jí) -------------------- 1:2,500,000
10級(jí) ------------------- 1:5,000,000
11級(jí) ------------------- 1:10,000,000
12級(jí) ------------------- 1:50,000,000
簡(jiǎn)單的說(shuō),0級(jí)地圖最詳細(xì),12級(jí)地圖最簡(jiǎn)單。
以上是其官方發(fā)布的數(shù)據(jù)。
<!--[if !supportLists]-->2. <!--[endif]-->與Google的比較
51地圖和Google maps都開(kāi)放了API,有人結(jié)合兩者的API把它們集成到一塊,發(fā)現(xiàn)兩者的經(jīng)緯度吻合的非常好,我想這也主要是在大比例尺地圖下只要兩者的切割方法相同就可以做到的,故為了以后能更好的兼容并向領(lǐng)先者學(xué)習(xí)我們也爭(zhēng)取達(dá)到這種比較好的吻合效果。
但分析兩者的切割圖片發(fā)現(xiàn)Google的是256*256(像素),而51ditu是128*128(像素)。如下圖(1)、圖(2)兩幅圖(兩幅圖均沒(méi)有包含到最南端的曾母暗沙):
由于兩者是采用的不同的投影方式,故地圖在外形上有著比較大的差別,但應(yīng)該注意的是每一小片上只是面積上的差別,通俗點(diǎn)來(lái)講要有都有要沒(méi)有都沒(méi)有;由于兩者每一幅圖片是不等的,在實(shí)際中Google的每一圖幅的面積應(yīng)該是51ditu的4倍,但我們將兩者放在同樣大小的比例中發(fā)現(xiàn)兩者吻合的比較好,由此也可推測(cè)隨著比例的放大吻合程度將會(huì)更好,也就是說(shuō)兩者的切割方法是相同的,只不過(guò)導(dǎo)出圖片的大小不同而已。
<!--[if !supportLists]-->3. <!--[endif]-->坐標(biāo)系統(tǒng)
同樣可以假設(shè)51ditu在每一縮放等級(jí)下的地圖上也都建立了一個(gè)坐標(biāo)系,不同的是其坐標(biāo)原點(diǎn)為(西經(jīng)11.25度,北緯0度),正方向分別為向東向北,跨度范圍基本上就是覆蓋中國(guó)的國(guó)土面積,即經(jīng)度跨度為【67.5,135】,緯度跨度為【0,56.25】,而中國(guó)領(lǐng)土北起漠河以北的黑龍江江心(北緯53°30′),南到南沙群島南端的曾母暗沙(北緯4°),跨緯度49度多;東起黑龍江與烏蘇里江匯合處(東經(jīng)135°05′),西到帕米爾高原(東經(jīng)73°40′),跨經(jīng)度60多度。
<!--[endif]-->
圖(1)
<!--[endif]-->
圖(2)
擬采用的方案
<!--[if !supportLists]-->1. <!--[endif]-->方案簡(jiǎn)述
由于Google maps并沒(méi)有提供大比例尺下的中國(guó)地圖,故將其作為參照系不是一個(gè)很好的選擇,為便于以后的比較,我們采用與51ditu相同的坐標(biāo)系統(tǒng),即編號(hào)方式。
如上圖(2)所示,小圖片<!--[endif]-->*
<!--[endif]-->張,在投影影響的基礎(chǔ)上,每個(gè)圖片的跨度為11.25*11.25度,圖片12-1-7.png左下角點(diǎn)的經(jīng)緯度為(67.5,11.25),很明顯(67.5+11.25)/11.25=7,11.25/11.25=1。這樣我們就得到了切割圖片序號(hào)的計(jì)算公式,一般化如下:
在縮放等級(jí)為n之下,切割圖片的邊長(zhǎng)(設(shè)為d)d=360度/
由于我們只是針對(duì)中國(guó)范圍,故取經(jīng)度跨度為【67.5,135】,緯度跨度為【0,56.25】,在切割時(shí)可以適當(dāng)延展,延展單位以11.25為準(zhǔn)。
<!--[if !supportLists]-->2. <!--[endif]-->命名規(guī)則、存儲(chǔ)方案
在最大比例尺即縮放等級(jí)為0之下,取經(jīng)度跨度為【67.5,135】,緯度跨度為【0,56.25】,可以計(jì)算出共需切割的圖片數(shù)量為
以下為各比例尺之下的對(duì)應(yīng)關(guān)系
縮放級(jí)別 |
比例尺 |
圖幅數(shù) |
存儲(chǔ)空間(4K/幅) |
0級(jí) |
1:2,500 |
503,316,480 |
1920G |
1級(jí) |
1:5,000 |
125,829,120 |
480G |
2級(jí) |
1:10,000 |
31,457,180 |
120G |
3級(jí) |
1:25,000 |
7,864,320 |
30G |
4級(jí) |
1:50,000 |
1,966,080 |
7.5G |
5級(jí) |
1:100,000 |
491,520 |
1.875G |
6級(jí) |
1:250,000 |
122,880 |
|
7級(jí) |
1:500,000 |
30,720 |
|
8級(jí) |
1:1,000,000 |
7,680 |
|
9級(jí) |
1:2,500,000 |
1,920 |
|
10級(jí) |
1:5,000,000 |
480 |
|
11級(jí) |
1:10,000,000 |
120 |
|
12級(jí) |
1:50,000,000 |
30 |
|
由以上分析可見(jiàn)在大比例尺下若全部生成,其數(shù)量是很巨大的,考慮到某些大比例尺地圖只是在某些地區(qū)或特殊要求時(shí)是必須的,我們沒(méi)有必要全部生成,只需生成規(guī)定經(jīng)緯度范圍內(nèi)的某一縮放級(jí)別下的地圖。但即使這樣小縮放級(jí)別下的圖幅數(shù)量仍然不小,所以我們應(yīng)該分區(qū)域在不同文件夾下存放。從級(jí)別n到級(jí)別n+1,圖片數(shù)量后者是前者的4倍,即放大一個(gè)級(jí)別原級(jí)別一張圖片裂變?yōu)樗膹?/SPAN>,這樣我們可以借鑒四杈樹(shù)的組織形式,即若樹(shù)的深度為N,深度為N-1的節(jié)點(diǎn)子節(jié)點(diǎn)均為30個(gè),其余節(jié)點(diǎn)子節(jié)點(diǎn)為四個(gè)(當(dāng)深度為1時(shí),根結(jié)點(diǎn)子節(jié)點(diǎn)為5*6=30個(gè)),樹(shù)的深度與縮放級(jí)別的對(duì)應(yīng)關(guān)系為N=13-n。
樹(shù)的節(jié)點(diǎn)的命名即為對(duì)應(yīng)文件夾的名稱,根結(jié)點(diǎn)即以縮放級(jí)別命名,葉節(jié)點(diǎn)對(duì)應(yīng)圖片以形如“bx-by.png”的形式命名,其它節(jié)點(diǎn)則是形如“0-0”、“0-1”、“1-0”、“1-1”的形式命名。
這樣一來(lái)生成圖片的時(shí)候就有一個(gè)路徑判斷和生成的問(wèn)題。在確定了經(jīng)度跨度為【67.5,135】,緯度跨度為【0,56.25】,并且在最小比例尺(縮放等級(jí)為12)之下我們已知圖片是5*6張,即經(jīng)度方向?yàn)?/SPAN>6,緯度方向?yàn)?/SPAN>5,這兩個(gè)值很重要直接影響到我們的命名,當(dāng)然前提變了這個(gè)值也隨著變了。我們制定規(guī)則如下:
如前樹(shù)的深度為N,經(jīng)度方向上的序號(hào)為bx,緯度方向上的序號(hào)為by。則當(dāng)1<N<max(N)時(shí),經(jīng)度方向上的節(jié)點(diǎn)值Lng=ToString(((bx-7*N)/6)%2), 緯度方向上的節(jié)點(diǎn)值Lat=ToString((by/5)%2),則節(jié)點(diǎn)名稱命名為Lng+”-”+Lat。
{{item.content}}