測繪地圖資源不夠用?教你個萬能圖源制作方法
圖源是什么
經(jīng)常會聽到XX圖源這一說法,那么圖源是什么呢?圖源,并不是地圖本身,而是地圖的索引文件。具體來說,Web地圖以瓦片金字塔形式存放在服務(wù)器上,數(shù)據(jù)量很大。在地圖加載的時(shí)候,為了找到瀏覽區(qū)域?qū)?yīng)的瓦片,就需要有一個索引地址,通過網(wǎng)頁鏈接來找尋這個瓦片。圖源就是這個對應(yīng)的索引地址。簡單的來說,圖源就是瓦片的門牌號,信箱號,郵寄地址。有了這個地址(圖源),我們就可以找到需要的瓦片,進(jìn)而在軟件內(nèi)加載地圖。
我們知道,圖新地球電腦端(以下簡稱LSV)和手機(jī)端外業(yè)精靈app(各大手機(jī)應(yīng)用市場可下載)是支持加載自定義地圖的,支持WEB墨卡托和經(jīng)緯直投兩種投影格式。
LSV的圖源,是LRC文件,實(shí)際上LSV的圖源LRC文件,就是XML文件,只是后綴為LRC,因此我們可以用記事本等文本編輯軟件編輯。
網(wǎng)上有豐富的地圖資源,即可以通過此種方式接入圖新地球軟件和外業(yè)精靈app進(jìn)行免費(fèi)瀏覽、下載到本地使用。
LRC文件結(jié)構(gòu)分析
要想自己制作一個LRC圖源,首先需要先了解LRC的文件結(jié)構(gòu),知道哪些可以改,哪些不能改。進(jìn)而按照固定的格式,制作LRC圖源即可。
分析LRC文件,最好的方式是對LSV軟件內(nèi)自帶的LRC文件進(jìn)行分析。
首先在LSV主目錄下找到內(nèi)置的LRC文件:\LocaSpaceViewer\Resource\Layer。

這里面都是不同歸類的圖源。分析LRC,最方便的以O(shè)SM為例。那么我們打開OSM文件夾:

這些都是LRC文件,選擇其中任意一個,右鍵,打開方式:記事本。

這樣我們就可以看到LRC文件內(nèi)的原始內(nèi)容。通過編輯這些內(nèi)容,即可制作屬于自己的特殊圖源。當(dāng)前還不明確每一行內(nèi)容的含義,不過沒事,接下來我們說明具體圖源的代碼的意義。
首先第一行:
<?xml version=”1.0″ encoding=”GB18030″?>
這里說明了XML文檔的版本和編碼,不用修改,也可以不知道這是啥。
接下來,從<DataDefine>到</DataDefine>是圖源的主體。
<Version>0</Version>
<Name>img</Name>
Version標(biāo)簽內(nèi),說明了圖源的版本;Name標(biāo)簽內(nèi),是圖源的內(nèi)部名稱。這兩條均可以不修改。
<GeoGridType>WebMercatorWGS84</GeoGridType>
GeoGridType標(biāo)簽對內(nèi)部比較重要,說明了當(dāng)前圖源的投影格式,比如這里WebMercatorWGS84,表示原始在線地圖為Web墨卡托,WGS84的圖。
而天地圖分省,多采用經(jīng)緯直投,那么這里就需要填寫:TianDiTuLatLon
<GeoGridType>TianDiTuLatLon</GeoGridType>
注:天地圖分省版的LRC制作,將會在后期教程中更加詳細(xì)的展開。
<SampleSize>256</SampleSize>
SampleSize標(biāo)簽對內(nèi)填寫的值,是地圖瓦片的尺寸。常見地圖瓦片是256*256,少量地圖瓦片是512*512瓦片。這個要根據(jù)具體獲取到的瓦片值來填寫。
<FileExt>png</FileExt>
FileExt標(biāo)簽對內(nèi)填寫的是原始的瓦片格式,比較常見JPG、PNG類型。具體根據(jù)獲取到的瓦片來填寫。
<DataVersion></DataVersion>
<DataType>urlformat</DataType>
DataVersion和DataType是數(shù)據(jù)版本和數(shù)據(jù)類型,這兩條可以不用管。
<TileRowDir>NorthToSouth</TileRowDir>
TileRowDir表示原始在線地圖的瓦片組織形式。是從北到南編號,還是從南到北編號。多數(shù)都是從北到南編號,采用的谷歌編碼原則。但是有些圖,用的標(biāo)準(zhǔn)TMS切片,則是從南到北。
<LocalPath></LocalPath>本地瓦片路徑,如果對已經(jīng)下載好的本地瓦片,則可以用該標(biāo)簽調(diào)用。
<UrlParamOrder>Z,X,Y</UrlParamOrder>這個定義了下面標(biāo)簽中%d的順序,Z是層級、X是行號、Y是列號。這里如果定義為Z,X,Y,則下面的URL中的%d,%d,%d分別對應(yīng)ZXY。即這里控制了URL中%d的含義和順序。
<NetPath>http://s0.outdooractive.com/osm/OSMSummer/%d/%d/%d.png</NetPath>
這個里面的內(nèi)容表示瓦片的具體地址,也是圖源最核心的一部分。%d對應(yīng)的是ZXY,按UrlParamOrder標(biāo)簽對內(nèi)的順序控制。
接下來是Range標(biāo)簽對:
<Range>
<West>-160</West>
<East>160</East>
<South>-85</South>
<North>85</North>
<LevelBegin>1</LevelBegin>
<LevelEnd>18</LevelEnd>
</Range>
Range內(nèi)部定義了這個圖源的區(qū)域,最大最小層級。
West、East、South、North定義了圖源的默認(rèn)區(qū)域。如果制作一個全國范圍的圖源,就可以配置這里,配置后,雙擊圖層,則只跳轉(zhuǎn)到全國視角而不是全球。省級范圍同理。
LevelBegin和LevelEnd控制了圖源的最小和最大層級,一般在圖源分析的時(shí)候,可以找到具體的值。
整體看主要修改的地方就三塊:

LRC圖源制作案例分享
在了解了圖源內(nèi)容具體控制什么后,就可以準(zhǔn)備開始制作一個圖源。這里以open Street Map地圖為例:http://www.openstreetmap.org
先看圖源要編輯的內(nèi)容,下面代碼中,要編輯修改的內(nèi)容已經(jīng)標(biāo)紅處理。
<?xml version=”1.0″ encoding=”GB18030″?>
<DataDefine>
<Version>0</Version>
<Name>img</Name>
<GeoGridType>WebMercatorWGS84</GeoGridType>
<SampleSize>256</SampleSize>
<FileExt>png</FileExt>
<DataVersion></DataVersion>
<DataType>urlformat</DataType>
<TileRowDir>NorthToSouth</TileRowDir>
<LocalPath></LocalPath>
<UrlParamOrder>Z,X,Y</UrlParamOrder>
<NetPath>http://s0.outdooractive.com/osm/OSMSummer/%d/%d/%d.png</NetPath>
<Range>
<West>-160</West>
<East>160</East>
<South>-85</South>
<North>85</North>
<LevelBegin>1</LevelBegin>
<LevelEnd>18</LevelEnd>
</Range>
</DataDefine>
我們打開OSM地圖的網(wǎng)頁:http://www.openstreetmap.org

按F12,打開開發(fā)人員工具。或者在菜單里,找到開發(fā)人員工具,點(diǎn)擊NetWork:

然后隨意拖拽地圖,可以看到開發(fā)人員工具已經(jīng)抓取到了瀏覽器的后臺傳輸信息。
找到任意一個瓦片,雙擊打開。

這就是網(wǎng)頁地圖的基礎(chǔ),瓦片:

1是瓦片本身。
2是瓦片尺寸信息,對應(yīng)圖源內(nèi)的<SampleSize>
3是瓦片的文件類型,對應(yīng)圖源的<FileExt>
4是圖源URL,對應(yīng)圖源文件的<NetPath>
有這幾個信息,基本就可以搞定圖源文件了。
重點(diǎn)再來分析下圖源URL:http://b.tile.openstreetmap.org/12/3424/1671.png
這里面12,是Z,就是層級。
3424是X,也就是行號,多數(shù)情況下,X比Y的值大。因?yàn)閄的索引范圍是±180°,Y的索引范圍是±85°。
1671是Y,也就是列號。
由此可以確定三個變量即層級、行號、列號的順序是:Z、X、Y,所以<UrlParamOrder>內(nèi)應(yīng)該填寫:Z,X,Y
另外,<NetPath>內(nèi)應(yīng)該填寫:http://b.tile.openstreetmap.org/%d/%d/%d.png
至此,一個圖源基本就寫好了。看看寫好的圖源:
<?xml version=”1.0″ encoding=”GB18030″?>
<DataDefine>
<Version>0</Version>
<Name>img</Name>
<GeoGridType>WebMercatorWGS84</GeoGridType>
<SampleSize>256</SampleSize>
<FileExt>png</FileExt>
<DataVersion></DataVersion>
<DataType>urlformat</DataType>
<TileRowDir>NorthToSouth</TileRowDir>
<LocalPath></LocalPath>
<UrlParamOrder>Z,X,Y</UrlParamOrder>
<NetPath>http://b.tile.openstreetmap.org/%d/%d/%d.png</NetPath>
<Range>
<West>-160</West>
<East>160</East>
<South>-85</South>
<North>85</North>
<LevelBegin>1</LevelBegin>
<LevelEnd>18</LevelEnd>
</Range>
</DataDefine>
將上述內(nèi)容,復(fù)制到記事本中,另存為,格式選擇所有格式,起名:OSM地圖.lrc。

接下來,打開LSV主程序,加載在線地圖,看看制作的成果:

打開后,效果如圖所示:

放大看看:

如此,在線圖源就算制作完畢,就能正常使用了。網(wǎng)上有豐富的地圖資源,即可以通過此種方式接入圖新地球進(jìn)行瀏覽、下載到本地。