標籤:代碼 原理 通過 實現 遮罩 努力 分區 bsp 檔案
1. 前言
實際項目中我們經常會遇到這樣一種情境:地圖底圖可能是互連網地圖(百度、高德、天地圖)等等,同時我們自己又有某個地區單獨的一套POI資料,我們需要將互連網地圖中這個地區的原有POI資料進行遮罩然後只顯示我們自己的POI資料。
針對這樣的需求,我們首先想到的是能否我們只使用不包含註記的底圖瓦片,然後再疊加上我們的POI資料。事實上,實際需求中還需要考慮一點,我們只有部分地區的POI資料,卻沒有其他地區的POI資料。
所以這個需求真正的核心是:除這個不規則多邊形的指定地區外,地圖均是互連網地圖加互連網註記,而這個核心地區內需要是互連網地圖加上自己的註記。
2. 方案思路
a.整個地圖範圍中,仍然將互連網底圖和互連網註記圖作為底圖疊加。
b.再次疊加上該地區的互連網底圖,可以視作遮罩將該範圍中的註記圖層屏蔽。
c.將糾偏後的自訂POI圖層切圖,作為最上層圖層疊加至地圖中。
地圖圖層順序如下所示:
3.待解決的痛點
a.瓦片拼接技術:需要將下載好的指定地區瓦片拼接成一個整體,然後將該地區PS出來。
b.圖片分割技術:需要將PS後的地區圖按照瓦片大小分割。
c.瓦片重新命名:需要將分割後的瓦片重新按照對應行列號賦值。
4.實現
具體代碼實現過程由我的好基友塗塗塗不苦實現,感謝,繼續努力。
4.1瓦片下載
利用自開發的瓦片下載工具將指定地區的互連網底圖下載下來,其原理可以參考我之前的部落格:WebGIS中通過行列號來換算出多種瓦片的URL 之線上地圖(http://www.cnblogs.com/naaoveGIS/p/3905523.html)。
4.2瓦片拼接並PS4.2.1拼接原理
按照行列號將同一層級上的瓦片拼接成一整張圖。
4.2.2使用PS將拼接好的整圖進行摳圖
這裡要注意,每個層級的圖均需要分別拼接成一個對應層級的整圖,PS也需要對每個層級的整圖進行摳圖。
4.3圖片分割並賦值行列號
a.讀取原始拼接瓦片檔案夾,依次擷取到原始瓦片的行列號名稱。
b.將摳圖後的整圖按照瓦片規定大小進行分割。
c.將分割出的圖賦予原始瓦片行列號的名稱。
5.效果展示
WebGIS中自訂互連網地圖局部註記的一種方案