class_docstr: Base class for formatting ticks on geographical axes using a
  rectangular projection (e.g. Plate Carree, Mercator).
class_docstr_tok: ["Base","class","for","formatting","ticks","on","geographical","axes","using","a","rectangular","projection","(","e.g",".","Plate","Carree",",","Mercator",")","."]
code: def __call__(self, value, pos=None):
      if self._source_projection is not None:
          projected_value = self._apply_transform(
              value, self._target_projection, self._source_projection
          )
  
          # Round the transformed value using a given precision for display
          # purposes. Transforms can introduce minor rounding errors that
          # make the tick values look bad, these need to be accounted for.
          f = 1.0 / self._transform_precision
          projected_value = round(f * projected_value) / f
  
      else:
          # There is no projection so we assume it is already PlateCarree
          projected_value = value
  
      # Return the formatted values, the formatter has both the re-projected
      # tick value and the original axis value available to it.
      return self._format_value(projected_value, value)
  
imports: import matplotlib
  from matplotlib.ticker import Formatter, MaxNLocator
  import numpy
  import cartopy.crs
  from cartopy.mpl.geoaxes import GeoAxes
label_desc: Use image node_id 2 for calling the _PlateCarreeFormatter obj's underlying member method code with example usage: obj.__call__(value, pos) and returns: self