使用OpenLayers 4.5.6显示gdal2tiles生成的切片

时间:2018-06-18 15:48:44

标签: openlayers raster gdal

我目前正面临在OpenLayers 4.5.6中显示使用gdal2tiles.py生成的切片的问题

我的地理位置是从SHOM目录发出的。

要生成切片,我必须将我的tif翻译为vrt,使其成为RGB / RGBA兼容文件。

gdal_translate -of vrt map.tif map_translated.vrt

然后我只是运行

gdal2tiles.py map_translated.vrt

并发布了一个瓦片地图源文件,如下所示

<TileMap version="1.0.0" tilemapservice="http://tms.osgeo.org/1.0.0">
  <Title>temp.vrt</Title>
  <Abstract></Abstract>
  <SRS>EPSG:3857</SRS>
  <BoundingBox minx="-3.92503169515670" miny="46.43569348844158" maxx="-1.42506635394127" maxy="47.66245305306844"/>
  <Origin x="-3.92503169515670" y="46.43569348844158"/>
  <TileFormat width="256" height="256" mime-type="image/png" extension="png"/>
  <TileSets profile="mercator">
    <TileSet href="7" units-per-pixel="1222.99245234375007" order="7"/>
    <TileSet href="8" units-per-pixel="611.49622617187504" order="8"/>
    <TileSet href="9" units-per-pixel="305.74811308593752" order="9"/>
    <TileSet href="10" units-per-pixel="152.87405654296876" order="10"/>
    <TileSet href="11" units-per-pixel="76.43702827148438" order="11"/>
    <TileSet href="12" units-per-pixel="38.21851413574219" order="12"/>
  </TileSets>
</TileMap>

从gdal2tiles生产的所有样品都工作正常,但我正在尝试使用以下代码将瓷砖集成到openlayers 4.5.6中:

var mapMinZoom = 7;
var mapMaxZoom = 12;

var mapExtent = [-3.92503169516, 46.4356934884, -1.42506635394, 47.6624530531];
var defaultExtent = ol.proj.transformExtent(mapExtent, 'EPSG:4326', 'EPSG:3857');

var mapCenter = [-2.5461600, 47.3793800];
var defaultCenter = ol.proj.fromLonLat(mapCenter);

var osm = new ol.layer.Tile({
  source: new ol.source.OSM()
});

var xyz = new ol.layer.Tile({
  extent: defaultExtent,
  source: new ol.source.XYZ({
    projection: 'EPSG:3857',
    attributions: 'Tiles © SHOM, rendered with ' +
        '<a href="http://www.shom.fr/">Shom</a>',
    url: './data/maps/7068/temp/{z}/{x}/{y}.png',
    tilePixelRatio: 2,
    minZoom: mapMinZoom,
    maxZoom: mapMaxZoom
  })
});

var view = new ol.View({
  center: defaultCenter,
  zoom: 12
});

var map = new ol.Map({
  target: 'map',
  layers: [ osm, xyz ],
  view: view
});

不幸的是,地图无法找到生成的图块文件夹中的相应图块。例如:

./data/maps/7068/temp/12/2019/1434.png 

事情是缩放,x很好,但是y不对,我的tiles文件夹改为2xxx.png。

我可能会遗漏一些关于范围或翻译的内容,我是否应该以不同的方式翻译我的tiff?生成我的瓷砖不同?地图上的Ajust seetings?

非常感谢任何帮助或建议,

0 个答案:

没有答案