как адаптировать старый код openlayers с помощью вызова TMS для openlayers6 - PullRequest
0 голосов
/ 25 февраля 2020

Как адаптировать этот старый код к открытым слоям 6

var layer_ais = new OpenLayers.Layer.TMS(
    "Traffic maritime",
    "https://tiles.marinetraffic.com/ais_helpers/shiptilesingle.aspx?output=png&sat=1&grouping=shiptype&tile_size=512&legends=1&zoom=${z}&X=${x}&Y=${y}",
    {
    "layerId":2,
    "displayOutsideMaxExtent":true,
    "isBaseLayer":false,
    "numZoomLevels":18,
    "type":"png",
    "url":"https:\/\/tiles.marinetraffic.com\/ais_helpers\/shiptilesingle.aspx?output=png&sat=1&grouping=shiptype&tile_size=512&legends=1&zoom=${z}&X=${x}&Y=${y}" ,
    'getURL': getTileURLMarine,
    'tileSize': new OpenLayers.Size(512,512)
    });  

Должен ли я использовать источник XYZ или WMS?
Должен ли я использовать tileUrlFunction для изменения порядка параметра zxy, как в этом примере?
https://openlayers.org/en/latest/examples/xyz-esri-4326-512.html

в соответствии с @Mike help вот рабочий код для ol 6.2

      var defaultGrid = new ol.tilegrid.createXYZ({ tileSize: 256,  maxZoom: 18 });
      var layer_ais = new ol.layer.Tile({
         source: new ol.source.XYZ({
            tileGrid: new  ol.tilegrid.TileGrid({
               tileSize: 512,
               resolutions: defaultGrid.getResolutions(),
               extent: defaultGrid.getExtent()
            }),
         url: "https://tiles.marinetraffic.com/ais_helpers/shiptilesingle.aspx?output=png&sat=1&grouping=shiptype&tile_size=512&legends=1&zoom={z}&X={x}&Y={y}"
        })
      });

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 25 февраля 2020

У вас есть XYZ URL, поэтому вы не можете WMS. Если у вас есть стандартная сетка листов, вы можете использовать {-y} заполнитель ($ больше не используется в заполнителях):

var layer_ais = new ol.layer.TileLayer({
  source: new ol.source.XYZ({
     maxZoom: 18,
     tileSize: 512,
     url: 'https://tiles.marinetraffic.com/ais_helpers/shiptilesingle.aspx?output=png&sat=1&grouping=shiptype&tile_size=512&legends=1&zoom={z}&X={x}&Y={-y}'
  })
});
...