代码之家  ›  专栏  ›  技术社区  ›  Etherlind

使用mapbox tms创建xml文件

  •  3
  • Etherlind  · 技术社区  · 7 年前

    我正在寻找一种在qgis中显示地图框地图的方法,以便将其识别为光栅图层。

    我已经试过了 this ,我成功地通过tillelayer插件添加了tms层,使用我的mapbox url如下: https://a.tiles.mapbox.com/styles/v1/[my_username]/[map_ID]/tiles/256/ {Z}/{X}/{Y}?访问令牌=[我的访问令牌]

    问题是,用这种方式添加一个图层并不能被qgis识别为光栅图层,我需要对它执行一些光栅操作。

    另一方面,我试图创建这样一个xml文件:

    <GDAL_WMS>
        <Service name="TMS">
            <ServerUrl>https://a.tiles.mapbox.com/styles/v1/[my_username]/[map_ID]/tiles/256/${z}/${x}/${y}?access_token=[my_access_token]</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:3857</Projection>
        <BlockSizeX>256</BlockSizeX>
        <BlockSizeY>256</BlockSizeY>
        <BandsCount>3</BandsCount>
        <Cache />
    </GDAL_WMS>
    

    但没用。

    使用与google tms url完全相同的xml http://mt.google.com/vt/lyrs=s&amp;x=${x}&amp;y=${y}&amp;z=${z} 工作还行。

    我是不是丢了什么东西?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Etherlind    7 年前

    所以我试图导入到qgis的xml文件已经是正确的了。 使用gdal命令

    gdalinfo --debug on mapboxTMS.xml
    

    返回相干输出。

    另外,使用gdal_translate命令可以正确提取区域,这正是我想要执行的光栅操作。在我的案例中,我是这样使用的:

    gdal_translate -projwin 1499373.73124 3010255.99556 1499925.16592 3009716.74729 -of GTiff mapboxTMS.xml result.tif
    

    所以问题实际上似乎出在了qgis方面。根据 this answer 这可能是由于gdal wms驱动程序无法与qgis正常工作造成的。