Volantino WMTS ordine piastrelle errato

Aug 21 2020

Ho aggiunto un livello WMTS a una mappa depliant. Le tessere si stanno caricando ma non sono nell'ordine corretto. Qualcuno ha mai riscontrato questo problema? Se è così, come l'hai superato?

    var map = new L.Map('viewerDiv', {
         crs: L.CRS.EPSG3857
    });
    var url =
        'http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/WMTS/tile/1.0.0/World_Topo_Map/default/default028mm/{z}/{x}/{y}.png';
    var tilelayer = new L.tileLayer(url, {
        tileSize: 256,
        tms: true,
        attribution: 'World Map'
    });
    map.addLayer(tilelayer);
    map.setView(L.latLng(50, 8), 4);

http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/WMTS/1.0.0/WMTSCapabilities.xml

Risposte

TomazicM Aug 21 2020 at 21:45

Se guardi le funzionalità del set di tessere, noterai una linea <TileMatrixSet>GoogleMapsCompatible</TileMatrixSet>, il che significa che questo è il set di tessere standard di Google Maps. Come ha sottolineato @nmtoken, ciò significa che xe l' yordine dovrebbe essere invertito e che questo non è il livello TMS, quindi l'opzione del livello tmsdovrebbe essere lasciata fuori:

var tilelayer = new L.tileLayer(
  'http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/WMTS/tile/1.0.0/World_Topo_Map/default/default028mm/{z}/{y}/{x}.png',
  {
    tileSize: 256,
    attribution: 'World Map'
  }
);