在做专题图的时候,经常需要使用一些背景地图(通常是地形地貌数据),而这些背景数据准备起来还特别麻烦:
1. 多数数据有可能涉密,导致很难获取(即使是之前的1:400万地形图,现在网上公开的数据也找不到了!)
2. 数据获取后在配色、标注等方面还需要仔细考虑,也是比较难的。
因此就想到能否利用网上这些公开的地图商的数据作为背景数据,比如google maps、openstreetmap等。
首先想到的WMS服务,QGIS自身支持WMS服务,网上搜索了一些对应的WMS服务提供商,发现最大的问题:速度太慢,而且现在可用的WMS服务也很少。无意中看到TMS服务(tile map server):
发现gdal支持这个,利用一个xml文件就可以将其封装为一个图像文件,可以直接在QGIS中打开,最重要的是速度很快!
openstreetmap的封装xml,参考OSM Help:
<GDAL_WMS>
<Service name="TMS">
<ServerUrl>http://tile.openstreetmap.org/${z}/${x}/${y}.png</ServerUrl>
</Service>
<DataWindow>
<UpperLeftX>-20037508.34</UpperLeftX>
<UpperLeftY>20037508.34</UpperLeftY>
<LowerRightX>20037508.34</LowerRightX>
<LowerRightY>-20037508.34</LowerRightY>
<TileLevel>18</TileLevel>
<TileCountX>1</TileCountX>
<TileCountY>1</TileCountY>
<YOrigin>top</YOrigin>
</DataWindow>
<Projection>EPSG:900913</Projection>
<BlockSizeX>256</BlockSizeX>
<BlockSizeY>256</BlockSizeY>
<BandsCount>3</BandsCount>
<Cache />
</GDAL_WMS>
google maps的tms封装文件:
<GDAL_WMS>
<!-- Data is subject to term of use detailed at http://code.google.com/intl/nl/apis/maps/terms.html and
http://www.google.com/intl/en_ALL/help/terms_maps.html -->
<Service name="TMS">
<ServerUrl>http://mt.google.com/vt/lyrs=m&x=${x}&y=${y}&z=${z}</ServerUrl> <!-- Map -->
<!-- <ServerUrl>http://mt.google.com/vt/lyrs=s&x=${x}&y=${y}&z=${z}</ServerUrl> --> <!-- Satellite -->
<!-- <ServerUrl>http://mt.google.com/vt/lyrs=y&x=${x}&y=${y}&z=${z}</ServerUrl> --> <!-- Hybrid -->
<!-- <ServerUrl>http://mt.google.com/vt/lyrs=t&x=${x}&y=${y}&z=${z}</ServerUrl> --> <!-- Terrain -->
<!-- <ServerUrl>http://mt.google.com/vt/lyrs=p&x=${x}&y=${y}&z=${z}</ServerUrl> --> <!-- Terrain, Streets and Water -->
</Service>
<DataWindow>
<UpperLeftX>-20037508.34</UpperLeftX>
<UpperLeftY>20037508.34</UpperLeftY>
<LowerRightX>20037508.34</LowerRightX>
<LowerRightY>-20037508.34</LowerRightY>
<TileLevel>20</TileLevel>
<TileCountX>1</TileCountX>
<TileCountY>1</TileCountY>
<YOrigin>top</YOrigin>
</DataWindow>
<Projection>EPSG:900913</Projection>
<BlockSizeX>256</BlockSizeX>
<BlockSizeY>256</BlockSizeY>
<BandsCount>3</BandsCount>
<MaxConnections>5</MaxConnections>
<Cache/>
</GDAL_WMS>
同时,在使用TMS服务,如同此blog所言,也要注意其存在如下问题:
1. TMS是分辨率固定的图片文件组合起来的瓦片式图像,因此其图像不能无极缩放(在QGIS感觉是无极缩放,其实不是)
2. Google Maps & OSM 的TMS服务,其投影方式是固定的,投影代码是EPSG:900913(Mercator)
发表回复