class_docstr: A WMTS imagery retriever which can be added to a map.
  
  Uses tile caching for fast repeated map retrievals.
  
  Note
  ----
      Requires owslib and Pillow to work.
class_docstr_tok: ["A","WMTS","imagery","retriever","which","can","be","added","to","a","map",".","Uses","tile","caching","for","fast","repeated","map","retrievals",".","Note","--","--","Requires","owslib","and","Pillow","to","work","."]
code: def _tile_span(self, tile_matrix, meters_per_unit):
      pixel_span = tile_matrix.scaledenominator * (
          METERS_PER_PIXEL / meters_per_unit
      )
      tile_span_x = tile_matrix.tilewidth * pixel_span
      tile_span_y = tile_matrix.tileheight * pixel_span
      return tile_span_x, tile_span_y
  
imports: import collections
  import io
  import math
  from urllib.parse import urlparse
  import warnings
  import weakref
  from xml.etree import ElementTree
  import numpy
  from PIL import Image
  import shapely.geometry
  import cartopy.crs
  from cartopy.img_transform import warp_array
  from cartopy.io import LocatedImage, RasterSource
label_desc: Use image node_id 6 for calling the WMTSRasterSource obj's underlying member method code with example usage: obj._tile_span(tile_matrix, meters_per_unit) and returns: tile_span_x,  tile_span_y