(轉)咫尺數(shù)據(jù) 之 WEBGIS瓦片地圖解密與獲惹炱浮(一)

在我們很方便的用各類JS API實現(xiàn)在線地圖加載的同時,卻也讓我們忽略了很多原理性的東西该押。前幾日還因為項目需要下載影像地圖,但是實在不忍用”某某電子地圖下載工具”的廣告轟炸各群來騷擾各位群友阵谚。于是擼起袖子蚕礼,自己干!

做這事之前要分好以下幾個技術步驟:

STEP1?搞清楚瓦片數(shù)據(jù)在WEBGIS中的組織結構梢什。

STEP2找到屏幕坐標與地理坐標(實際坐標)的換算關系奠蹬。

STEP3根據(jù)地理范圍換算出瓦片行列號。

STEP4前端繪制瓦片绳矩。

瓦片數(shù)據(jù)在WEBGIS中的組織結構


我們在訪問高德地圖或者百度地圖的時候罩润,會發(fā)現(xiàn)游覽器是一塊一塊加載地圖的玖翅,如果網(wǎng)絡條件不佳翼馆,在地圖中還會出現(xiàn)空白塊的情況。在WEBGIS領域中金度,我們通常把這個過程稱為”加載瓦片”的過程应媚,地圖瓦片的實質就是一張張固定寬高的圖片,當游覽器加載地圖的時候猜极,其實質也是游覽器在向遠程服務器請求這些圖片的過程中姜。

? ? ? 既然加載在線地圖是一個請求服務器圖片資源的過程,我們可以通過網(wǎng)絡抓包工具看到請求地址跟伏,如下圖所示就是在線地圖請求的過程丢胚。

以Arcgis Online地圖為例:

http://cache1.arcgisonline.cn/arcgis/rest/services/ChinaOnlineCommunity/MapServer

可以看到,其地圖圖片的請求地址為

https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/16/26785/54862

經(jīng)過平移地圖受扳,縮放地圖等操作携龟,可以發(fā)現(xiàn)這個請求地址變化的地方就是最后三個參數(shù),不難發(fā)現(xiàn)第一個參數(shù)和當前地圖顯示的級別相對應勘高。那么后面兩個參數(shù)該如何理解呢峡蟋?

我們可以這么想象,把一張矩形地圖(完整地圖)华望,按照一定的規(guī)律(按照切圖原點蕊蝗,切圖范圍,瓦片大欣抵邸)蓬戚,分成了很多個大小相同的矩形,那么每一個矩形所在的位置就可以用行列號的形式來表達宾抓。按照這樣的邏輯來看碌更,剩余的那兩個參數(shù)應該就是上面所說的行列號了裕偿。

下面我們將上述總結的規(guī)律抽象為數(shù)學概念就可以把三參數(shù)分別理解為ZXY值,這是一個三維的概念痛单,Z值用來表達地圖層級嘿棘,而XY表示某個層級內的瓦片平面,X為橫軸坐標即為列旭绒,Y為縱軸坐標即為行鸟妙。

?????? 如果我們想看到更多的地圖細節(jié),可以使用不同的縮放層級來達到目的挥吵≈馗福縮放的層級越高,顯示細節(jié)也會相應增加忽匈。

? ? ? ?例如房午,當縮放層級為0時,整個地圖就是一張瓦片丹允,按照上文的描述郭厌,它的數(shù)學坐標就是0/0/0,這一張瓦片覆蓋了整個世界范圍雕蔽。如下圖所示:

? ? ? ?當縮放級別變?yōu)?時折柠,把縮放級別為0時的那張瓦片分割成四個相等的方塊,其中坐標為1/0/0和1/1/0的兩塊覆蓋北半球批狐,坐標為1/0/1和1/1/1的兩塊覆蓋南半球扇售。如下圖所示:

? ? ? ?由此可總結出如下規(guī)律:

地圖層級為0時,有一張瓦片嚣艇;地圖層級為1時承冰,有4張瓦片;地圖層級為2時食零,有16張瓦片困乒;也就是說當前層級的一張瓦片會在下一層級被分割為4張瓦片。即可由計算公式2^2n(其中n為層級)計算出一個層級下有多少張瓦片慌洪。如下圖所示:

? ? ? ?其實顶燕,在服務器環(huán)境下保存的瓦片圖片目錄結構也如下圖所示:

? ? ? ? 當我們在前端請求瓦片時,就是在找到這樣的目錄結構以致找到對應位置的瓦片圖片冈爹。

?本期文章附帶源碼下載地址

按照以上論述涌攻,附贈利用python爬取瓦片代碼:鏈接:http://pan.baidu.com/s/1jHDcYf8 ?

密碼:joj9

本文轉自微信公眾號:OpenGiser的文章

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市频伤,隨后出現(xiàn)的幾起案子恳谎,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件因痛,死亡現(xiàn)場離奇詭異婚苹,居然都是意外死亡,警方通過查閱死者的電腦和手機鸵膏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門膊升,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人谭企,你說我怎么就攤上這事廓译。” “怎么了债查?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵非区,是天一觀的道長。 經(jīng)常有香客問我盹廷,道長征绸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任俄占,我火速辦了婚禮管怠,結果婚禮上,老公的妹妹穿的比我還像新娘颠放。我一直安慰自己排惨,他們只是感情好吭敢,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布碰凶。 她就那樣靜靜地躺著,像睡著了一般鹿驼。 火紅的嫁衣襯著肌膚如雪欲低。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天畜晰,我揣著相機與錄音砾莱,去河邊找鬼。 笑死凄鼻,一個胖子當著我的面吹牛腊瑟,可吹牛的內容都是我干的。 我是一名探鬼主播块蚌,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼闰非,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了峭范?” 一聲冷哼從身側響起财松,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后辆毡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菜秦,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年舶掖,在試婚紗的時候發(fā)現(xiàn)自己被綠了球昨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡眨攘,死狀恐怖褪尝,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情期犬,我是刑警寧澤河哑,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站龟虎,受9級特大地震影響璃谨,放射性物質發(fā)生泄漏。R本人自食惡果不足惜鲤妥,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一佳吞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧棉安,春花似錦底扳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蒲赂,卻和暖如春阱冶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背滥嘴。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工木蹬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人若皱。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓镊叁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親走触。 傳聞我的和親對象是個殘疾皇子晦譬,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354