▓成人丝瓜视频▓无码免费,99精品国产一区二区三区不卡 ,大长腿白丝被c到爽哭视频 ,高清无码内谢

澎湃Logo
下載客戶端

登錄

  • +1

地圖湃 | 技術帖告訴你,地圖的細節是如何被簡化的?

葉山
2016-02-18 08:12
來源:澎湃新聞
? 美數課 >
字號

地圖既是一種工具也是一種藝術。簡化地圖輪廓和標注(術語為制圖綜合,cartographic generalization)的主要目的是使之準確、簡潔、美觀,以及突出重點。當畫幅(比例尺)變化的時候,很多細節不可能一一表現在圖上。

圖片來源:加拿大拉瓦爾大學

當比例尺是1:1000的時候,地圖上可以保留很多細節,如所有路徑和建筑們的輪廓。但當比例尺變成1:27176時,如果再保留這么多細節,地圖就一團亂麻,什么也看不清了。少即是多,只有削去了不重要的枝枝葉葉,主干的信息才能被突出展示,地圖才能達到它應有的效果。

當然,比例尺并不是地圖簡化的唯一原因。每一幅地圖都有自己的目的,對于細節的要求也不一樣。例如這張反映“一帶一路”的地圖:

圖片來源:中美聚焦

經常看地圖冊的人一眼就能看出很多“錯誤”:北京的位置貌似偏了些,瓊州海峽沒了,馬爾代夫和琉球也沒了,日本那幾個島連在一塊了,等等。但是,這張圖的目的是展現一帶一路,并不是為了告訴人們馬爾代夫在哪里、北京在哪里。弱化了細枝末節,更能強調出“一帶一路”的主題。試想一下,如果這張地圖把陸地輪廓畫得特別詳細,還加上中國的省界、甚至長江黃河,那路線規劃是不是就被沖淡了?

接下來我們回到本篇標題:地圖的細節是如何被簡化掉的?

大致有四種簡化方式:

一、輪廓簡化 ( Simplified )。通過去掉一些比較次要的轉折,把復雜的輪廓變得平滑一些。例如中國東南沿海的地圖,在比例尺有限的情況下可以把曲折的海岸線進行模糊化處理。

二、融合 ( Fused )。把距離接近、性質相同、相關性大的地物合并為一個。比如上面那張“一帶一路”的地圖,日本還有菲律賓的幾個島被合并了,就是一例。

三、篩選 ( Omitted )。把不重要的東西扔掉,保留最關鍵的。比如地圖上原本標注有北京、天津、石家莊和廊坊,但實在畫不下的時候,就選擇性地把廊坊扔了。

四、錯位( Displaced )。對于地理精度沒那么高的地圖(一般是示意圖),如果某一個區域的信息太過密集而周圍區域空白較多,可以適當(注意是適當)地讓地理位置錯位。或者為了地圖的整體效果,小幅度的位移也是允許的。比如上面“一帶一路”地圖中的北京。

下面重點說一下輪廓簡化。繪制輪廓一般用的是矢量數據,所以這里討論的地圖輪廓簡化方法,實際上也是矢量數據的壓縮方法。不管多復雜的曲線,我們也認為它是由許多線段組成的,線段兩端是一個個的數據點。越“圓滑”的輪廓,數據點就越多。常見的簡化方法有這幾種:

1. 簡單粗暴 —— 隔點法

隔點法就是在矢量曲線的一系列點中,每隔n個點選取一個來保留,其余沒選中的點都刪除。比如說下面這張圖的曲線:

現在我每隔兩個點連接曲線,剩下的點刪除,就把曲線簡化成了紫色的這條:

如果每隔3個點連接,則簡化后的曲線是這個樣子的:

這種做法的優點是算法簡單、操作簡單,但是缺點是比較重要、有特色的數據點很有可能會被漏掉。在原本的曲線就不那么平滑的情況下,這種簡化方式很可能造成比較大的形變,例如地圖上的半島或者海灣,很可能直接被剪切掉。

2. 步步為營 —— 垂距法

這種垂距法是一種比較常用的辦法。它是按照某個指定的方向,一步一步地簡化曲線。比如下面這張圖:首先我們要指定一個參數長度,比如圖中的紅色線段。

開始從左到右地簡化這條曲線:選擇圖中1、2、3這三個點,連接點1和點3,然后通過點2作垂線和連線相交。測量垂2的長度,圖中垂2的長度大于參數,因此保留點2。

然后挪位到2、3、4這三個點,連接點2和點4,畫出垂3。比較垂3和參數長度:這里的垂3還是大于參數,因此點3也保留。接下來是3、4、5這三個點,作出垂4。這里,垂4的長度是小于參數的,因此點4就要刪除。以此類推向右進行下去。

3. 宏觀調控 —— 分裂法

分裂法還有一個高大上的名字叫做道格拉斯 ? 普克算法 ( Douglas–Peucker algorithm ),也是一種用得比較多的方法。它和垂距法的相似之處是都需要設定一個參數來進行比較。但是它們也有很大的不同。例如,垂距法是從左到右(或從右到左)一步步地進行曲線簡化,而分裂法是把曲線看做一個整體,來進行“宏觀調控”。它的具體操作如下:

初始狀態是下面的這條曲線:

步驟一:從整體入手,首先選取參數“紅色線段”,然后連接整條曲線的首尾兩個點。連接之后,找出離這條連線距離最遠的那個點,比較這個點到連線的垂距和參數線段。圖中的最遠點是明顯大于參數的,因此這個點被保留。

步驟二:分別連接剛才的保留點和起點終點,再找出兩條連線區間范圍內的最遠點,并將它們的距離和參數比較。這里,最遠點1的距離是小于參數的,因此在這個區間內的所有點都要被刪除掉。而最遠點2的距離剛好大于參數,因此最遠點2也成為了被選取的保留點。

步驟三:亮色實線為剛才篩選后形成的簡化線段。用虛線連接新老兩個保留點,以及新保留點和曲線終點。同理,分別找出兩個區間內的最遠點以及距離。這里的最遠點1的距離小于參數,因此這一區間的所有點都刪除。最遠點2的距離大于參數,則成為新的選取點被保留。

同理再重復上述步驟四次:

最后,上面這條藍色曲線就是通過分裂法簡化后得出的曲線。不論是垂距法還是分裂法,重要的都是要選擇一個合適的參數。參數越大,地圖被簡化的程度就越高。

(本文經作者授權轉載,內容略有刪減,原文鏈接為:https://www.zhihu.com/question/38347271

    澎湃新聞報料:021-962866
    澎湃新聞,未經授權不得轉載
    +1
    收藏
    我要舉報
            查看更多

            掃碼下載澎湃新聞客戶端

            滬ICP備14003370號

            滬公網安備31010602000299號

            互聯網新聞信息服務許可證:31120170006

            增值電信業務經營許可證:滬B2-2017116

            ? 2014-2025 上海東方報業有限公司

            反饋
            主站蜘蛛池模板: 乌恰县| 嵩明县| 甘南县| 凌海市| 青州市| 盈江县| 濉溪县| 睢宁县| 东安县| 肇东市| 镇康县| 磴口县| 广昌县| 璧山县| 谢通门县| 佛学| 枣阳市| 饶平县| 九龙县| 闻喜县| 肥东县| 福建省| 开鲁县| 大丰市| 大庆市| 鸡东县| 诏安县| 民权县| 阿克陶县| 蒙山县| 民勤县| 香格里拉县| 晴隆县| 德阳市| 郴州市| 滨州市| 汾阳市| 吉木萨尔县| 兰西县| 左贡县| 丹江口市|