?? index.html
字號:
<div class="content_main">
<P>Google maps切割方法 <BR>
<P>1. 縮放等級與圖幅數 <BR>
<P>Google maps的縮放等級是0-17共18個等級,比例尺與縮放等級是成反比的(比例尺越大地圖越詳細),其第17 等級只有一幅世界地圖,某一等級下所含地圖數的計算公式為2^(17-n)^2(n為縮放等級)。 <BR>
<P>2. 圖幅生成與編號 <BR>
<P>可以假設Google maps在每一縮放等級下的地圖上都建立了一個坐標系,坐標原點為(西經180度,北緯90度),正方向分別為向東向南,經度跨度為360度,緯度跨度為180度。一般情況下,為便于理解可以這么認為,若在縮放等級n的情況下,共需生成(2^(17-n))^2副圖片,其編號形如(x,y)(0<=x<=2^(17-n)-1,0<=y<=2^(17-n)-1)。 <BR>
<P>但由于制圖區域的范圍、形狀和地理位置等的不同需要選擇不同的投影方式,以減少投影成平面地圖后的誤差值。在世界地圖中常用墨卡托投影繪制世界航線圖、世界交通圖與世界時區圖;我國出版的世界地圖多采用等差分緯線多圓錐投影,選用這個投影,對于表現中國形狀以及與四鄰的對比關系較好,但投影的邊緣地區變形較大。根據不同的需要還有許多其它的投影方式,在此不再贅述,當然國家基本比例尺地形圖的投影、分幅等,是由國家測繪主管部門研究制訂,不容許任意改變的,另外編制小區域大比例尺地圖,無論采用什么投影,變形都是很小的。 <BR>
<P>由于Google是面向全世界的,故其不同比例尺下并且相同比例尺下不同地區不同國家其投影方式都是不同的,我猜測為使整個世界范圍內的地圖達到相對的精確是以犧牲海洋兩極 <BR>等人煙稀少地圖的變形為代價的,當然這也只是針對小比例尺下的地圖,隨著比例尺的不斷放大這種投影上的差距會越來越小。 <BR>
<P>3. 結論 <BR>
<P>每個切割的小圖片是256*256(像素),常識來判斷每個小圖片代表的實際區域長寬之比應為2:1,但由于投影不同的存在,其實它是1:1 的,至于中間過程怎么處理的我也沒搞明白。 <BR>關于51ditu <BR>
<P>1. 縮放等級 <BR>
<P>使用的比例級別總共有0-12級共13個級別,他們和實際的比例尺的對應關系分別是: <BR>
<P>0級 -------------------- 1:2,500 <BR>
<P>1級 -------------------- 1:5,000 <BR>
<P>2級 -------------------- 1:10,000 <BR>
<P>3級 -------------------- 1:25,000 <BR>
<P>4級 -------------------- 1:50,000 <BR>
<P>5級 -------------------- 1:100,000 <BR>
<P>6級 -------------------- 1:250,000 <BR>
<P>7級 -------------------- 1:500,000 <BR>
<P>8級 -------------------- 1:1,000,000 <BR>
<P>9級 -------------------- 1:2,500,000 <BR>
<P>10級 ------------------- 1:5,000,000 <BR>
<P>11級 ------------------- 1:10,000,000 <BR>
<P>12級 ------------------- 1:50,000,000 <BR>
<P>簡單的說,0級地圖最詳細,12級地圖最簡單。 <BR>
<P>以上是其官方發布的數據。 <BR>
<P>2. 與Google的比較 <BR>
<P>51地圖和Google maps都開放了API,有人結合兩者的API 把它們集成到一塊,發現兩者的經緯度吻合的非常好,我想這也主要是在大比例尺地圖下只要兩者的切割方法相同就可以做到的,故為了以后能更好的兼容并向領先者學習­我們也爭取達到這種比較好的吻合效果。 <BR>
<P>但分析兩者的切割圖片發現Google的是256*256(像素),而51ditu是128*128(像素)。如下圖(1)、圖(2)兩幅圖(兩幅圖均沒有包含到最南端的曾母暗沙): 由于兩者是采用的不同的投影方式,故地圖在外形上有著比較大的差別,但應該注意的是每一小片上只是面積上的差別,通俗點來講要有都有要沒有都沒有;由于兩者每一­幅圖片是不等的,在實際中Google的每一圖幅的面積應該是51ditu的4倍,但我們將兩者放在同樣大小的比例中發現兩者吻合的比較好,由此也可推測隨著比例的放大吻合程度將會更好,也就是說兩者的切割方法是相同的,只不過導出圖片的­大小不同而已。 <BR>
<P>3. 坐標系統 <BR>
<P>同樣可以假設51ditu在每一縮放等級下的地圖上也都建立了一個坐標系,不同的是其坐標原點為(西經11.25度,北緯0度),正方向分別為向東向北,跨度范圍基本上就是覆蓋中國的國土面積,即經度跨度為【67.5,135】,緯度跨度為【0,56.25】,而中國領土北起漠河以北的黑龍江江心(北緯53°30′),南到南沙群島南端的曾母暗沙(北緯4°),跨緯度49度多;東起黑龍江與烏蘇里江匯合處(東經135°05′),西到帕米爾高原(東經73°40′),跨經度60多度。 <BR>
<P><img src="images/Google.PNG" border="0" onload="javascript:DrawImage(this);" alt="按此在新窗口打開圖片" onmouseover="this.style.cursor='hand';" onclick="window.open(this.src);" />
<P>圖(1) <BR>
<P><img src="images/51ditu.PNG" border="0" onload="javascript:DrawImage(this);" alt="按此在新窗口打開圖片" onmouseover="this.style.cursor='hand';" onclick="window.open(this.src);" /><BR>
<P>圖(2) <BR>擬采用的方案 <BR>
<P>1. 方案簡述 <BR>
<P>由于Google maps并沒有提供大比例尺下的中國地圖,故將其作為參照系不是一個很好的選擇,為便于以后的比較,我們采用與51ditu相同的坐標系統,即編號方式。 <BR>
<P>如上圖(2)所示,小圖片12-1-7.png,是縮放等級12之下的一副圖片,1是緯度方向上的序號,7是經度方向上的序號,從以上分析我們得知,縮放等級1­2之下,整個地球的切圖共是*張,在投影影響的基礎上,每個圖片的跨度為11.25*11.25度,圖片12-1-7.png左下角點的經緯度為(67.5,11.25),很明顯(67.5+11.25)/11.25=7,11.25/11.25=1。這樣我們就得到了切割圖片序號的計算公式,一般化如下:
<P>在縮放等級為n之下,切割圖片的邊長(設為d)d=360度/2^(17-n),若小圖片左下角坐標為(x,y),并設經度方向上的序號為bx, 緯度方向上的序號為by,可得到其表達式為bx=(x+11.25)/d;by=y/d.。 <BR>
<P>由于我們只是針對中國范圍,故取經度跨度為【67.5,135】,緯度跨度為【0,56.25】,在切割時可以適當延展,延展單位以11.25為準。 <BR>
<P>2. 命名規則、存儲方案 <BR>
<P>在最大比例尺即縮放等級為0之下,取經度跨度為【67.5,135】,緯度跨度為【0,56.25】,可以計算出共需切割的圖片數量為2^17*(67.5 /360)*2^17*(56.25/360)=131072*(3/16)*131072*(5/32)=112,442,880.縮放等級n之下,所需圖片數量的計算公式為2^(17-n)*(67.5/360)*2^(17-n)*(56.25/360)=15*2^(25-2n)(0<=n<=12) <BR>
<DIV>以下為各比例尺之下的對應關系 </DIV>
<P>
<TABLE cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2><STRONG>縮放級別</STRONG><STRONG></STRONG></FONT></DIV></TD>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2><STRONG>比例尺</STRONG></FONT></DIV></TD>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2><STRONG>圖幅數</STRONG></FONT></DIV></TD>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2><STRONG>存儲空間(4K/</STRONG><STRONG>幅)</STRONG></FONT></DIV></TD></TR>
<TR>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2>0級</FONT></DIV></TD>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2>1:2,500</FONT></DIV></TD>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2>503,316,480</FONT></DIV></TD>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2>1920G</FONT></DIV></TD></TR>
<TR>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2>1級</FONT></DIV></TD>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2>1:5,000</FONT></DIV></TD>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2>125,829,120</FONT></DIV></TD>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2>480G</FONT></DIV></TD></TR>
<TR>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2>2級</FONT></DIV></TD>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2>1:10,000</FONT></DIV></TD>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2>31,457,180</FONT></DIV></TD>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2>120G</FONT></DIV></TD></TR>
<TR>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2>3級</FONT></DIV></TD>
<TD vAlign=top width="25%">
<DIV align=center><FONT size=2>1:25,000</FONT></DIV></TD>
<TD vAlign=top width="25%">
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -